private void SelectDevice() { try { // get selected device info deviceManager = VciServer.Instance().DeviceManager; deviceList = deviceManager.GetDeviceList(); deviceEnum = deviceListCBox.Items.GetEnumerator(); deviceEnum.MoveNext(); mDevice = deviceEnum.Current as IVciDevice; IVciCtrlInfo info = mDevice.Equipment[0]; // inform the user on the selected device MessageBox.Show("Selected Device:\n" + mDevice.ToString(), "INFO", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); slctDevBtn.Enabled = true; } finally { // release the resources of the library DisposeVciObject(deviceManager); DisposeVciObject(deviceList); DisposeVciObject(deviceEnum); slctDevBtn.Enabled = false; } }
private ICanMessage2 GetBaseMessage() { IMessageFactory factory = VciServer.Instance().MsgFactory; ICanMessage2 message = (ICanMessage2)factory.CreateMsg(typeof(ICanMessage2)); message.TimeStamp = 0; message.Identifier = 2; message.FrameType = CanMsgFrameType.Data; message.SelfReceptionRequest = false; message.ExtendedFrameFormat = false; message.DataLength = 2; return(message); }
static public void StartDeviceListMonitor() { IVciDeviceManager deviceManager = null; IVciDeviceList deviceList = null; deviceManager = VciServer.Instance().DeviceManager; deviceList = deviceManager.GetDeviceList(); ARE_Devices = new AutoResetEvent(true); //true запустит метод сразу deviceList.AssignEvent(ARE_Devices); ARE_Thread = new Thread(ARE_Thread_Devices); ARE_Thread.Start(); }
private CanManager() { _connectionEvent = new AutoResetEvent(true); using (IVciDeviceManager deviceManager = VciServer.Instance().DeviceManager) { _deviceList = deviceManager.GetDeviceList(); _deviceList.AssignEvent(_connectionEvent); } Thread t = new Thread(ConnectionThread); t.IsBackground = true; t.Start(); }
static public bool TransmitData8(uint id, byte[] data) { IMessageFactory factory = VciServer.Instance().MsgFactory; ICanMessage canMsg = (ICanMessage)factory.CreateMsg(typeof(ICanMessage)); canMsg.TimeStamp = 0; canMsg.Identifier = id; canMsg.FrameType = CanMsgFrameType.Data; canMsg.DataLength = 8; canMsg.SelfReceptionRequest = true; // show this message in the console window for (Byte i = 0; i < data.Length; i++) { canMsg[i] = data[i]; } // Write the CAN message into the transmit FIFO return(mWriter.SendMessage(canMsg)); }
static IVciDevice GetDeviceByString(String adapterSerial) { IVciDevice _return = null; IVciDeviceManager deviceManager = null; IVciDeviceList deviceList = null; System.Collections.IEnumerator deviceEnum = null; String SerialNumber = String.Empty; try { deviceManager = VciServer.Instance().DeviceManager; deviceList = deviceManager.GetDeviceList(); deviceEnum = deviceList.GetEnumerator(); while (deviceEnum.MoveNext()) { _return = deviceEnum.Current as IVciDevice; object serialNumberGuid = _return.UniqueHardwareId; if (GetSerialNumberText(serialNumberGuid) == adapterSerial) { break; } } } catch (Exception exc) { Debug.WriteLine("Error: " + exc.Message + "\n"); } finally { DisposeVciObject(deviceManager); DisposeVciObject(deviceList); DisposeVciObject(deviceEnum); } return(_return); }
static void DeviceListEvent() { IVciDeviceManager _deviceManager = null; IVciDeviceList _deviceList = null; System.Collections.IEnumerator _deviceEnum = null; IVciDevice _mDevice = null; Devices = new List <string>(); Debug.WriteLine("DeviceListEvent\n"); try { _deviceManager = VciServer.Instance().DeviceManager; _deviceList = _deviceManager.GetDeviceList(); _deviceEnum = _deviceList.GetEnumerator(); for (int i = 1; _deviceEnum.MoveNext(); i++) { _mDevice = _deviceEnum.Current as IVciDevice; Devices.Add(Can.GetSerialNumberText(_mDevice.UniqueHardwareId)); Debug.WriteLine(" " + i + ":" + Can.GetSerialNumberText(_mDevice.UniqueHardwareId) + "\n"); } ListChanged(); } catch (Exception exc) { Debug.WriteLine("Error: " + exc.Message + "\n"); } finally { Can.DisposeVciObject(_mDevice); Can.DisposeVciObject(_deviceManager); Can.DisposeVciObject(_deviceList); Can.DisposeVciObject(_deviceEnum); } }
// trasmit the values on button click private void transmitBtn_Click(object sender, EventArgs e) { IMessageFactory fac = VciServer.Instance().MsgFactory; ICanMessage canMsg = (ICanMessage)fac.CreateMsg(typeof(ICanMessage)); canMsg.TimeStamp = 0; canMsg.Identifier = uint.Parse(txtID.Text, System.Globalization.NumberStyles.HexNumber); canMsg.FrameType = CanMsgFrameType.Data; canMsg.DataLength = 8; // message will be consist of an 8 bytes long value canMsg[0] = Byte.Parse(D1txt.Text, System.Globalization.NumberStyles.HexNumber); canMsg[1] = Byte.Parse(D2txt.Text, System.Globalization.NumberStyles.HexNumber); canMsg[2] = Byte.Parse(D3txt.Text, System.Globalization.NumberStyles.HexNumber); canMsg[3] = Byte.Parse(D4txt.Text, System.Globalization.NumberStyles.HexNumber); canMsg[4] = Byte.Parse(D5txt.Text, System.Globalization.NumberStyles.HexNumber); canMsg[5] = Byte.Parse(D6txt.Text, System.Globalization.NumberStyles.HexNumber); canMsg[6] = Byte.Parse(D7txt.Text, System.Globalization.NumberStyles.HexNumber); canMsg[7] = Byte.Parse(D8txt.Text, System.Globalization.NumberStyles.HexNumber); // check the remote transmission option if (RFcheckbox.Checked) { canMsg.RemoteTransmissionRequest = true; } else { canMsg.RemoteTransmissionRequest = false; } mWriter.SendMessage(canMsg); MessageBox.Show("Data is succesfully transmitted as: \n" + canMsg.ToString(), "Transmission Succeeded", MessageBoxButtons.OK, MessageBoxIcon.Information); // bit checking switch (canMsg.FrameType) { case CanMsgFrameType.Error: { switch ((CanMsgError)canMsg[0]) { case CanMsgError.Stuff: MessageBox.Show("Stuff Error Detected!", "ERROR!", MessageBoxButtons.OK, MessageBoxIcon.Error); break; case CanMsgError.Form: MessageBox.Show("Form Error Detected!", "ERROR!", MessageBoxButtons.OK, MessageBoxIcon.Error); break; case CanMsgError.Dlc: MessageBox.Show("Data Length Error Detected!", "ERROR!", MessageBoxButtons.OK, MessageBoxIcon.Error); break; } } break; } }