示例#1
0
        private DcmTp(DcmAppRxIndicationCallback rxIndication)
        {
            this.rxIndication = rxIndication
                                ?? throw new ArgumentNullException("Dcm App Rx Indication Cannot be null");

            workState = WorkStateEnum.Idle;
        }
示例#2
0
        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);
        }
示例#3
0
        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;
        }
示例#4
0
 /// <summary>
 /// 清空内部所有状态
 /// </summary>
 public void Reset()
 {
     workState = WorkStateEnum.Idle;
     protocol.Reset();
 }
示例#5
0
 public void FlagAsFailed()
 {
     WorkState = WorkStateEnum.FAILED;
 }
示例#6
0
 public WorkData()
 {
     WorkState = WorkStateEnum.NOT_STARTED;
 }
示例#7
0
 public void FlagAsFailed()
 {
     WorkState = WorkStateEnum.FAILED;
 }
示例#8
0
 public WorkData()
 {
     WorkState = WorkStateEnum.NOT_STARTED;
 }