Ejemplo n.º 1
0
        /*
         * конфигурация команд клиента
         */
        private static CommandArray <ClientData> ConfigureCommands()
        {
            CommandArray <ClientData> res = new CommandArray <ClientData>();

            res.AddCommand((c) => {
                ICommand cmd = new CommandStress();
                c.Name       = "stress";
                c.Execute    = (ClientData[] arguments) => {
                    cmd.Execute(arguments[0]);
                };
            });
            res.AddCommand((c) => {
                ICommand cmd = new CommandLoad();
                c.Name       = "load";
                c.Execute    = (ClientData[] arguments) => {
                    cmd.Execute(arguments[0]);
                };
            });
            res.AddCommand((c) => {
                ICommand cmd = new CommandPerformance();
                c.Name       = "performance";
                c.Execute    = (ClientData[] arguments) => {
                    cmd.Execute(arguments[0]);
                };
            });

            return(res);
        }
Ejemplo n.º 2
0
        public override void Communicate(GEIIO.Communicate.IRequestInfo info)
        {
            string hexs = BinaryUtil.ByteToHex(info.Data);

            OnDeviceRuningLog("接收>>" + hexs);

            byte[]       cmds = this.Protocol.GetCommand(info.Data);
            CommandArray cr   = (CommandArray)cmds[0];

            dynamic obj = this.Protocol.DriverAnalysis <byte[]>(cr.ToString(), info.Data, info.BigData);

            if (obj != null)
            {
                if (cr == CommandArray.RealTimeData)
                {
                    _deviceDyn.Dyn = (Dyn)obj;
                    OnDeviceRuningLog("通讯正常");
                    if (this.DeviceParameter.DeviceCode != "1")
                    {
                        Console.WriteLine(">>>>模拟控制命令开始");
                        this.OnDeviceConnector(
                            new FromDevice(this.DeviceParameter.DeviceID, this.DeviceParameter.DeviceCode,
                                           this.DeviceParameter.DeviceAddr, this.DeviceParameter.DeviceName),
                            new DeviceToDevice("1", this.DeviceParameter.DeviceName + "问:大哥,朴大妈为什么还不下课?", null, null));
                    }
                }
                else if (cr == CommandArray.FileData)
                {
                    OnDeviceRuningLog("文件存储路径:" + obj.ToString());
                }
            }
        }
Ejemplo n.º 3
0
        public override void Communicate(ServerSuperIO.Communicate.IResponseInfo info)
        {
            string hexs = BinaryUtil.ByteToHex(info.Data);

            OnDeviceRuningLog("接收>>" + hexs);

            byte[]       cmds = this.Protocol.GetCommand(info.Data);
            CommandArray cr   = (CommandArray)cmds[0];

            dynamic obj = this.Protocol.DriverAnalysis <byte[]>(cr.ToString(), info.Data, info.BigData);

            if (obj != null)
            {
                if (cr == CommandArray.RealTimeData)
                {
                    Dyn dyn = (Dyn)obj;

                    this.DeviceDynamic.DynamicData.Write("flow", dyn.Flow);
                    this.DeviceDynamic.DynamicData.Write("signal", dyn.Signal);

                    OnDeviceRuningLog("通讯正常,流量:" + dyn.Flow + ",信号:" + dyn.Signal);
                }
                else if (cr == CommandArray.FileData)
                {
                    OnDeviceRuningLog("文件存储路径:" + obj.ToString());
                }
                //else if (cr == CommandArray.BackControlCommand)
                //{
                //    if (_serviceCallback != null)
                //    {
                //        _serviceCallback.BeginInvoke(new string[] { this.DeviceParameter.DeviceCode, _channelKey }, null, null);
                //    }
                //}
            }
        }
Ejemplo n.º 4
0
        public static void Main(string[] args)
        {
            config      = JSONParser.ReadConfig(CONFIG_PATH); //чтение файла конфигурации с диска
            hardwareID  = Hardware.GetID();                   //идентификатор оборудования строися на основе mac адресов
            information = new PartStruct()                    //информация о клиенте отсылается серверу
                          .Add("name", config["name"])
                          .Add("groupe", config["group"])
                          .Add("id", hardwareID)
                          .Add("port", config["serverPort"]);

            receiver = ConfigureReceiver();
            commands = ConfigureCommands();
            rRServer = ConfigureServer();

            Console.ReadKey();
            //освобождение ресурсов и завершение программы
            receiver.Dispose();
            rRServer.Dispose();
        }
Ejemplo n.º 5
0
 /*
  * создание управляющих сервером команд
  */
 private static void ConfigureCommands()
 {
     commands = new CommandArray <ClientData>();
     commands.AddCommand((c) => {            //добавляет клиента и записывает как его найти
         IServerCommand cmd = new CommandAddClient(dataHolder);
         c.Name             = "AddClient";
         c.Execute          = (ClientData[] arguments) => {
             cmd.Execute(arguments[0]);
         };
     });
     commands.AddCommand((c) => {            //фильтрует клиентов по имени и группе
         IServerCommand cmd = new CommandClients(dataHolder);
         c.Name             = "clients";
         c.Execute          = (ClientData[] arguments) => {
             cmd.Execute(arguments[0]);
         };
     });
     commands.AddCommand((c) => {            //проводит стресс тестирование
         IServerCommand cmd = new CommandStressTest(dataHolder);
         c.Name             = "stress";
         c.Execute          = (ClientData[] arguments) => {
             cmd.Execute(arguments[0]);
         };
     });
     commands.AddCommand((c) => {//проводит нагрузочное тестирование
         IServerCommand cmd = new CommandLoadTest(dataHolder);
         c.Name             = "load";
         c.Execute          = (ClientData[] arguments) => {
             cmd.Execute(arguments[0]);
         };
     });
     commands.AddCommand((c) => {//проводит тестирование производительности
         IServerCommand cmd = new CommandPerformance(dataHolder);
         c.Name             = "performance";
         c.Execute          = (ClientData[] arguments) => {
             cmd.Execute(arguments[0]);
         };
     });
 }
Ejemplo n.º 6
0
        static void Main(string[] args)
        {
            config       = readConfig(CONFIG_PATH);
            commandBank  = configureCommands();
            webSearchers = createSearchers();

            Console.OutputEncoding = Encoding.UTF8;

            while (execute)
            {
                Console.WriteLine("Enter command");
                string      cmd     = Console.ReadLine();
                CommandData cmdData = new CommandData(cmd);
                try
                {
                    commandBank.Execute(cmdData.Cmd, cmdData);
                }
                catch (Exception err)
                {
                    Console.WriteLine(err);
                }
            }
        }
Ejemplo n.º 7
0
        static CommandArray <CommandData> configureCommands()
        {
            CommandArray <CommandData> cmds = new CommandArray <CommandData>();

            cmds.AddCommand(cmd => {
                cmd.Name = "search";
                CommandDataPattern pattern = new CommandDataPattern();
                pattern.AddOption('l', false);
                pattern.AddOption('w', true);
                pattern.AddOption('a', false);
                cmd.Execute = (arguments) => {
                    CommandData argument = arguments[0];
                    argument.SetPattern(pattern);
                    Stream outStream = null;
                    if (argument.IsKey('w'))
                    {
                        FileMode mode = FileMode.Create;
                        if (argument.IsKey('a'))
                        {
                            mode = FileMode.Append;
                        }
                        outStream = new FileStream(argument.GetKeyValue('w'), mode);
                    }
                    else
                    {
                        outStream = Console.OpenStandardOutput();
                    }
                    String searchPhrase = argument.args[0];
                    using (outStream) {
                        if (argument.IsKey('l'))
                        {//поиск в БД
                            writeToStream(outStream, DBRepository.findByQuery(searchPhrase), searchPhrase);
                        }
                        else
                        {//запрос к гуглу
                            Query searchResult = webSearchers[0].search(searchPhrase);
                            DBRepository.ConnectToDB(connect => {
                                Query query = (from q in connect.queries
                                               where q.title == searchPhrase
                                               select q).Include("links").FirstOrDefault();
                                if (query != null)
                                {
                                    if (!searchResult.Equals(query))
                                    {
                                        Console.WriteLine("update data base");
                                        connect.queries.Remove(query);
                                        connect.queries.Add(searchResult);
                                        connect.SaveChanges();
                                    }
                                }
                                else
                                {
                                    Console.WriteLine("write to data base");
                                    connect.queries.Add(searchResult);
                                    connect.SaveChanges();
                                }
                            });
                            writeToStream(outStream, searchResult.links, searchPhrase);
                        }
                    }
                };
            });

            cmds.AddCommand(cmd => {
                cmd.Name    = "exit";
                cmd.Execute = (arguments) => {
                    Console.WriteLine("exiting...");
                    execute = false;
                };
            });

            return(cmds);
        }