Exemplo n.º 1
0
 /// <summary>
 /// Отправляет одно сообщение в канал
 /// </summary>
 /// <param name="Frame">CAN-Сообщение</param>
 /// <param name="Line">Канал связи</param>
 internal void SendFrame(CanFrame Frame, AppiLine Line)
 {
     SendFrames(new List <CanFrame>()
     {
         Frame
     }, Line);
 }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
 /// <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];
            }
        }
Exemplo n.º 5
0
 protected AppiSendBuffer(AppiDev Device, AppiLine Line)
 {
     this.Device = Device;
     this.Line = Line;
     Locker = new object();
 }
Exemplo n.º 6
0
 public AppiTimeoutSendBuffer(AppiDev Device, AppiLine Line)
     : base(Device, Line)
 {
 }
Exemplo n.º 7
0
 public AppiFeedbackSendBuffer(AppiDev Device, AppiLine Line)
     : base(Device, Line)
 {
     Device.BufferRead += DeviceOnBufferRead;
 }
Exemplo n.º 8
0
 /// <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);
     }
 }
Exemplo n.º 9
0
        /// <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);
        }
Exemplo n.º 10
0
 /// <summary>
 /// Отправляет одно сообщение в канал
 /// </summary>
 /// <param name="Frame">CAN-Сообщение</param>
 /// <param name="Line">Канал связи</param>
 internal void SendFrame(CanFrame Frame, AppiLine Line)
 {
     SendFrames(new List<CanFrame>() { Frame }, Line);
 }
Exemplo n.º 11
0
 internal AppiCanPort(AppiDev Device, AppiLine Line)
     : base(Line.ToString())
 {
     this.Device = Device;
     this.Line   = Line;
 }
Exemplo n.º 12
0
 public AppiTimeoutSendBuffer(AppiDev Device, AppiLine Line) : base(Device, Line)
 {
 }
Exemplo n.º 13
0
 protected AppiSendBuffer(AppiDev Device, AppiLine Line)
 {
     this.Device = Device;
     this.Line   = Line;
     Locker      = new object();
 }
Exemplo n.º 14
0
 public AppiFeedbackSendBuffer(AppiDev Device, AppiLine Line) : base(Device, Line)
 {
     Device.BufferRead += DeviceOnBufferRead;
 }
Exemplo n.º 15
0
 internal AppiCanPort(AppiDev Device, AppiLine Line)
     : base(Line.ToString())
 {
     this.Device = Device;
     this.Line = Line;
 }