Beispiel #1
0
 public static void copyTelegram(Telegram srcTele, ref Telegram dstTele)
 {
     if (srcTele != null)
     {
         dstTele = new Telegram(100);
         if (dstTele.copy(srcTele) == -1)
         {
             int numItems = srcTele.data.NumItems;
             dstTele = new Telegram((numItems < 0x3e8) ? (numItems * 5) : (numItems * 2));
             if (dstTele.copy(srcTele) == -1)
             {
                 GlobalServices.ErrMsg("TelegramTools.copyTelegram()", "FATAL ERROR: erroneous telegram copy implementation, exit WDS!");
                 Application.Exit();
             }
         }
     }
 }
Beispiel #2
0
 private int sendTelegramToMainWin(TelegramType teleType, object[] senderInfo)
 {
     _teleToWin = new Telegram(_teleFromWin.data.Capacity);
     _teleToWin.copy(_teleFromWin);
     _teleToWin.uniqId = GlobalServices.uniqTelegramId();
     _teleToWin.parentUniqId = _teleFromWin.uniqId;
     _teleToWin.type = teleType;
     _teleToWin.protocol = _teleFromWin.protocol;
     _teleToWin.data.NumItems = 0;
     _teleToWin.replySize = 0;
     _teleToWin.mainWin = _teleFromWin.mainWin;
     _teleToWin.portHandler = this;
     _teleToWin.appFuncId = _teleFromWin.appFuncId;
     _teleToWin.userData = _teleFromWin.userData;
     _teleToWin.SenderInfo = senderInfo;
     if (senderInfo != null)
     {
         _teleToWin.UserDataExt.addUserData("SenderInfo", (string) senderInfo[0]);
     }
     _teleToWin.setNoHeader();
     try
     {
         if (((teleType == TelegramType.SeriesEndOK) || (teleType == TelegramType.SeriesEndERROR)) || (teleType == TelegramType.PortHandlerTerminated))
         {
             ((Form) _mainWin).BeginInvoke(new TelegramReceiver(_mainWin.telegramFromPortHandler), new object[] { _teleToWin });
         }
         else
         {
             ((Form) _mainWin).Invoke(new TelegramReceiver(_mainWin.telegramFromPortHandler), new object[] { _teleToWin });
         }
     }
     catch (Exception exception)
     {
         _log.Error("IOPH_DATA: Invoking telegramFromPortHandler 1 failed: (TelegramType = " + teleType.ToString() + ")" + exception.Message);
     }
     return 0;
 }
Beispiel #3
0
 private int sendTelegramToMainWin(TelegramType teleType, object[] senderInfo, DCPFrame repmsg)
 {
     _teleToWin = new Telegram(_teleFromWin.data.Capacity);
     _teleToWin.copy(_teleFromWin);
     _teleToWin.uniqId = GlobalServices.uniqTelegramId();
     _teleToWin.parentUniqId = _teleFromWin.uniqId;
     _teleToWin.type = teleType;
     _teleToWin.protocol = Protocol.DCP2;
     if (repmsg.Len >= 2)
     {
         _teleToWin.data.copy(repmsg.Data, repmsg.Len - 2);
     }
     _teleToWin.replySize = _teleFromWin.replySize;
     _teleToWin.mainWin = _teleFromWin.mainWin;
     _teleToWin.portHandler = this;
     _teleToWin.appFuncId = _teleFromWin.appFuncId;
     _teleToWin.userData = _teleFromWin.userData;
     _teleToWin.setNoHeader();
     _teleToWin.DCPMsgType = repmsg.MsgType;
     _teleToWin.DCPCmdSet = repmsg.CmdSet;
     _teleToWin.SenderInfo = senderInfo;
     try
     {
         if ((teleType == TelegramType.SeriesEndOK) || (teleType == TelegramType.SeriesEndERROR))
         {
             ((Form) _mainWin).BeginInvoke(new TelegramReceiver(_mainWin.telegramFromPortHandler), new object[] { _teleToWin });
         }
         else
         {
             ((Form) _mainWin).Invoke(new TelegramReceiver(_mainWin.telegramFromPortHandler), new object[] { _teleToWin });
         }
     }
     catch (Exception exception)
     {
         _log.Error("IOPH_DATA: Invoking telegramFromPortHandler 2 failed: (TelegramType = " + teleType.ToString() + ")" + exception.Message);
     }
     return 0;
 }
Beispiel #4
0
 private void saveTelegram(Telegram destTele, Telegram srcTele)
 {
     if (destTele.copy(srcTele) == -1)
     {
         int numItems = srcTele.data.NumItems;
         destTele = new Telegram((numItems < 0x3e8) ? (numItems * 5) : (numItems * 2));
         if (destTele.copy(srcTele) == -1)
         {
             GlobalServices.ErrMsg("saveTeleFromWin()", "FATAL ERROR: erroneous telegram copy implementation, exit WDS!");
             Application.Exit();
         }
     }
 }