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()); }
} // 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
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); }
// 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); } }
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)); }
/// <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); }
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; }