public void Setup() { Adapter = new CanAdapterDevice(); Adapter.ConnectTo("3869366E3133"); Adapter.Attributes.Termination = true; Adapter.Open(250000); }
/// <summary> /// Constructor /// </summary> public DeviceExploring(SlaveDeviceCollection devices, CanAdapterDevice adapter) { this.BackgroundWorker = new BackgroundWorker(); this.BackgroundWorker.DoWork += new DoWorkEventHandler(BackgroundWorker_DoWork); this.Devices = devices; this.Adapter = adapter; }
public void Setup() { _adapter = new CanAdapterDevice(); _adapter.Connect(); _targetBaudrate = 125000; _msgBuffer = new CanMessage[UInt16.MaxValue]; }
static void Main(string[] args) { /*Adapter példányosítása*/ CanAdapterDevice adapter = new CanAdapterDevice(); /*Kapcsolódás egy létező adapterhez.*/ adapter.Connect(); /*Kapcsolódott ezzel a SerialNumber-el rendlekező adapterhez.*/ Console.WriteLine("Connected to: " + adapter.Attributes.SerialNumber); /*Busz lezárás engedélyezése. */ adapter.Attributes.Termination = true; /*Megnyitás az átviteli sebesség paraméterrel.*/ adapter.Open(CanBaudRateCollection.Speed500kBaud); /*Üzenet tömb létrehozása.*/ var txMsgArray = new CanMessage[] { new CanMessage(0x01FF, new byte[] { 0x01, 0x02, 0x03, 0x04 }) }; /*Üzenet tömb küldése.*/ adapter.Write(txMsgArray); /*Kapcsolat zárása*/ adapter.Close(); /*Kapcsolat bontása*/ adapter.Disconnect(); Console.Read(); }
static void Main(string[] args) { /*Elérhető adapterek megjelnítése*/ foreach (CanAdapterItem item in CanAdapterDevice.GetAdapters()) { Console.WriteLine(item); } /*Adapter példányosítása*/ CanAdapterDevice adapter = new CanAdapterDevice(); /*Kapcsolódás a tömb 0. indexén lévő adapterhez*/ adapter.ConnectTo(CanAdapterDevice.GetAdapters()[0]); /*Kapcsolat bontása*/ adapter.Disconnect(); Console.Read(); /*Konzol kimenete: * CAN Bus Adapter - MCAN120803 3869366E3133 * CAN Bus Adapter - MCAN120803 3873366E3133 * CAN Bus Adapter - MCAN120803 387536633133 */ }
static void Main(string[] args) { /*Elérhető adapterek megjelnítése*/ foreach (CanAdapterItem item in CanAdapterDevice.GetAdapters()) { Console.WriteLine(item); } /*Adapter példányosítása*/ CanAdapterDevice adapter = new CanAdapterDevice(); /*Kapcsolódás a 3873366E3133 azonosítójú adapterhez*/ adapter.ConnectTo("3873366E3133"); Console.WriteLine("Connected to: " + adapter.Attributes.SerialNumber); /*Kapcsolat bontása*/ adapter.Disconnect(); Console.Read(); /*Konzol kimenete: * CAN Bus Adapter - MCAN120803 3869366E3133 * CAN Bus Adapter - MCAN120803 3873366E3133 * CAN Bus Adapter - MCAN120803 387536633133 * Connected to: 3873366E3133 */ }
/*ExpectedMessage = "_adapter not found by Serial Number. Code:-8603."*/ public void _0001_ConnectByInvalidSerialNumberException() { Assert.Catch <CanAdapterException>(() => { _adapter = new CanAdapterDevice(); _adapter.ConnectTo("abc"); }); }
public void Setup() { _adapterWriter = new CanAdapterDevice(); _adapterWriter.ConnectTo(CanAdapterDevice.GetAdapters()[0]); _adapterReader = new CanAdapterDevice(); _adapterReader.ConnectTo(CanAdapterDevice.GetAdapters()[1]); _targetBaudrate = 125000; }
/// <summary> /// /// </summary> /// <returns></returns> public static string[] GetAdapters() { var items = CanAdapterDevice.GetAdapters().Select(n => n.SerialNumber).ToArray(); string[] adp = new string[items.Length + 1]; items.CopyTo(adp, 0); adp[items.Length] = VirtualDeviceName; return(adp); }
public void Setup() { _adapterWriter = new CanAdapterDevice(); _adapterWriter.ConnectTo(CanAdapterDevice.GetAdapters()[0]); _targetBaudrate = 500000; _adapterWriter.Services.Reset(); _adapterWriter.Open(_targetBaudrate); }
/// <summary> /// Constructor /// </summary> public DeviceNetMaster() { Adapter = new CanAdapterDevice(); Devices = new SlaveDeviceCollection(this); Exploring = new DeviceExploring(Devices, Adapter); Connected = new ConnectedSalveDevice(Adapter, 0); Unconnected = new UnconnectedSalveDevice(Adapter); Worker = new BackgroundWorker(); Worker.DoWork += new DoWorkEventHandler(Worker_DoWork); }
/// <summary> /// /// </summary> /// <param name="disposing"></param> protected virtual void Dispose(bool disposing) { if (Disposed) { return; } if (disposing) { // Free any other managed objects here. if (Adapter != null) { Adapter.Dispose(); Adapter.Disconnect(); Adapter = null; } } // Free any unmanaged objects here. // Disposed = true; }
static void Main(string[] args) { /*Adapter példányosítása*/ CanAdapterDevice adapter = new CanAdapterDevice(); /*Kapcsolódás egy létező adapterhez.*/ adapter.Connect(); /*Busz lezárás engedélyezése. */ adapter.Attributes.Termination = true; /*Megnyitás az átviteli sebesség paraméterrel.*/ adapter.Open(CanBaudRateCollection.Speed500kBaud); /*10 elemü üzenet tömb létrehozása.*/ var rxMsgArray = new CanMessage[10]; /*Bérkezett üzenet beolvasása a tömbe */ adapter.Read(rxMsgArray, 0, adapter.Attributes.PendingRxMessages); /*Kapcsolat zárása*/ adapter.Close(); /*Kapcsolat bontása*/ adapter.Disconnect(); Console.Read(); }
/// <summary> /// /// </summary> /// <param name="adapter"></param> /// <param name="slaveMacId"></param> /// <param name="masterMacId"></param> public ConnectedSalveDevice(CanAdapterDevice adapter, int masterMacId) { this.Adapter = adapter; this.MasterMacId = masterMacId; }
/// <summary> /// /// </summary> public DeviceNetIO() { Adapter = new CanAdapterDevice(); }
void AsyncTest(int msgCount, uint baudrate) { CanAdapterDevice adapterWriter = new CanAdapterDevice(); var selectedAdapterWriter = CanAdapterDevice.GetAdapters()[0]; //{CAN Bus Adpater - MCAN120803 3873366E3133 } adapterWriter.ConnectTo(selectedAdapterWriter); CanAdapterDevice adapterReader = new CanAdapterDevice(); var selectedAdapterReader = CanAdapterDevice.GetAdapters()[1]; //{CAN Bus Adpater - MCAN120803 387536633133 } adapterReader.ConnectTo(selectedAdapterReader); Stopwatch watch = new Stopwatch(); if (adapterWriter.Attributes.State != CanState.SDEV_IDLE) { adapterWriter.Services.Reset(); } if (adapterReader.Attributes.State != CanState.SDEV_IDLE) { adapterReader.Services.Reset(); } adapterWriter.Attributes.Termination = true; adapterReader.Attributes.Termination = true; try { CanMessage[] txFrames = new CanMessage[msgCount]; Action writer = () => { try { for (int i = 0; i < msgCount; i++) { txFrames[i] = CanMessage.MessageStdC8; byte[] valuebytes = BitConverter.GetBytes((uint)i + 1); Buffer.BlockCopy(valuebytes, 0, txFrames[i].Data, 0, valuebytes.Length); } adapterWriter.Write(txFrames); } catch (Exception ex) { Console.WriteLine(ex.Message); } }; CanMessage[] rxFrames = new CanMessage[msgCount]; int offset = 0; watch.Start(); long startTick = DateTime.Now.Ticks; AutoResetEvent doneEv = new AutoResetEvent(false); Action reader = () => { try { do { if (DateTime.Now.Ticks - startTick > 15000 * 10000) { throw new Exception("Timeout"); } int length = adapterReader.Attributes.PendingRxMessages; adapterReader.Read(rxFrames, offset, length); //Console.WriteLine("Pending: " + length + "Length: " + offset ); offset += length; } while (offset != msgCount); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine("RxTotal:" + adapterReader.Attributes.RxTotal.ToString()); Console.WriteLine("RxDrop:" + adapterReader.Attributes.RxDrop.ToString()); } doneEv.Set(); }; adapterWriter.Open(baudrate); adapterReader.Open(baudrate); reader.BeginInvoke(null, null); Thread.Sleep(50); writer.BeginInvoke(null, null); doneEv.WaitOne(); watch.Stop(); double calcBps1 = ((msgCount * 8E+0) / (watch.ElapsedMilliseconds / 1000E+0)); double calcBps2 = ((msgCount * 8E+0) / (((DateTime.Now.Ticks - startTick) / 10000E+0) / 1000E+0)); uint rxTotal = adapterReader.Attributes.RxTotal; Console.WriteLine("Reader RxDrop: " + adapterReader.Attributes.RxDrop); Console.WriteLine("Writer TxDrop: " + adapterWriter.Attributes.TxDrop); Console.WriteLine("Átjött Host FIFO-jába: " + offset); Console.WriteLine("Számított Baudrate 1: " + calcBps1.ToString()); Console.WriteLine("Számított Baudrate 2: " + calcBps2.ToString()); adapterReader.Close(); adapterWriter.Close(); Assert.AreEqual(msgCount, rxTotal, "Az adapter FIFO-jába nem jött meg minden."); Assert.AreEqual(msgCount, offset, "A Host FIFO-jaba nem jött meg minden."); } catch { throw; } finally { adapterWriter.Disconnect(); adapterReader.Disconnect(); } }
public UnconnectedSalveDevice(CanAdapterDevice adapter) { this.Adapter = adapter; }
public MessageReaderAsynState(CanMessage[] frames, CanAdapterDevice adapter, int offset) { Frames = frames; Adapter = adapter; Offset = offset; }
static void Main(string[] args) { /*Adapter példányosítása*/ CanAdapterDevice adapter = new CanAdapterDevice(); /*Kapcsolódás egy létező adapterhez.*/ adapter.Connect(); /*Busz lezárás engedélyezése. */ adapter.Attributes.Termination = true; /*Loopback moód engedélyezése*/ adapter.Attributes.Loopback = true; /*Megnyitás az átviteli sebesség paraméterrel.*/ adapter.Open(CanBaudRateCollection.Speed125000Baud); /*2 CAN üzenet tartalmazó tömb létrehozása a kimenő üzenetknek.*/ CanMessage[] txMsgArray = new CanMessage[] { /* ArbId Data */ new CanMessage(0x000001, new byte[] { 0x01, 0x02, 0x03 }), new CanMessage(0x000002, new byte[] { 0x04, 0x05, 0x06 }), }; /*Üzenetek küldése*/ adapter.Write(txMsgArray); /*2 elemü üzenet tömb létrehozása a bejövő üzeneteknek.*/ var rxMsgArray = new CanMessage[2]; /*Timeout figyeléshez megjegyezzük az beolvasás indításának időpontját.*/ long timestampTicks = DateTime.Now.Ticks; bool isTimeout = false; do { /*Ha 2db CAN üzenet várakozik a Bufferben, akkor kiolvassuk.*/ if (adapter.Attributes.PendingRxMessages == 2) { /*Bérkezett üzenet beolvasása a tömbe */ adapter.Read(rxMsgArray, 0, adapter.Attributes.PendingRxMessages); /*Kilépés a do-while-ból*/ break; } /*Inditás óta eltelt már 5000ms?*/ isTimeout = (DateTime.Now.Ticks - timestampTicks) > (5000 * 10000); /*Timeout-ig ismétli a ciklust...*/ } while (!isTimeout); if (isTimeout) { Console.WriteLine("Timeout..."); } else { foreach (CanMessage msg in rxMsgArray) { Console.WriteLine("Incoming Msg:" + msg.ToString()); } Console.WriteLine("Complete."); } /*Kapcsolat zárása*/ adapter.Close(); /*Kapcsolat bontása*/ adapter.Disconnect(); Console.Read(); }