Esempio n. 1
0
        public override int WriteMessages(List <KeplerCommand> Messages)
        {
            List <KeplerCommand> FormattedMessages = new List <KeplerCommand>();

            foreach (var Message in Messages)
            {
                var NewMessage   = new byte[18];
                var MessageIndex = 0;
                NewMessage[MessageIndex++] = 0x02;
                NewMessage[MessageIndex++] = 0x00;
                NewMessage[MessageIndex++] = 0x0F;
                NewMessage[MessageIndex++] = 0xA1;
                NewMessage[MessageIndex++] = 0x00;
                NewMessage[MessageIndex++] = 0x00;
                Message.Message.CopyTo(NewMessage, MessageIndex);
                var FormattedCommand = new KeplerCommand()
                {
                    Message = NewMessage
                };
                FormattedMessages.Add(FormattedCommand);

                if (base.isLoopbackEnabled)
                {
                    Message.ProtocolID     = (ulong)ProtocolID;
                    Message.ExtraDataIndex = Message.DataSize;
                    Message.RxStatus      |= 0x01;
                    base.Loopback(Message);
                }
                //Array.Copy(Message.Message, 0, NewMessage, MessageIndex, 12);
            }
            return(base.WriteMessages(FormattedMessages));
        }
Esempio n. 2
0
        public override int WriteMessages(List <KeplerCommand> Messages)
        {
            List <KeplerCommand> FormattedMessages = new List <KeplerCommand>();

            //Loop through Messages and add kepler header for VPW to each
            foreach (var Message in Messages)
            {
                var NewMessage = new byte[Message.Message.Length + 4];
                NewMessage[0] = 0x02;
                NewMessage[1] = (byte)(((Message.Message.Length + 1) & 0xFF00) >> 8);
                NewMessage[2] = (byte)((Message.Message.Length + 1) & 0x00FF);
                NewMessage[3] = 0xA1;
                Message.Message.CopyTo(NewMessage, 4);
                var FormattedCommand = new KeplerCommand()
                {
                    Message = NewMessage
                };
                FormattedMessages.Add(FormattedCommand);

                if (base.isLoopbackEnabled)
                {
                    Message.ProtocolID = (ulong)ProtocolID;
                    Message.RxStatus  |= 0x01;
                    base.Loopback(Message);
                }
            }
            return(base.WriteMessages(FormattedMessages));
        }
        /// <summary>
        /// Creates a periodic message
        /// </summary>
        /// <param name="Messages">Message to send periodically</param>
        /// <param name="Protocol">Protocol to use to send message</param>
        /// <param name="TimeInterval">Time between messages</param>
        /// <returns>Message ID</returns>
        public int StartPeriodicMessage(KeplerCommand Messages, IProtocol Protocol, double TimeInterval)
        {
            var PeriodicMessageID = PeriodicMessages.Count + 1;
            var PeriodicMesssage  = new PeriodicMessage(Messages, Protocol, TimeInterval);

            PeriodicMessages.Add(PeriodicMessageID, PeriodicMesssage);
            return(PeriodicMessageID);
        }
Esempio n. 4
0
        public override int WriteMessages(List <KeplerCommand> Messages)
        {
            List <KeplerCommand> FormattedMessages = new List <KeplerCommand>();

            foreach (var Message in Messages)
            {
                var NewMessage   = new byte[Message.Message.Length + 3];
                var MessageIndex = 0;
                NewMessage[MessageIndex++] = 0x02;
                NewMessage[MessageIndex++] = (byte)((NewMessage.Length - 3 & 0xFF00) >> 8);
                NewMessage[MessageIndex++] = (byte)((NewMessage.Length - 3 & 0x00FF));
                var FormattedCommand = new KeplerCommand()
                {
                    Message = NewMessage
                };
                FormattedMessages.Add(FormattedCommand);
            }
            return(base.WriteMessages(FormattedMessages));
        }
Esempio n. 5
0
 internal void ErrorRecieved(KeplerCommand Message)
 {
     OnInterfaceErrorReceieved(this, new InterfaceErrorEventArgs(Message));
 }
Esempio n. 6
0
        /// <summary>
        /// Shuts down all periodic messages
        /// </summary>

        public int StartPeriodicMessage(KeplerCommand Messages, IProtocol Channel, double TimeInterval)
        {
            return(PeriodicHandler.StartPeriodicMessage(Messages, Channel, TimeInterval));
        }
Esempio n. 7
0
 /// <summary>
 /// Loopsback a message to the RX queue.
 /// </summary>
 /// <param name="LoopbackMessage">Message to loopback</param>
 public void Loopback(KeplerCommand LoopbackMessage)
 {
     ReceiverQueue.Enqueue(LoopbackMessage);
 }
Esempio n. 8
0
        public override int WriteMessages(List <KeplerCommand> Messages)
        {
            List <KeplerCommand> FormattedMessages = new List <KeplerCommand>();

            foreach (var Message in Messages)
            {
                //TX FRAME CONFIRMATION
                var TxConfirmation = new KeplerCommand();
                TxConfirmation.ExtraDataIndex = 0;
                TxConfirmation.ProtocolID     = (ulong)this.ProtocolID;

                var NewMessage   = new byte[Message.Message.Length + 6];
                var MessageIndex = 0;
                NewMessage[MessageIndex++] = 0x02;
                NewMessage[MessageIndex++] = (byte)((NewMessage.Length - 3 & 0xFF00) >> 8);
                NewMessage[MessageIndex++] = (byte)((NewMessage.Length - 3 & 0x00FF));
                NewMessage[MessageIndex++] = 0xA1;
                //ISO15765 Message
                NewMessage[MessageIndex++] = 0x01;
                //ISO15765 Addr Type
                if ((Message.TxFlags & 0x80) >> 7 == 0x01)
                {
                    NewMessage[MessageIndex++] = 1;
                    //Copy the extended address byte
                    NewMessage[MessageIndex++] = Message.Message[4];
                    //Copy the CAN address (First four bytes of message from user application)
                    Array.Copy(Message.Message, 0, NewMessage, MessageIndex, 4);
                    //Copy the rest of the message data
                    Array.Copy(Message.Message, 5, NewMessage, MessageIndex + 4, Message.Message.Length - 5);

                    TxConfirmation.Message  = new byte[5];
                    TxConfirmation.DataSize = 5;
                    Array.Copy(Message.Message, 0, TxConfirmation.Message, 0, 5);
                    TxConfirmation.RxStatus |= 0x89;
                }
                else
                {
                    NewMessage[MessageIndex++] = 0;
                    Array.Copy(Message.Message, 0, NewMessage, MessageIndex, Message.Message.Length);
                    TxConfirmation.Message  = new byte[4];
                    TxConfirmation.DataSize = 4;
                    Array.Copy(Message.Message, 0, TxConfirmation.Message, 0, 4);
                    TxConfirmation.RxStatus |= 9;
                }

                var FormattedCommand = new KeplerCommand()
                {
                    Message = NewMessage
                };
                FormattedMessages.Add(FormattedCommand);


                base.Loopback(TxConfirmation);

                //LOOPBACK
                if (base.isLoopbackEnabled)
                {
                    Message.ProtocolID = (ulong)ProtocolID;
                    Message.RxStatus  |= 0x01;
                    base.Loopback(Message);
                }
            }
            return(base.WriteMessages(FormattedMessages));
        }