public void SendToServer(string QueryName, params object[] Parameters) { PackageViaWireless Package = new PackageViaWireless(0, true); Package.DefineQueryAndParams(QueryName, PackageConvertation.GetStrPatametersFromArray(Parameters)); Package.ClientCode = User; ConnectionAgent.WaitingPackageID = Package.PackageID; ConnectionAgent.SendPackage(Package.GetPackage()); }
public object[] PerformQuery(string QueryName, params object[] Parameters) { PackageViaWireless Package = new PackageViaWireless(0, true); Package.DefineQueryAndParams(QueryName, PackageConvertation.GetStrPatametersFromArray(Parameters)); Package.ClientCode = User; ConnectionAgent.WaitingPackageID = Package.PackageID; ConnectionAgent.Executed = false; MainForm.ShowQueryWait(); if (ConnectionAgent.SendPackage(Package.GetPackage())) { while (!ConnectionAgent.RequestReady & ConnectionAgent.OnLine) { Thread.Sleep(300); } MainForm.ShowQueryComplated(); if (ConnectionAgent.Package == null || !ConnectionAgent.Executed) { Process.ShowMessage("Пропала связь с сервером!"); return(null); } if (ConnectionAgent.Package.Parameters == "#ERROR:1C_AGENT_DISABLE#") { ConnectionAgent.Package.Parameters = string.Empty; ConnectionAgent.RequestReady = false; Process.ShowMessage("1С-агент неактивен. Обратитесь к оператору!"); return(null); } object[] result = PackageConvertation.GetPatametersFromStr(ConnectionAgent.Package.Parameters); ConnectionAgent.RequestReady = false; if (result.Length == 0) { return(null); } if (result.GetType() == typeof(object[]) && result.Length == 1 && result[0] == null) { return(null); } return(result); } return(null); }
private void sentDeliveryReport(string sentPackageId) { object[] parameters = new object[] { sentPackageId, lastPackageId.Equals(sentPackageId) }; var package = new PackageViaWireless(0, true); package.DefineQueryAndParams(PackageConvertation.PACKAGE_CONFIRMATION_NAME, PackageConvertation.GetStrPatametersFromArray(parameters)); SendPackage(package.GetPackage()); }
private void ReadPackages() { #region Define local variables string StorekeeperQuery = "", StorekeeperQueryHead = ""; //Byte[] emptyData = System.Text.Encoding.GetEncoding(1251).GetBytes(""); //int streamLength; #endregion while (wifiEnabled) { #region Getting package if (PackageViaWireless.isCompletelyPackage(StorekeeperQueryHead)) { StorekeeperQuery = StorekeeperQueryHead; StorekeeperQueryHead = ""; } else { StorekeeperQuery = ReadStream(); WriteToFile(" << ReadStream [" + StorekeeperQuery + "]", false); } Package = null; if (StorekeeperQuery == null) { return; } StorekeeperQuery = StorekeeperQueryHead + StorekeeperQuery; if (!PackageViaWireless.isCompletelyPackage(StorekeeperQuery)) { StorekeeperQueryHead = StorekeeperQuery; continue; } WriteToFile(" << Read Query [" + StorekeeperQuery + "]", false); try { Package = new PackageViaWireless(StorekeeperQuery, out StorekeeperQueryHead); } catch (Exception exp) { string.Format("", exp.Message); } if (PackageConvertation.PACKAGE_CONFIRMATION_NAME.Equals(Package.QueryName)) { sentDeliveryReport(PackageConvertation.GetPatametersFromStr(Package.Parameters)[0] as string); continue; } lastPackageId = Package.PackageID; sentDeliveryReport(lastPackageId); StorekeeperQuery = ""; #endregion #region Pinging server Trace.WriteLine(string.Format("Pack id: {0};\tquery = {1};\t{2}", Package.PackageID, Package.QueryName, DateTime.Now.ToString("mm:ss"))); if (Package.QueryName == "Ping") { Package.QueryName = "PingReply"; SendPackage(Package.GetPackage()); continue; } if (Package.QueryName == "PingReply") { WriteToFile("? ShowPingResult"); DataRepresent.ShowPingValue(PackageConvertation.GetPatametersFromStr(Package.Parameters)[0] as string); //Client.MainForm.ShowPingResult(PackageConvertation.GetPatametersFromStr(Package.Parameters)[0] as string); WriteToFile("OK ShowPingResult"); continue; } #endregion if (Package.QueryName == "KeyPressing") { SendKeyCode = (int)PackageConvertation.GetPatametersFromStr(Package.Parameters)[0]; var CallTimer = new CallTimer(SendKey, 1, true); continue; } if (Package.QueryName == "BarcodeEvent") { SendBarcode = PackageConvertation.GetPatametersFromStr(Package.Parameters)[0] as string; var CallTimer = new CallTimer(SendKey, 1, true); continue; } if (Package.QueryName == "TimeSynchronization") { SetTime(PackageConvertation.GetPatametersFromStr(Package.Parameters)[0] as string); continue; } if (Package.QueryName == "FileTransmit") { object[] Params = PackageConvertation.GetPatametersFromStr(Package.Parameters); StorekeeperQueryHead = AcceptFile(Params[0] as string, (int)Params[1], StorekeeperQueryHead, Convert.ToBoolean(Params[2])); continue; } #region Message handling if (Package.QueryName == "Message") { object[] Parameters = PackageConvertation.GetPatametersFromStr(Package.Parameters); System.Windows.Forms.MessageBox.Show(Parameters[0] as string); // В параметры записывается только ID, текс сообщения уже не нужен Package.Parameters = ((int)Parameters[1]).ToString(); SendPackage(Package.GetPackage()); continue; } #endregion #region PackageHandling if (Package.PackageID != WaitingPackageID) { continue; } Executed = true; RequestReady = true; requestReadyTrigger.Set(); requestReadyTrigger.WaitOne(); while (RequestReady) { Thread.Sleep(100); } #endregion } }
public object[] PerformQuery(string QueryName, params object[] Parameters) { Current.LastQueryIsSuccessfull = false; if (!Current.OnLine && Current.MainForm.IsMainThread) { //"Нет подключения к серверу".Warning(); return(null); } PackageViaWireless Package = new PackageViaWireless(0, true); Package.DefineQueryAndParams(QueryName, PackageConvertation.GetStrPatametersFromArray(Parameters)); Package.ClientCode = User; ConnectionAgent.WaitingPackageID = Package.PackageID; ConnectionAgent.Executed = false; MainForm.ShowQueryWait(); if (ConnectionAgent.SendPackage(Package.GetPackage())) { var stopWatch = new Stopwatch(); stopWatch.Start(); while (!ConnectionAgent.RequestReady & ConnectionAgent.OnLine) { Thread.Sleep(300); const int MAX_WAIT_TIME_MILISEC = 5000; if (stopWatch.ElapsedMilliseconds > MAX_WAIT_TIME_MILISEC) { RemoteCallDialog.WaitForServerResponse(); break; } } if (!Current.ConnectionAgent.WifiEnabled) { Thread.Sleep(1000); Current.StartConnectionAgent(); } MainForm.ShowQueryComplated(); if (ConnectionAgent.Package == null || !ConnectionAgent.Executed) { "Пропала связь с сервером!".ShowMessage(); return(null); } //if (ConnectionAgent.Package.Parameters == "#ERROR:1C_AGENT_DISABLE#") // { // ConnectionAgent.Package.Parameters = string.Empty; // ConnectionAgent.RequestReady = false; // "1С-агент неактивен. Обратитесь к оператору!".ShowMessage(); // return null; // } object[] result = PackageConvertation.GetPatametersFromStr(ConnectionAgent.Package.Parameters); ConnectionAgent.RequestReady = false; if (result.Length == 0 || (result.GetType() == typeof(object[]) && result.Length == 1 && result[0] == null)) { return(null); } LastQueryIsSuccessfull = true; return(result); } return(null); }