Beispiel #1
0
 public static bool FinializeDevice()
 {
     if (cdriver != null)
     {
         try {
             cdriver.FinalizeDevice();
             cdriver = null;
             return(true);
         } catch (Exception ex) {
             Logger.logError(ex);
             return(false);
         }
     }
     else
     {
         return(false);
     }
 }
Beispiel #2
0
        public static bool CANDriverFactory(ExistedDeviceType deviceEnum)
        {
            try {
                FinializeDevice();
                switch (deviceEnum)
                {
                case ExistedDeviceType.Intrepidcs:
                    cdriver = new IntrepidcsDriver();
                    break;

                case ExistedDeviceType.Somebus:
                    cdriver = new SomebusDriver();
                    break;

                case ExistedDeviceType.iTekAnalyst:
                    cdriver = new iTekAnalystDriver();
                    break;

                default:
                    break;
                }
                bool initResult = cdriver.InitializeDevice("0,0".Split(new char[] { ',' }));
                if (!initResult)
                {
                    cdriver = null;
                    return(false);
                }
                else
                {
                    cdriver.StartRX();
                    return(true);
                }
            } catch (Exception ex) {
                Logger.logError(ex);
                return(false);
            }
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            FileInfo fileInfo = new FileInfo
            {
                strFilePath = "C:\\Users\\ASUS\\Desktop\\CANprotocol.dbc".PadRight(261, '\0').ToCharArray(),//这部分会出错!!!!
                type        = 1
            };

            ICANDriver intfCANDriver = new CANDriver(21, 0, 0);

            intfCANDriver.Open();
            intfCANDriver.Init();
            intfCANDriver.Start();
            VCI_CAN_OBJ vCI_CAN_OBJ = new VCI_CAN_OBJ();

            vCI_CAN_OBJ.ID         = 8;
            vCI_CAN_OBJ.RemoteFlag = 0;
            vCI_CAN_OBJ.ExternFlag = 0;
            vCI_CAN_OBJ.Data       = System.Text.Encoding.Default.GetBytes("11112222");
            vCI_CAN_OBJ.DataLen    = 8;
            vCI_CAN_OBJ.SendType   = 0;
            Thread.Sleep(1000);
            UInt32 res = 0;

            VCI_CAN_OBJ[] recFrame = new VCI_CAN_OBJ[50];
            while (true)
            {
                res = intfCANDriver.Receive(ref recFrame);   //先接收到帧
                if (res != 0)
                {
                    Console.WriteLine(res);
                }
                Thread.Sleep(100);
            }
            //do
            //{
            //    Console.WriteLine("信号设值,请输入信号ID");
            //    UInt32 messgaeid = Convert.ToUInt32( Console.ReadLine());
            //    Console.WriteLine("信号设值,请输入信号名");
            //    byte[] signalname = System.Text.Encoding.Default.GetBytes(Console.ReadLine());
            //    Console.WriteLine("信号设值,请输入信号值");
            //    Double value = Convert.ToDouble(Console.ReadLine());
            //    intfCANSignal.SetSignalByNameFromApp(messgaeid, signalname, value);      //App层设值
            //    Console.WriteLine("继续信号设值,请输入1,否则输入任何值进行下一步!");
            //} while (Console.ReadLine() == "1");

            //do
            //{
            //    Console.WriteLine("是否开始接收,0:不开启接发线程;1:开启接发线程");      //signal层开启线程接发消息
            //} while (Console.ReadLine() != "1");
            //intfCANSignal.StartThread();

            //Thread thread0 = new Thread(StartGetSignalValue)
            //{
            //    IsBackground = true
            //};                       //开启线程启动获得信号值
            //thread0.Start(intfCANSignal);
            //while (true)
            //{
            //    Thread.Sleep(1000);
            //}
        }