コード例 #1
0
        public async static Task Initialize(Action callBackWhenConnected, Action <Exception> callBackWhenExceptionOccured)
        {
            SystemConfig config = await new YummyOnlineManager().GetSystemConfig();

            client = new TcpClient(IPAddress.Parse(config.TcpServerIp), config.TcpServerPort, new SystemConnectProtocol());

            client.CallBackWhenMessageReceived = (t, p) => {
                if (t == TcpProtocolType.TcpServerStatusInform)
                {
                    TcpServerStatusInformProtocol protocol = (TcpServerStatusInformProtocol)p;
                    tcpServerStatusProtocol = protocol.Status;
                    getTcpServerStatusFinished.Set();
                }
            };

            client.CallBackWhenConnected = () => {
                callBackWhenConnected();
            };

            client.CallBackWhenExceptionOccured = e => {
                callBackWhenExceptionOccured(e);
            };

            client.Start();
        }
コード例 #2
0
ファイル: TcpServer.cs プロジェクト: zyhbill/YummyOnline
        public TcpServerStatusProtocol GetTcpServerStatus()
        {
            TcpServerStatusProtocol protocol = new TcpServerStatusProtocol();

            foreach (var p in waitingForVerificationClients.Clients)
            {
                protocol.WaitingForVerificationClients.Add(getClientStatus(p));
            }
            protocol.SystemClient = getClientStatus(systemClient.ClientInfo);
            foreach (var pair in newDineInformClients.Clients)
            {
                protocol.NewDineInformClients.Add(new NewDineInformClientStatus {
                    Guid        = pair.Key.Guid,
                    Description = pair.Key.Description,
                    Status      = getClientStatus(pair.Value)
                });
            }
            foreach (var pair in printerClients.Clients)
            {
                protocol.PrinterClients.Add(new PrinterClientStatus {
                    HotelId     = pair.Key,
                    WaitedCount = printerClients.WaitedQueue[pair.Key].Count,
                    Status      = getClientStatus(pair.Value)
                });
            }

            return(protocol);
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: zyhbill/YummyOnline
 static void displayTcpServerStatus(TcpServerStatusProtocol status)
 {
     Console.WriteLine("WaitingForVerificationClients:");
     foreach (var p in status.WaitingForVerificationClients)
     {
         displayClientStatus(p);
     }
     Console.WriteLine("========================");
     Console.WriteLine("SystemClient:");
     if (status.SystemClient.IsConnected)
     {
         displayClientStatus(status.SystemClient);
     }
     else
     {
         Console.WriteLine("Disconnected");
     }
     Console.WriteLine("========================");
     Console.WriteLine("NewDineInformClients:");
     foreach (var p in status.NewDineInformClients)
     {
         Console.WriteLine("---------------------");
         string guid = p.Guid.ToString();
         Console.WriteLine($"Guid: {guid.Substring(0, 4)}...{guid.Substring(guid.Length - 4, 4)}, Description: {p.Description}");
         if (p.Status.IsConnected)
         {
             displayClientStatus(p.Status);
         }
         else
         {
             Console.WriteLine("Disconnected");
         }
     }
     Console.WriteLine("========================");
     foreach (var p in status.PrinterClients)
     {
         Console.Write($"Hotel {p.HotelId}: ");
         if (p.Status.IsConnected)
         {
             displayClientStatus(p.Status);
             Console.WriteLine($"\t({p.WaitedCount} standing by)");
         }
         else
         {
             Console.WriteLine("Disconnected");
         }
     }
 }
コード例 #4
0
        public static dynamic GetTcpServerInfo()
        {
            Process process = getTcpServerProcess();

            if (process == null)
            {
                return(new {
                    IsStarted = false,
                });
            }

            TcpServerStatusProtocol status = SystemTcpClient.GetTcpServerStatus();

            return(new {
                IsStarted = true,
                ProcessName = process.ProcessName,
                StartTime = process.StartTime,
                Memory = curpcp.NextValue() / (1024 * 1024),
                Cpu = curtime.NextValue() / Environment.ProcessorCount,
                Status = status
            });
        }
コード例 #5
0
        private void requestTcpServerStatus()
        {
            TcpServerStatusProtocol tcpServerStatus = getTcpServerStatus();

            send(ClientInfo.Client, new TcpServerStatusInformProtocol(tcpServerStatus));
        }