public CanFrame(CanId id, byte[] data, int dataOffset, int dataLength) { Id = id; Data = data; DataOffset = dataOffset; DataLength = dataLength; }
public CanIdInfo(CanId id) { var value = id.Value; SourceId = (byte)((value >> 0) & 0x7FU); IsServiceNotMessage = ((value >> 7) & 0x1) == 1; IsRequestNotResponse = ((value >> 15) & 0x1) == 1; DestinationId = (byte)((value >> 8) & 0x7FU); Priority = (UavcanPriority)((value >> 24) & 0x1FU); MessageType = (value >> 8) & 0xFFFFU; ServiceType = (value >> 16) & 0xFFU; }
public static void WriteFrame(this CanRaw can, CanFrame frame) { var canId = new CanId(); canId.RemoteTransmissionRequest = frame.RemoteRequest; if (frame.FrameFormat == FrameFormat.Extended) { canId.ExtendedFrameFormat = true; canId.Extended = frame.Address; } else { canId.ExtendedFrameFormat = false; canId.Standard = frame.Address; } byte[] data = new byte[frame.DLC]; Array.Copy(frame.Data, data, frame.DLC); can.WriteFrame(data, canId); }
public override string ToString() { return(IsExtId ? CanId.ToString("X8") : CanId.ToString("X3")); }