Beispiel #1
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());
        }
Beispiel #2
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
Beispiel #3
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);
        }
Beispiel #4
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);
            }
        }
Beispiel #5
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));
        }
Beispiel #6
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);
        }
Beispiel #7
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;
        }