private DcmTp(DcmAppRxIndicationCallback rxIndication) { this.rxIndication = rxIndication ?? throw new ArgumentNullException("Dcm App Rx Indication Cannot be null"); workState = WorkStateEnum.Idle; }
public bool Execute(int canId, int hostId, List <byte> data) { workState = WorkStateEnum.Working; if (protocol == null) { throw new InvalidOperationException("protocal unset"); } bool ret = protocol.Execute(canId, hostId, data); if (ret) { NotifyDcmAppRxIndication(canId, hostId, data); } return(ret); }
private void NotifyDcmAppRxIndication(int canId, int hostId, List <byte> reqData) { DcmTpHandleResult handleResult = protocol.GetHandleResult(); List <byte> receivedData = protocol.GetReceivedData(); DcmAppRxIndicationArgs args = new DcmAppRxIndicationArgs(); args.Result = handleResult; args.RequestData = reqData; args.ResponseData = receivedData; args.RequestCanId = canId; args.ResponseCanId = hostId; rxIndication(args); workState = WorkStateEnum.Idle; }
/// <summary> /// 清空内部所有状态 /// </summary> public void Reset() { workState = WorkStateEnum.Idle; protocol.Reset(); }
public void FlagAsFailed() { WorkState = WorkStateEnum.FAILED; }
public WorkData() { WorkState = WorkStateEnum.NOT_STARTED; }