Esempio n. 1
0
        } // End KvaserCanRateReturn

        // ***************************************
        // DetectCanInterfaces
        // Pulls all of the available adapters for the CAN bus
        // ***************************************
        public static void DetectCanInterfaces()
        {
            // Detect Process for Kvaser CAN devices
            try
            {
                int    nrOfChannels;
                object o = new object();

                Canlib.canInitializeLibrary();

                //List available channels
                Canlib.canGetNumberOfChannels(out nrOfChannels);

                for (int i = 0; i < nrOfChannels; i++)
                {
                    Canlib.canGetChannelData(i, Canlib.canCHANNELDATA_CHANNEL_NAME, out o);
                    //  Display of data in ListView as follows
                    // Network; Type; Mfg; Channel; Status; canHandle
                    BusInterface.AddInterface("CAN;" + o.ToString() + ";" + "Kvaser" + ";" + i, -1);
                    ErrorLog.NewLogEntry("CAN", "Detect CAN: " + o.ToString());
                }
            }
            catch (Exception)
            {
                ErrorLog.NewLogEntry("Adapter", "Kvaser library not found");
            }
        } // End DetectCanInterfaces
Esempio n. 2
0
        public static new string[] GetAdapterNames()
        {
            Canlib.canInitializeLibrary();

            int nrOfChannels;

            Canlib.canGetNumberOfChannels(out nrOfChannels);
            List <string> names               = new List <string>();
            object        channelName         = new object();
            object        channelCapabilities = new object();

            for (int i = 0; i < nrOfChannels; i++)
            {
                Canlib.canGetChannelData(i, Canlib.canCHANNELDATA_CHANNEL_NAME, out channelName);
                Canlib.canGetChannelData(i, Canlib.canCHANNELDATA_CHANNEL_CAP, out channelCapabilities);

                uint capability = (uint)channelCapabilities;
                if ((capability & Canlib.canCHANNEL_CAP_VIRTUAL) != Canlib.canCHANNEL_CAP_VIRTUAL)
                {
                    names.Add(channelName.ToString());
                    logger.Debug(String.Format("Found channel {0}", channelName));
                }
                else
                {
                    logger.Debug(String.Format("Skipped channel {0}", channelName));
                }
            }
            return(names.ToArray());
        }
        private bool setCanCardName()
        {
            object hwinfo;

            if (Canlib.canGetChannelData(CANHandle, canlibCLSNET.Canlib.canCHANNELDATA_CARD_TYPE, out hwinfo) != 0)
            {
                return(FAIL);
            }
            switch ((uint)hwinfo)
            {
            case canlibCLSNET.Canlib.canHWTYPE_NONE:
                CANCardName = "Unknown";
                break;

            case canlibCLSNET.Canlib.canHWTYPE_LAPCAN:
                CANCardName = "LAPcan";
                break;

            case canlibCLSNET.Canlib.canHWTYPE_USBCAN:
                CANCardName = "USBcan";
                break;

            case canlibCLSNET.Canlib.canHWTYPE_USBCAN_II:
                CANCardName = "USBcanII";
                break;

            case canlibCLSNET.Canlib.canHWTYPE_PCCAN:
                CANCardName = "PCcan";
                break;

            case canlibCLSNET.Canlib.canHWTYPE_PCICAN:
                CANCardName = "PCIcan";
                break;

            case canlibCLSNET.Canlib.canHWTYPE_PCICAN_II:
                CANCardName = "PCIcanII";
                break;

            case canlibCLSNET.Canlib.canHWTYPE_SIMULATED:
                CANCardName = "Simulated";
                break;

            case canlibCLSNET.Canlib.canHWTYPE_VIRTUAL:
                CANCardName = "Virtual";
                break;

            case canlibCLSNET.Canlib.canHWTYPE_LEAF:
                CANCardName = " Kvaser Leaf";
                break;

            default:
                CANCardName = "Unknown";
                break;
            }
            return(PASS);
        }
Esempio n. 4
0
        public static new string[] GetAdapterNames()
        {
            Canlib.canInitializeLibrary();

            //List available channels
            int nrOfChannels;

            Canlib.canGetNumberOfChannels(out nrOfChannels);
            string[] names = new string[nrOfChannels];
            object   o     = new object();

            for (int i = 0; i < nrOfChannels; i++)
            {
                Canlib.canGetChannelData(i, Canlib.canCHANNELDATA_CHANNEL_NAME, out o);
                names[i] = o.ToString();
                logger.Debug(string.Format("canlibCLSNET.Canlib.canGetChannelData({0}, canlibCLSNET.Canlib.canCHANNELDATA_CHANNEL_NAME, {1})", i, o));
            }
            return(names);
        }
Esempio n. 5
0
        // Pulls all of the available adapters for the CAN bus
        public static void DetectLinInterfaces(BusInterface busInterface)
        {
            int nrOfChannels;

            Canlib.canInitializeLibrary();

            //List available channels
            Canlib.canGetNumberOfChannels(out nrOfChannels);
            object o = new object();

            for (int i = 0; i < nrOfChannels; i++)
            {
                Canlib.canGetChannelData(i, Canlib.canCHANNELDATA_CHANNEL_NAME, out o);

                //  Display of data in ListView as follows
                // Network; Type; Mfg; Channel; Status
                BusInterface.AddInterface("CAN" + ";" + o.ToString() + ";" + "Kvasier" + ";" + i + ";" + "Pending", -1);
            }
        }
Esempio n. 6
0
        public override void SetSelectedAdapter(string adapter)
        {
            int nrOfChannels;

            Canlib.canGetNumberOfChannels(out nrOfChannels);
            object o = new object();

            for (int i = 0; i < nrOfChannels; i++)
            {
                Canlib.canGetChannelData(i, Canlib.canCHANNELDATA_CHANNEL_NAME, out o);
                if (adapter.Equals(o.ToString()))
                {
                    ChannelNumber = i;
                    logger.Debug(string.Format("canlibCLSNET.Canlib.canGetChannelData({0}, canlibCLSNET.Canlib.canCHANNELDATA_CHANNEL_NAME, {1})", i, o));
                    return;
                }
            }

            throw new Exception(String.Format("Channel {0} cannot be selected", adapter));
        }
Esempio n. 7
0
        /// <summary>
        /// 获取CAN通道
        /// </summary>
        /// <returns></returns>
        public string[] GetChannel()
        {
            int channel_num = 0x00;

            Canlib.canInitializeLibrary();

            if (Canlib.canStatus.canOK == Canlib.canGetNumberOfChannels(out channel_num))
            {
                channel = new string[channel_num];
                for (int i = 0; i < channel_num; i++)
                {
                    object canChannelType = new Object();
                    object canChannelName = new Object();

                    Canlib.canGetChannelData(i, Canlib.canCHANNELDATA_TRANS_TYPE, out canChannelType);   /* get channel type */
                    Canlib.canGetChannelData(i, Canlib.canCHANNELDATA_CHANNEL_NAME, out canChannelName); /* get channel name */
                    channel[i] = Convert.ToString(canChannelName);
                }
            }
            return(channel);
        }
Esempio n. 8
0
        public void SetSelectedAdapter(string adapter)
        {
            Canlib.canInitializeLibrary();

            int nrOfChannels;

            Canlib.canGetNumberOfChannels(out nrOfChannels);
            object o = new object();

            for (int i = 0; i < nrOfChannels; i++)
            {
                Canlib.canGetChannelData(i, Canlib.canCHANNELDATA_CHANNEL_NAME, out o);
                if (adapter.Equals(o.ToString()))
                {
                    ChannelNumber = i;
                    logger.Debug(string.Format("canlibCLSNET.Canlib.canGetChannelData({0}, canlibCLSNET.Canlib.canCHANNELDATA_CHANNEL_NAME, {1})", i, o));
                    return;
                }
            }

            // Default to channel 0
            ChannelNumber = 0;
        }