public override (bool isSendSuccess, UInt16 returnCode) OHxC_CarOutNotify(UInt16 car_id, UInt16 action_type)
        {
            bool isSendSuccess = false;
            var  send_function =
                scApp.getFunBaseObj <OHxCToMtl_CarOutNotify_PH2>(MTS.EQPT_ID) as OHxCToMtl_CarOutNotify_PH2;
            var receive_function =
                scApp.getFunBaseObj <MtlToOHxC_ReplyCarOutNotify_PH2>(MTS.EQPT_ID) as MtlToOHxC_ReplyCarOutNotify_PH2;

            try
            {
                //1.準備要發送的資料
                send_function.CarID      = car_id;
                send_function.ActionType = action_type;
                ValueRead vr_reply = receive_function.getValueReadHandshake
                                         (bcfApp, MTS.EqptObjectCate, MTS.EQPT_ID);
                //2.紀錄發送資料的Log
                send_function.Handshake = 1;
                LogHelper.Log(logger: logger, LogLevel: LogLevel.Info, Class: nameof(MTSValueDefMapActionNewPH2), Device: SCAppConstants.DeviceName.DEVICE_NAME_MTx,
                              Data: send_function.ToString(),
                              XID: MTS.EQPT_ID);
                //3.等待回復
                TrxMPLC.ReturnCode returnCode =
                    send_function.SendRecv(bcfApp, MTS.EqptObjectCate, MTS.EQPT_ID, vr_reply);
                //4.取得回復的結果
                if (returnCode == TrxMPLC.ReturnCode.Normal)
                {
                    receive_function.Read(bcfApp, MTS.EqptObjectCate, MTS.EQPT_ID);
                    LogHelper.Log(logger: logger, LogLevel: LogLevel.Info, Class: nameof(MTSValueDefMapActionNewPH2), Device: SCAppConstants.DeviceName.DEVICE_NAME_MTx,
                                  Data: receive_function.ToString(),
                                  XID: MTS.EQPT_ID);
                    isSendSuccess = true;
                }
                send_function.Handshake = 0;
                send_function.resetHandshake(bcfApp, MTS.EqptObjectCate, MTS.EQPT_ID);
                LogHelper.Log(logger: logger, LogLevel: LogLevel.Info, Class: nameof(MTSValueDefMapActionNewPH2), Device: SCAppConstants.DeviceName.DEVICE_NAME_MTx,
                              Data: send_function.ToString(),
                              XID: MTS.EQPT_ID);
                return(isSendSuccess, receive_function.ReturnCode);
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Exception");
            }
            finally
            {
                scApp.putFunBaseObj <OHxCToMtl_CarOutNotify_PH2>(send_function);
                scApp.putFunBaseObj <MtlToOHxC_ReplyCarOutNotify_PH2>(receive_function);
            }
            return(isSendSuccess, 0);
        }
Пример #2
0
        public virtual (bool isSendSuccess, UInt16 returnCode) OHxC_CarOutNotify(UInt16 car_id)
        {
            bool isSendSuccess = false;
            var  send_function =
                scApp.getFunBaseObj <OHxCToMtl_CarOutNotify>(eqpt.EQPT_ID) as OHxCToMtl_CarOutNotify;
            var receive_function =
                scApp.getFunBaseObj <MtlToOHxC_ReplyCarOutNotify>(eqpt.EQPT_ID) as MtlToOHxC_ReplyCarOutNotify;

            try
            {
                //1.準備要發送的資料
                send_function.CarID = car_id;
                ValueRead vr_reply = receive_function.getValueReadHandshake
                                         (bcfApp, eqpt.EqptObjectCate, eqpt.EQPT_ID);
                //2.紀錄發送資料的Log
                send_function.Handshake = 1;
                LogHelper.Log(logger: logger, LogLevel: LogLevel.Info, Class: nameof(MTLValueDefMapAction), Device: DEVICE_NAME_MTL,
                              Data: send_function.ToString(),
                              VehicleID: eqpt.EQPT_ID);
                //3.等待回復
                TrxMPLC.ReturnCode returnCode =
                    send_function.SendRecv(bcfApp, eqpt.EqptObjectCate, eqpt.EQPT_ID, vr_reply);
                //4.取得回復的結果
                if (returnCode == TrxMPLC.ReturnCode.Normal)
                {
                    receive_function.Read(bcfApp, eqpt.EqptObjectCate, eqpt.EQPT_ID);
                    LogHelper.Log(logger: logger, LogLevel: LogLevel.Info, Class: nameof(MTLValueDefMapAction), Device: DEVICE_NAME_MTL,
                                  Data: receive_function.ToString(),
                                  VehicleID: eqpt.EQPT_ID);
                    isSendSuccess = true;
                }
                send_function.Handshake = 0;
                send_function.resetHandshake(bcfApp, eqpt.EqptObjectCate, eqpt.EQPT_ID);
                LogHelper.Log(logger: logger, LogLevel: LogLevel.Info, Class: nameof(MTLValueDefMapAction), Device: DEVICE_NAME_MTL,
                              Data: send_function.ToString(),
                              VehicleID: eqpt.EQPT_ID);
                return(isSendSuccess, receive_function.ReturnCode);
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Exception");
            }
            finally
            {
                scApp.putFunBaseObj <OHxCToMtl_CarOutNotify>(send_function);
                scApp.putFunBaseObj <MtlToOHxC_ReplyCarOutNotify>(receive_function);
            }
            return(isSendSuccess, 0);
        }
        public override bool OHxC_AlarmResetRequest()
        {
            bool isSendSuccess = false;
            var  send_function =
                scApp.getFunBaseObj <OHxCToMtl_AlarmResetRequest_PH2>(eqpt.EQPT_ID) as OHxCToMtl_AlarmResetRequest_PH2;
            var receive_function =
                scApp.getFunBaseObj <MtlToOHxC_AlarmResetReply_PH2>(eqpt.EQPT_ID) as MtlToOHxC_AlarmResetReply_PH2;

            try
            {
                //1.準備要發送的資料
                ValueRead vr_reply = receive_function.getValueReadHandshake
                                         (bcfApp, eqpt.EqptObjectCate, eqpt.EQPT_ID);
                //2.紀錄發送資料的Log
                send_function.Handshake = 1;
                LogHelper.Log(logger: logger, LogLevel: LogLevel.Info, Class: nameof(MTSValueDefMapActionNewPH2), Device: SCAppConstants.DeviceName.DEVICE_NAME_MTx,
                              Data: send_function.ToString(),
                              XID: eqpt.EQPT_ID);
                //3.等待回復
                TrxMPLC.ReturnCode returnCode =
                    send_function.SendRecv(bcfApp, eqpt.EqptObjectCate, eqpt.EQPT_ID, vr_reply);
                //4.取得回復的結果
                if (returnCode == TrxMPLC.ReturnCode.Normal)
                {
                    receive_function.Read(bcfApp, eqpt.EqptObjectCate, eqpt.EQPT_ID);
                    LogHelper.Log(logger: logger, LogLevel: LogLevel.Info, Class: nameof(MTSValueDefMapActionNewPH2), Device: SCAppConstants.DeviceName.DEVICE_NAME_MTx,
                                  Data: receive_function.ToString(),
                                  XID: eqpt.EQPT_ID);
                    isSendSuccess = true;
                }
                send_function.Handshake = 0;
                send_function.resetHandshake(bcfApp, eqpt.EqptObjectCate, eqpt.EQPT_ID);
                LogHelper.Log(logger: logger, LogLevel: LogLevel.Info, Class: nameof(MTSValueDefMapActionNewPH2), Device: SCAppConstants.DeviceName.DEVICE_NAME_MTx,
                              Data: send_function.ToString(),
                              XID: eqpt.EQPT_ID);
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Exception");
            }
            finally
            {
                scApp.putFunBaseObj <OHxCToMtl_AlarmResetRequest_PH2>(send_function);
                scApp.putFunBaseObj <MtlToOHxC_AlarmResetReply_PH2>(receive_function);
            }
            return(isSendSuccess);
        }
Пример #4
0
        public virtual bool sendRoadControlCompleteNotify()
        {
            bool isSendSuccess = false;
            var  send_function =
                scApp.getFunBaseObj <OHxCToOHVC_RoadControlCompleteNotify>(eqpt.EQPT_ID) as OHxCToOHVC_RoadControlCompleteNotify;
            var receive_function =
                scApp.getFunBaseObj <OHxCToOHVC_RoadControlCompleteNotifyReply>(eqpt.EQPT_ID) as OHxCToOHVC_RoadControlCompleteNotifyReply;
            ValueRead  ReplyRoadControlCompleteNotifyVW = scApp.getBCFApplication().getReadValueEvent(SCAppConstants.EQPT_OBJECT_CATE_EQPT, eqpt.EQPT_ID, "REPLY_ROAD_CONTROL_COMPLETE_NOTIFY");
            ValueWrite RoadControlCompleteNotifyVW      = scApp.getBCFApplication().getWriteValueEvent(SCAppConstants.EQPT_OBJECT_CATE_EQPT, eqpt.EQPT_ID, "ROAD_CONTROL_COMPLETE_NOTIFY");

            try
            {
                //1.準備要發送的資料
                ValueRead vr_reply = receive_function.getValueReadHandshake
                                         (bcfApp, eqpt.EqptObjectCate, eqpt.EQPT_ID);
                //2.紀錄發送資料的Log
                send_function.Handshake = true;
                LogHelper.Log(logger: logger, LogLevel: LogLevel.Info, Class: nameof(OHCVValueDefMapAction), Device: DEVICE_NAME_OHCV,
                              Data: send_function.ToString(),
                              VehicleID: eqpt.EQPT_ID);
                //3.等待回復
                TrxMPLC.ReturnCode on_returnCode =
                    send_function.SendRecv(bcfApp, eqpt.EqptObjectCate, eqpt.EQPT_ID, vr_reply);
                //4.取得回復的結果
                if (on_returnCode == TrxMPLC.ReturnCode.Normal)
                {
                    receive_function.Read(bcfApp, eqpt.EqptObjectCate, eqpt.EQPT_ID);
                    LogHelper.Log(logger: logger, LogLevel: LogLevel.Info, Class: nameof(OHCVValueDefMapAction), Device: DEVICE_NAME_OHCV,
                                  Data: receive_function.ToString(),
                                  VehicleID: eqpt.EQPT_ID);
                    isSendSuccess = true;
                }
                else
                {
                    isSendSuccess = false;
                }

                send_function.Handshake = false;
                //send_function.resetHandshake(bcfApp, eqpt.EqptObjectCate, eqpt.EQPT_ID);
                LogHelper.Log(logger: logger, LogLevel: LogLevel.Info, Class: nameof(OHCVValueDefMapAction), Device: DEVICE_NAME_OHCV,
                              Data: send_function.ToString(),
                              VehicleID: eqpt.EQPT_ID);
                if (isSendSuccess)
                {
                    TrxMPLC.ReturnCode off_returnCode = send_function.SendRecv(bcfApp, eqpt.EqptObjectCate, eqpt.EQPT_ID, vr_reply);
                    if (off_returnCode == TrxMPLC.ReturnCode.Normal)
                    {
                        receive_function.Read(bcfApp, eqpt.EqptObjectCate, eqpt.EQPT_ID);
                        LogHelper.Log(logger: logger, LogLevel: LogLevel.Info, Class: nameof(OHCVValueDefMapAction), Device: DEVICE_NAME_OHCV,
                                      Data: receive_function.ToString(),
                                      VehicleID: eqpt.EQPT_ID);
                        isSendSuccess = true;
                    }
                    else
                    {
                        isSendSuccess = false;
                    }
                }
                else
                {
                    send_function.resetHandshake(bcfApp, eqpt.EqptObjectCate, eqpt.EQPT_ID);
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Exception");
            }
            finally
            {
                scApp.putFunBaseObj <OHxCToOHVC_RoadControlCompleteNotify>(send_function);
                scApp.putFunBaseObj <OHxCToOHVC_RoadControlCompleteNotifyReply>(receive_function);
            }
            return(isSendSuccess);
        }