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