/// <summary> /// Отправляет одно сообщение в канал /// </summary> /// <param name="Frame">CAN-Сообщение</param> /// <param name="Line">Канал связи</param> internal void SendFrame(CanFrame Frame, AppiLine Line) { SendFrames(new List <CanFrame>() { Frame }, Line); }
/// <summary> /// Отправляет список сообщений в указанный канал /// </summary> /// <param name="Frames">Список сообщений</param> /// <param name="Line">Канал связи</param> internal void SendFrames(IList <CanFrame> Frames, AppiLine Line) { if (_sendBuffers == null) { throw new AppiException("Не инициализированы средства отправки в CAN-линию"); } if (!_sendBuffers.ContainsKey(Line)) { throw new AppiException("Не инициализировано средства отправки в линию {0}", Line); } _sendBuffers[Line].SynchronizedSend(Frames); }
/// <summary> /// Устанавливает скорость обмена по выбранной линии /// </summary> /// <param name="appiLine">Линия, для которой требуется установить скорость</param> /// <param name="value">Новое значение скорости</param> internal void SetBaudRate(AppiLine appiLine, int value) { using (var ms = new MemoryStream()) { using (var bw = new BinaryWriter(ms)) { bw.Write((byte)appiLine); bw.Write((byte)0x01); bw.Write((UInt16)(value / 1000)); } var buff = ms.ToArray(); WriteBuffer(buff); PushBufferToLog(BufferDirection.Out, buff); } }
public CanPort OpenPort(AppiLine Line) { lock (AppiLocker) { if (!CanOpenPort) throw new CannotOpenCanPortException(); if (_appi != null) return _appi.CanPorts[Line]; _appi = WinusbAppiDev.GetDevices().First(d => d.IsFree).OpenDevice(true); if (Debugger.IsAttached) _appi.CanPorts[AppiLine.Can1].Received += OnCanFrameReceived; _appi.Disconnected += AppiOnDisconnected; return _appi.CanPorts[Line]; } }
protected AppiSendBuffer(AppiDev Device, AppiLine Line) { this.Device = Device; this.Line = Line; Locker = new object(); }
public AppiTimeoutSendBuffer(AppiDev Device, AppiLine Line) : base(Device, Line) { }
public AppiFeedbackSendBuffer(AppiDev Device, AppiLine Line) : base(Device, Line) { Device.BufferRead += DeviceOnBufferRead; }
/// <summary> /// Отправляет список сообщений в указанный канал /// </summary> /// <param name="Frames">Список сообщений</param> /// <param name="Line">Канал связи</param> internal void SendFrames(IList<CanFrame> Frames, AppiLine Line) { if (_sendBuffers == null) throw new AppiException("Не инициализированы средства отправки в CAN-линию"); if (!_sendBuffers.ContainsKey(Line)) throw new AppiException("Не инициализировано средства отправки в линию {0}", Line); _sendBuffers[Line].SynchronizedSend(Frames); }
/// <summary> /// Отправляет одно сообщение в канал /// </summary> /// <param name="Frame">CAN-Сообщение</param> /// <param name="Line">Канал связи</param> internal void SendFrame(CanFrame Frame, AppiLine Line) { SendFrames(new List<CanFrame>() { Frame }, Line); }
internal AppiCanPort(AppiDev Device, AppiLine Line) : base(Line.ToString()) { this.Device = Device; this.Line = Line; }