コード例 #1
0
        // CAN return rate
        public static string CanRateReturn(string canInterface)
        {
            try
            {
                string   hardwareString0  = canInterface.Replace(" ", "");
                string[] msgOutput        = hardwareString0.Split(';');
                ECOMLibrary.DeviceInfo di = new ECOMLibrary.DeviceInfo();

                // ECom can return
                // NOTE: ECom API does not have a bus parameter call
                if (msgOutput[2] == "ECom")
                {
                    // Finds the open ECom Adapters
                    UInt32 deviceSearch = ECOMLibrary.StartDeviceSearch(ECOMLibrary.FIND_OPEN);

                    while (deviceSearch != 0 && ECOMLibrary.FindNextDevice(deviceSearch, ref di) == ECOMLibrary.ECI_NO_ERROR)
                    {
                        if (di.CANOpen != 0)
                        {
                            return(Convert.ToString(di.SerialNumber));
                        }
                    }
                    ECOMLibrary.CloseDeviceSearch(deviceSearch);
                }

                return(null);
            }
            catch (Exception)
            {
                ErrorLog.NewLogEntry("Adapter", "ECom library not found");
                return(null);
            }
        } // End GenericCanRateReturn
コード例 #2
0
        } // End DetectCanInterfaces

        // ***************************************
        // GenericCanBusOn
        // Turns canInterface on based on User Selection
        // ***************************************
        public static int CanBusOn(string canInterface, string bitRateSetting)
        {
            string hardwareString0 = canInterface.Replace(" ", "");

            string[] msgOutput = hardwareString0.Split(';');

            Byte   ReturnError = 0; //This will be used for all error return status codes
            UInt32 EcomHandle;      //This will be the HANDLE to our ECOM device used for all function calls
            byte   EComCANBitrate = ECOMLibrary.CAN_BAUD_500K;

            ECOMLibrary.DeviceInfo di = new ECOMLibrary.DeviceInfo();

            // Assigns settings for the adapter
            if (bitRateSetting == "1M")
            {
                EComCANBitrate = ECOMLibrary.CAN_BAUD_1MB;
            }
            else if (bitRateSetting == "500K")
            {
                EComCANBitrate = ECOMLibrary.CAN_BAUD_500K;
            }
            else if (bitRateSetting == "250K")
            {
                EComCANBitrate = ECOMLibrary.CAN_BAUD_250K;
            }
            else if (bitRateSetting == "125K")
            {
                EComCANBitrate = ECOMLibrary.CAN_BAUD_125K;
            }
            else if (bitRateSetting == "100K" || msgOutput[4] == "62K" || msgOutput[4] == "50K" || msgOutput[4] == "33K")
            {
                MainWindow.ErrorDisplayString("ECom Adapter does not support low speed CAN (100K, 62K, 50K, 33K)");
                return(-1);
            }

            EcomHandle = ECOMLibrary.CANOpen(Convert.ToUInt32(msgOutput[3]), EComCANBitrate, ref ReturnError);
            //MainWindow.ErrorDisplayString("ECom Handle: " + Convert.ToString(EcomHandle));
            BusInterface.AddHandle(canInterface, (int)EcomHandle);

            if (EcomHandle == 0 || ReturnError != 0)
            {
                StringBuilder ErrMsg = new StringBuilder(400);
                ECOMLibrary.GetFriendlyErrorMessage(ReturnError, ErrMsg, 400);
                MainWindow.ErrorDisplayString("CANOpen failed with error message: " + ErrMsg);
                return(-1);
            }

            ECOMLibrary.GetDeviceInfo(EcomHandle, ref di);
            ErrorLog.NewLogEntry("CAN", "Bus On: " + di.SerialNumber);
            return(1);
        }
コード例 #3
0
        // ***************************************
        // GenericCanBusOn
        // Turns canInterface on based on User Selection
        // ***************************************
        public static int CanBusOn(string canInterface, string bitRateSetting)
        {
            string hardwareString0 = canInterface.Replace(" ", "");
            string[] msgOutput = hardwareString0.Split(';');

            Byte ReturnError = 0;  //This will be used for all error return status codes
            UInt32 EcomHandle; //This will be the HANDLE to our ECOM device used for all function calls
            byte EComCANBitrate = ECOMLibrary.CAN_BAUD_500K;

            ECOMLibrary.DeviceInfo di = new ECOMLibrary.DeviceInfo();

            // Assigns settings for the adapter
            if (bitRateSetting == "1M")
                EComCANBitrate = ECOMLibrary.CAN_BAUD_1MB;
            else if (bitRateSetting == "500K")
                EComCANBitrate = ECOMLibrary.CAN_BAUD_500K;
            else if (bitRateSetting == "250K")
                EComCANBitrate = ECOMLibrary.CAN_BAUD_250K;
            else if (bitRateSetting == "125K")
                EComCANBitrate = ECOMLibrary.CAN_BAUD_125K;
            else if (bitRateSetting == "100K" || msgOutput[4] == "62K" || msgOutput[4] == "50K" || msgOutput[4] == "33K")
            {
                MainWindow.ErrorDisplayString("ECom Adapter does not support low speed CAN (100K, 62K, 50K, 33K)");
                return -1;
            }

            EcomHandle = ECOMLibrary.CANOpen(Convert.ToUInt32(msgOutput[3]), EComCANBitrate, ref ReturnError);
            //MainWindow.ErrorDisplayString("ECom Handle: " + Convert.ToString(EcomHandle));
            BusInterface.AddHandle(canInterface, (int)EcomHandle);

            if (EcomHandle == 0 || ReturnError != 0)
            {
                StringBuilder ErrMsg = new StringBuilder(400);
                ECOMLibrary.GetFriendlyErrorMessage(ReturnError, ErrMsg, 400);
                MainWindow.ErrorDisplayString("CANOpen failed with error message: " + ErrMsg);
                return -1;
            }

            ECOMLibrary.GetDeviceInfo(EcomHandle, ref di);
            ErrorLog.NewLogEntry("CAN", "Bus On: " + di.SerialNumber);
            return 1;
        }
コード例 #4
0
        } // End GenericCanRateReturn

        // ***************************************
        // DetectCanInterfaces
        // Pulls all of the available adapters for the CAN bus
        // ***************************************
        public static void DetectCanInterfaces()
        {
            // Detect Process for ECom devices
            try
            {
                ECOMLibrary.DeviceInfo di = new ECOMLibrary.DeviceInfo();
                UInt32 deviceSearch       = ECOMLibrary.StartDeviceSearch(ECOMLibrary.FIND_ALL);

                while (deviceSearch != 0 && ECOMLibrary.FindNextDevice(deviceSearch, ref di) == ECOMLibrary.ECI_NO_ERROR)
                {
                    BusInterface.AddInterface("CAN;" + "CANCapture" + ";" + "ECom" + ";" + di.SerialNumber, -1);
                    ErrorLog.NewLogEntry("CAN", "Detect CAN: " + di.SerialNumber);
                }

                ECOMLibrary.CloseDeviceSearch(deviceSearch);
            }
            catch (Exception)
            {
                ErrorLog.NewLogEntry("Adapter", "ECom library not found");
            }
        } // End DetectCanInterfaces
コード例 #5
0
        // ***************************************
        // DetectCanInterfaces
        // Pulls all of the available adapters for the CAN bus
        // ***************************************
        public static void DetectCanInterfaces()
        {
            // Detect Process for ECom devices
            try
            {
               ECOMLibrary.DeviceInfo di = new ECOMLibrary.DeviceInfo();
               UInt32 deviceSearch = ECOMLibrary.StartDeviceSearch(ECOMLibrary.FIND_ALL);

                while (deviceSearch != 0 && ECOMLibrary.FindNextDevice(deviceSearch, ref di) == ECOMLibrary.ECI_NO_ERROR)
                {
                    BusInterface.AddInterface("CAN;" + "CANCapture" + ";" + "ECom" + ";" + di.SerialNumber, -1);
                    ErrorLog.NewLogEntry("CAN", "Detect CAN: " + di.SerialNumber);
                }

                ECOMLibrary.CloseDeviceSearch(deviceSearch);
            }
            catch (Exception)
            {
                ErrorLog.NewLogEntry("Adapter", "ECom library not found");
            }
        }
コード例 #6
0
        // CAN return rate
        public static string CanRateReturn(string canInterface)
        {
            try
            {
                string hardwareString0 = canInterface.Replace(" ", "");
                string[] msgOutput = hardwareString0.Split(';');
                ECOMLibrary.DeviceInfo di = new ECOMLibrary.DeviceInfo();

                // ECom can return
                // NOTE: ECom API does not have a bus parameter call
                if (msgOutput[2] == "ECom")
                {
                    // Finds the open ECom Adapters
                    UInt32 deviceSearch = ECOMLibrary.StartDeviceSearch(ECOMLibrary.FIND_OPEN);

                    while (deviceSearch != 0 && ECOMLibrary.FindNextDevice(deviceSearch, ref di) == ECOMLibrary.ECI_NO_ERROR)
                    {
                        if (di.CANOpen != 0)
                            return Convert.ToString(di.SerialNumber);
                    }
                    ECOMLibrary.CloseDeviceSearch(deviceSearch);
                }

                return null;
            }
            catch (Exception)
            {
                ErrorLog.NewLogEntry("Adapter", "ECom library not found");
                return null;
            }
        }