Beispiel #1
0
 public IOPH_EZLinkDongle(ADTRecord adtRec, IAppMainWindow mainWin)
 {
     this._adtRec = adtRec;
     this._mainWin = mainWin;
     this._teleFromWin = new Telegram(0x3e8);
     this._teleToWin = new Telegram(0x3e8);
     this._replyData = new DataBuffer(0x3e8);
     this._isSeries = false;
     this._seriesExecStat = SeriesExecutionState.Stop;
     this._taskEvent = new AutoResetEvent(false);
     this._taskState = TaskState.TaskReady_OK;
     if (adtRec.isUsbEZLinkDevice())
     {
         this._ddi = DDI_EZLinkDongle.instance();
     }
     else if (adtRec.isTESTDevice())
     {
         this._ddi = DDI_TEST.instance();
     }
     else
     {
         GlobalServices.ErrMsg("FATAL ERROR: IOPH_EZLinkDongle", "I/O port type not supported, exit WDS!");
         Application.Exit();
     }
     this._iot = new Thread(new ThreadStart(this.doDeviceIO));
     this._iot.IsBackground = true;
     this._iot.Name = "IOPH_EZLink thread";
     this._isTelegramRequest = false;
     this._isRxTimerRequest = false;
     this._isReadRxPacketEnabled = false;
     this._iot.Start();
 }
Beispiel #2
0
 public IOPH_DCP(ADTRecord adtRec, IAppMainWindow mainWin)
 {
     _adtRec = adtRec;
     _mainWin = mainWin;
     _teleFromWin = new Telegram(GlobalServices.maxCommandDataLen);
     _teleToWin = new Telegram(GlobalServices.maxReplyDataLen);
     _replyData = new DataBuffer(GlobalServices.maxReplyDataLen);
     _isSeries = false;
     _seriesExecStat = SeriesExecutionState.Stop;
     _taskState = TaskState.TaskReady_OK;
     int num = int.Parse(ConfigurationManager.AppSettings["DCPMaxDataLen"]);
     int num2 = int.Parse(ConfigurationManager.AppSettings["DCPMsgRepeatNr"]);
     int num3 = int.Parse(ConfigurationManager.AppSettings["DCPRecTimeout"]);
     byte num4 = byte.Parse(ConfigurationManager.AppSettings["DCPSOFByte"]);
     _dcpProtocolEngine = new DCPProtocol(this, num, num2, num3, 10, num4);
     _DCPRXMsg = new DCPFrame(num, num4);
     _DCPAnswerMsg = new DCPFrame(num, num4);
     _DCPTXMsg = new DCPFrame(num, num4);
     _DCPTXBuf = new DCPFrame(num, num4);
     if (adtRec.isUsbFtdiDevice())
     {
         _ddi = DDI_USB.instance();
     }
     else if (adtRec.isRS232Device())
     {
         _ddi = DDI_RS232.instance();
     }
     else if (adtRec.isTESTDevice())
     {
         _ddi = DDI_TEST.instance();
     }
     else if (adtRec.isHIDDevice())
     {
         _ddi = DDI_HID.instance();
     }
     else
     {
         GlobalServices.ErrMsg("IOPH_DCP.IOPH_DCP()", "FATAL ERROR: Unknown I/O port type, exit WDS!");
         Application.Exit();
     }
     _iot = new Thread(new ThreadStart(doDeviceIO));
     _iot.IsBackground = true;
     _iot.Name = "IOPH_DCP thread";
     _isTelegramRequest = false;
     _iot.Start();
 }
Beispiel #3
0
 public IOPH_LoadBoard(ADTRecord adtRec, IAppMainWindow mainWin)
 {
     this._adtRec = adtRec;
     this._mainWin = mainWin;
     this._teleFromWin = new Telegram(GlobalServices.maxCommandDataLen);
     this._teleToWin = new Telegram(GlobalServices.maxReplyDataLen);
     this._replyData = new DataBuffer(GlobalServices.maxReplyDataLen, Data_Type.ASCII);
     this._isSeries = false;
     this._seriesExecStat = SeriesExecutionState.Stop;
     this._taskEvent = new AutoResetEvent(false);
     this._taskState = TaskState.TaskReady_OK;
     if (adtRec.isUsbFtdiDevice())
     {
         this._ddi = DDI_USB.instance();
         this._isTestDevice = false;
     }
     else if (adtRec.isRS232Device())
     {
         this._ddi = DDI_RS232.instance();
         this._isTestDevice = false;
     }
     else if (adtRec.isTESTDevice())
     {
         this._ddi = DDI_TEST.instance();
         this._isTestDevice = true;
     }
     else if (adtRec.isHIDDevice())
     {
         this._ddi = DDI_HID.instance();
         this._isTestDevice = false;
     }
     else
     {
         GlobalServices.ErrMsg("IOPH_LoadBoard.IOPH_LoadBoard()", "FATAL ERROR: Unknown I/O port type, exit WDS!");
         GlobalServices.msgBox("FATAL ERROR: Unknown I/O port type, exit WDS!", "IOPH_LoadBoard.IOPH_LoadBoard()");
         Application.Exit();
     }
     this.ReadReplytimerDelegate = new TimerCallback(this.rxReadReplyTimerTickHandler);
     this._iot = new Thread(new ThreadStart(this.doDeviceIO));
     this._iot.IsBackground = true;
     this._iot.Name = "IOPH_LoadBoard thread";
     this._iot.Start();
 }
Beispiel #4
0
 public int telegramSeriesFromMainWin(TelegramContainer container, SeriesExecutionState initialState, bool sendReplyTelegrams)
 {
     if (isBusy())
     {
         GlobalServices.ErrMsg("telegramSeriesFromMainWin()", "Telegram series received in busy port handler state");
         return -1;
     }
     _seriesFromWin = container;
     _seriesExecStat = initialState;
     _replyTelegramsRequested = sendReplyTelegrams;
     _isRequestAvailible = true;
     return 0;
 }
Beispiel #5
0
 public int controlSeriesExecution(SeriesExecutionState state)
 {
     _seriesExecStat = state;
     return 0;
 }
Beispiel #6
0
 public int telegramSeriesFromMainWin(TelegramContainer container, SeriesExecutionState initialState, bool sendAcknowledgeTelegrams)
 {
     if (this.isBusy())
     {
         this._isLastErrorBusy = true;
         return -1;
     }
     this._isLastErrorBusy = false;
     this._isSeries = true;
     this._seriesFromWin = container;
     this._seriesExecStat = initialState;
     this._sendAcknowledge = sendAcknowledgeTelegrams;
     this._isTelegramRequest = true;
     this._taskEvent.Set();
     return 0;
 }
Beispiel #7
0
 public void terminate()
 {
     _seriesExecStat = SeriesExecutionState.Stop;
     controlReceivePacket(false, 0);
     controlSeriesExecution(SeriesExecutionState.Stop);
     _dcpProtocolEngine.terminate();
     _terminateRequested = true;
 }
Beispiel #8
0
 public int telegramSeriesFromMainWin(TelegramContainer container, SeriesExecutionState initialState, bool sendAcknowledgeTelegrams)
 {
     if (isBusy())
     {
         GlobalServices.ErrMsg("telegramSeriesFromMainWin()", "Telegram series received in busy port handler state");
         return -1;
     }
     _isSeries = true;
     _seriesFromWin = container;
     _seriesExecStat = initialState;
     _sendAcknowledge = sendAcknowledgeTelegrams;
     _isTelegramRequest = true;
     return 0;
 }
Beispiel #9
0
 public int controlSeriesExecution(SeriesExecutionState state)
 {
     if (state == SeriesExecutionState.Stop &&
         _tclProcess != null &&
         !_tclProcess.HasExited
         )
     {
         _tclProcess.Kill();
         Thread.Sleep(10);
     }
     _seriesExecStat = state;
     return 0;
 }
Beispiel #10
0
 public void terminate()
 {
     this._seriesExecStat = SeriesExecutionState.Stop;
     this._readRxPacketEnabled = false;
     this._terminateRequested = true;
     this._taskEvent.Set();
     if (this._ReadReplyTimer != null)
     {
         this._ReadReplyTimer.Dispose();
         this._ReadReplyTimer = null;
     }
 }
Beispiel #11
0
 public int telegramSeriesFromMainWin(TelegramContainer container, SeriesExecutionState initialState, bool sendAcknowledgeTelegrams)
 {
     if (this.isBusy())
     {
         GlobalServices.ErrMsg("telegramSeriesFromMainWin()", "Telegram series received in busy port handler state");
         return -1;
     }
     this._isSeries = true;
     this._seriesFromWin = container;
     this._seriesExecStat = initialState;
     this._sendAcknowledge = sendAcknowledgeTelegrams;
     this._taskEvent.Set();
     return 0;
 }