Example #1
0
        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));
        }
Example #2
0
        // 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;
            }
        }
Example #3
0
 public CanMessTimed(TimeSpan time, ICanMessage mess)
 {
     Time = time;
     Mess = mess;
     MRES = new ManualResetEvent(false);
 }