public GetMessageResults MessageTransaction(List <J2534Message> TxMessages, int NumOfRxMsgs, Predicate <J2534Message> Comparer) { MessageSieve.AddScreen(10, Comparer); J2534ERR Status = SendMessages(TxMessages); if (Status == J2534ERR.STATUS_NOERROR) { return(GetMessages(NumOfRxMsgs, DefaultRxTimeout, Comparer, true)); } throw new J2534Exception(Status, Device.Library.GetLastError()); }
public void SAETx(int Addr, byte Mode, List <byte[]> Data) { J1850Message message = new J1850Message(default_message_prototype); message.TargetAddress = Addr; message.SAEMode = Mode; List <J2534Message> J2534Messages = new List <J2534Message>(); Data.ForEach(data => { message.Data = data; J2534Messages.Add(new J2534Message(SessionProtocol, SessionTxFlags, message.RawMessage)); }); J2534ERR Status = channel.SendMessages(J2534Messages); if (Status != J2534ERR.STATUS_NOERROR) { throw new J2534Exception(Status, channel.GetLastError()); } }
public GetMessageResults(List <J2534Message> Messages, J2534ERR Status) { this.Status = Status; this.Messages = Messages; }
public GetMessageResults(J2534ERR Status) { Messages = new List <J2534Message>(); this.Status = Status; }
private void ParseError(J2534ERR Status) { switch (Status) { case J2534ERR.NOT_SUPPORTED: //0x01 case J2534ERR.INVALID_CHANNEL_ID: //0x02 case J2534ERR.INVALID_PROTOCOL_ID: //0x03 case J2534ERR.NULL_PARAMETER: //0x04 case J2534ERR.INVALID_IOCTL_VALUE: //0x05 case J2534ERR.INVALID_FLAGS: //0x06 case J2534ERR.INVALID_MSG: //0x0A case J2534ERR.INVALID_TIME_INTERVAL: //0x0B case J2534ERR.EXCEEDED_LIMIT: //0x0C case J2534ERR.INVALID_MSG_ID: //0x0D case J2534ERR.INVALID_IOCTL_ID: //0x0F case J2534ERR.PIN_INVALID: //0x13 case J2534ERR.CHANNEL_IN_USE: //0x14 case J2534ERR.MSG_PROTOCOL_ID: //0x15 case J2534ERR.INVALID_FILTER_ID: //0x16 case J2534ERR.NO_FLOW_CONTROL: //0x17 case J2534ERR.NOT_UNIQUE: //0x18 case J2534ERR.INVALID_BAUDRATE: //0x19 case J2534ERR.INVALID_DEVICE_ID: //0x1A { error_is_fatal = parameter_error = true; error_is_hardware = false; break; } case J2534ERR.DEVICE_NOT_CONNECTED: //0x08 case J2534ERR.DEVICE_IN_USE: //0x0E { error_is_hardware = error_is_fatal = device_error = true; break; } case J2534ERR.TIMEOUT: //0x09 case J2534ERR.BUFFER_EMPTY: //0x10 case J2534ERR.BUFFER_FULL: //0x11 case J2534ERR.BUFFER_OVERFLOW: //0x12 { communication_error = true; error_is_hardware = error_is_fatal = false; //These are the only recoverable errors break; } case J2534ERR.FUNCTION_NOT_ASSIGNED: //non-standard flag used by the wrapper to indicate no function assigned case J2534ERR.FAILED: //0x07 { error_is_fatal = general_error = true; error_is_hardware = false; break; } default: { error_is_fatal = general_error = true; error_is_hardware = false; break; } } //Use reflection to retrieve the Description attribute from the enum member contained in 'Status' MemberInfo[] memberInfo = typeof(J2534ERR).GetMember(Status.ToString()); if (memberInfo != null && memberInfo.Length > 0) { object[] attrs = memberInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false); if (attrs != null && attrs.Length > 0) { Status_Description = ((DescriptionAttribute)attrs[0]).Description; } else { Status_Description = Status.ToString(); } } }
public J2534Exception(J2534ERR Status, string Message, Exception Inner) : base(Message, Inner) { this.Status = Status; }
public J2534Exception(J2534ERR Status, string Message) : base(Message) { this.Status = Status; }
public J2534Exception(J2534ERR Status) { this.Status = Status; }
public J2534Status(J2534ERR Code = J2534ERR.STATUS_NOERROR, string Description = "") { this.Description = Description; this.Code = Code; }