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(); } } } }
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; }
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; }
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(); } } }