コード例 #1
0
        /*
         * Loads the selected database
         * returns true if OK.
         */
        private bool LoadDB(string filename)
        {
            Kvadblib.Hnd    hnd = new Kvadblib.Hnd();
            Kvadblib.Status status;

            Kvadblib.Open(out hnd);

            status = Kvadblib.ReadFile(hnd, filename);

            if (status == Kvadblib.Status.OK)
            {
                dh = hnd;
            }

            return(status == Kvadblib.Status.OK);
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: yzh867609570/CANBUSTestFour
        public Form1()
        {
            InitializeComponent();

            Kvadblib.Status dbstatus;
            //Load database
            dbhandle = new Kvadblib.Hnd();
            dbstatus = Kvadblib.Open(out dbhandle);
            dbstatus = Kvadblib.ReadFile(dbhandle, DBCPath);

            idBox.Text    = "318";
            DLCBox.Text   = "8";
            dataBox0.Text = "02";
            flagsBox.Text = "0";

            //Sets up a BackgroundWorker and adds delegates to
            //the DumpMessageLoop and ProcessMessage methods
            dumper         = new BackgroundWorker();
            dumper.DoWork += DumpMessageLoop;
            dumper.WorkerReportsProgress = true;
            dumper.ProgressChanged      += new ProgressChangedEventHandler(ProcessMessage);
        }
コード例 #3
0
ファイル: DBdump.cs プロジェクト: mc01104/CTR
        static int Main(string[] args)
        {
            // Dummy initializations to make the compiler happy.
              var dh = new Kvadblib.Hnd();
              var mh = new Kvadblib.MessageHnd();
              var sh = new Kvadblib.SignalHnd();
              var nh = new Kvadblib.NodeHnd();
              bool verbose = false;
              char last = '\0';
              int ival;
              double fval;
              byte[] data = new byte[8];

              DisplayError(Kvadblib.Open(out dh), "Open");

              for(int n = 0; n < args.Length; n++) {
            if (verbose) {
              Console.WriteLine("{0}: {1}", n, args[n]);
            }

            if (args[n][0] == '-') {
              if ((n == 0) && (args[n][1] != 'v')) {
            DisplayError(Kvadblib.Status.Err_Param, "Argument fetch");
              }
              switch (args[n][1]) {
              // File operations
              case 'f':
            DisplayError(Kvadblib.ReadFile(dh, args[n - 1]),
                         "ReadFile");
            break;
              case 'w':
            DisplayError(Kvadblib.WriteFile(dh, args[n - 1]),
                         "WriteFile");
            break;
              case 'c':
            DisplayError(Kvadblib.Create(dh, args[n - 1], ""),
                         "Create");
            createDatabase(dh);
            break;

              // Locate item
              case 'm':
            DisplayError(Kvadblib.GetMsgByName(dh, args[n - 1], out mh),
                         "GetMsgByName");
            break;
              case 'i':
            DisplayError(Kvadblib.GetMsgById(dh, int.Parse(args[n - 1]), out mh),
                         "GetMsgById");
            break;
              case 's':
            DisplayError(Kvadblib.GetSignalByName(mh, args[n - 1], out sh),
                         "GetSignalByName");
            break;
              case 'N':
              case 'n':
            DisplayError(Kvadblib.GetNodeByName(dh, args[n - 1], out nh),
                         "GetNodeByName");
            break;
              case 'a':
            DisplayError(Kvadblib.GetNodeAttributeIntByName(nh, args[n - 1], out ival),
                         "GetNodeAttributeIntByName");
            Console.WriteLine("Node attribute: {1}", ival);
            break;

              // Message data
              case 'z':
            for (int i = 0; i < data.Length; i++) {
              data[i] = 0;
            }
            break;
              case 'h':
            if (((args[n - 1].Length % 2) == 1) || (args[n - 1].Length > 16)) {
              DisplayError(Kvadblib.Status.Err_Param, "Hex input");
            }
            for(int i = 0; i < args[n - 1].Length; i += 2) {
              data[i / 2] = (byte)Convert.ToInt32(args[n - 1].Substring(i, 2), 16);
            }
            break;

              // Signal data
              case 'P':
            DisplayError(Kvadblib.GetSignalValueFloat(sh, out fval, data, 8),
                         "GetSignalValueFloat");
            Console.WriteLine("Physical: {0}", fval);
            break;
              case 'R':
            DisplayError(Kvadblib.GetSignalValueInteger(sh, out ival, data, 8),
                         "GetSignalValueInteger");
            Console.WriteLine("Raw: {0}", ival);
            break;
              case 'p':
            if (!double.TryParse(args[n - 1], out fval)) {
              DisplayError(Kvadblib.Status.Err_Param, "double.TryParse");
            }
            DisplayError(Kvadblib.StoreSignalValuePhys(sh, data, 8, fval),
                         "StoreSignalValuePhys");
            break;
              case 'r':
            if (!int.TryParse(args[n - 1], out ival)) {
              DisplayError(Kvadblib.Status.Err_Param, "int.TryParse");
            }
            DisplayError(Kvadblib.StoreSignalValueRaw(sh, data, 8, ival),
                         "StoreSignalValueRaw");
            break;

              // Delete
              case 'd':
            switch (last) {
            case 'm':
              DisplayError(Kvadblib.DeleteMsg(dh, mh), "DeleteMsg");
              break;
            case 's':
              DisplayError(Kvadblib.DeleteSignal(mh, sh), "DeleteSignal");
              break;
            case 'n':
              DisplayError(Kvadblib.DeleteNode(dh, nh), "DeleteNode");
              break;
            case 'N':
              DisplayError(Kvadblib.RemoveReceiveNodeFromSignal(sh, nh),
                           "RemoveReceiveNodeFromSignal");
              break;
            default:
              DisplayError(Kvadblib.Status.Err_Param, args[n]);
              break;
            }
            break;

              // View
              case 'v':
            switch (last) {
            case 'f':
            case 'c':
              dumpDatabase(dh);
              break;
            case 'm':
              dumpMessage(mh);
              break;
            case 's':
              dumpSignal(sh);
              break;
            case 'n':
              dumpNode(nh);
              break;
            case 'h':
            case 'p':
            case 'r':
              dumpData(data);
              break;
            case '\0':
              verbose = true;
              break;
            default:
              DisplayError(Kvadblib.Status.Err_Param, args[n]);
              break;
            }
            break;
              default:
            DisplayError(Kvadblib.Status.Err_Param, args[n]);
            break;
              }
              last = args[n][1];
            }
              }

              DisplayError(Kvadblib.Close(dh), "Close");

              return 0;
        }