示例#1
0
        public void StartListener(int port, SHServer server)
        {
            listener = new TcpListener(System.Net.IPAddress.Any, port);

            listener.Start();
            listener.BeginAcceptTcpClient(AcceptTcpClient, listener);
            this.server = server;
        }
示例#2
0
 public SHServerTCPClient(TcpClient client, SHServerTCPServer tcpServer, SHServer server)
 {
     this.client    = client;
     stream         = client.GetStream();
     reader         = new BinaryReader(stream);
     readerS        = new StreamReader(stream);
     writer         = new BinaryReader(stream);
     writerS        = new StreamWriter(stream);
     this.server    = server;
     this.tcpServer = tcpServer;
 }
示例#3
0
 public Measurement(byte cmd, SHServer server, string name, string unit, string key)
 {
     //server.OnDataReceived += server_OnDataReceived;
     seriesPointsCount = 0;
     Name                 = name;
     Unit                 = unit;
     Key                  = key;
     this.server          = server;
     this.cmd             = cmd;
     timer.Elapsed       += timer_Elapsed;
     timer.Interval       = 5000;
     MaxSeriesPointsCount = 50;
 }
示例#4
0
        static void Main(string[] args)
        {
            server = new SmartHouseServer.SHServer();
            Console.WriteLine("aaaa");

            ConnectPort();


            server.measurements["illumination"].SetMeasurementInterval(500);
            string cmd;
            string temp;

            while (true)
            {
                cmd = Console.ReadLine().Trim().ToLower();
                if (cmd == "last")
                {
                    temp = Console.ReadLine().Trim().ToLower();
                    if (!server.measurements.ContainsKey(temp))
                    {
                        continue;
                    }
                    Measurement mea = server.measurements[temp];
                    Console.WriteLine("{0,-10}{1,-10}", "Дата", mea.Name);
                    Console.WriteLine("{0,-10:T}{1,-10}", mea.Last.CreationTime, mea.Last.Value);
                    Console.WriteLine("\n");
                }
                else if (cmd == "list")
                {
                    temp = Console.ReadLine().Trim().ToLower();
                    if (!server.measurements.ContainsKey(temp))
                    {
                        continue;
                    }
                    Measurement mea = server.measurements[temp];
                    Console.WriteLine("{0,-10}{1,-10}", "Дата", mea.Name);
                    foreach (MeasurementData data in mea.History)
                    {
                        Console.WriteLine("{0,-10:T}{1,-10}", data.CreationTime, data.Value);
                    }
                    Console.WriteLine("\n");
                }
                else if (cmd == "set interval")
                {
                    temp = Console.ReadLine().Trim().ToLower();
                    if (!server.measurements.ContainsKey(temp))
                    {
                        continue;
                    }
                    Measurement mea = server.measurements[temp];
                    Console.WriteLine("Введите интервал измерений для [{0}] в с", mea.Name);
                    temp = Console.ReadLine().Trim();
                    mea.SetMeasurementInterval(Convert.ToDouble(temp) * 1000);
                }
                else if (cmd == "start")
                {
                    temp = Console.ReadLine().Trim().ToLower();
                    if (!server.measurements.ContainsKey(temp))
                    {
                        continue;
                    }
                    Measurement mea = server.measurements[temp];
                    mea.StartMeasurementTimer();
                }
                else if (cmd == "stop")
                {
                    temp = Console.ReadLine().Trim().ToLower();
                    if (!server.measurements.ContainsKey(temp))
                    {
                        continue;
                    }
                    Measurement mea = server.measurements[temp];
                    mea.StopMeasurementTimer();
                }
                else if (cmd == "start all")
                {
                    foreach (Measurement mea in server.measurements.Values)
                    {
                        mea.StartMeasurementTimer();
                    }
                }
                else if (cmd == "stop all")
                {
                    foreach (Measurement mea in server.measurements.Values)
                    {
                        mea.StopMeasurementTimer();
                    }
                }
                else if (cmd == "exit")
                {
                    break;
                }
                else if (cmd == "connect")
                {
                    ConnectPort();
                }
                else
                {
                }
            }
            Console.WriteLine("Ожидание нажатия клавиши для завершения работы");
            Console.ReadKey();
        }