private Config LoadConfig()
        {
            string configurationFileFullPath = Path.Combine(Environment.CurrentDirectory, ConfigurationFilename);
            string fileContents = FileReader.ReadFile(configurationFileFullPath);
            var    config       = ConfigurationFileParser.Parse(fileContents);

            return(config);
        }
Exemplo n.º 2
0
        public static Dictionary <string, string> GetConfiguration(Options options)
        {
            if (!options.SkipConfiguration && File.Exists("mmbot.ini"))
            {
                var config = new ConfigurationFileParser(Path.GetFullPath("mmbot.ini"));
                return(config.GetConfiguration());
            }

            return(new Dictionary <string, string>());
        }
        public void TestSaveAndLoadConfiguration()
        {
            ConfigurationModel cfg = new ConfigurationModel
            {
                AtemHost      = "192.168.10.145",
                UseTallyGreen = true,
                Cameras       = new List <CameraConnexionModel>
                {
                    new CameraConnexionModel
                    {
                        CameraHost = "192.168.1.20", CameraName = "CAM 1", CameraPort = 5002
                    },
                    new CameraConnexionModel
                    {
                        CameraHost = "192.168.1.21", CameraName = "CAM 2", CameraPort = 5002
                    },
                    new CameraConnexionModel
                    {
                        CameraHost = "192.168.1.22", CameraName = "CAM 3", CameraPort = 5002
                    },
                    new CameraConnexionModel
                    {
                        CameraHost = "192.168.1.23", CameraName = "CAM 4", CameraPort = 5002
                    }
                }
            };

            ConfigurationFileParser.SaveConfiguration(cfg, "test-configuration.json");

            Assert.IsTrue(File.Exists("test-configuration.json"));

            ConfigurationModel cfg2 = ConfigurationFileParser.LoadConfigurationFile("test-configuration.json");

            StringAssert.Contains(cfg.AtemHost, cfg2.AtemHost);
            StringAssert.Contains(cfg.AtemHost, cfg2.AtemHost);
            Assert.IsTrue(cfg.UseTallyGreen == cfg2.UseTallyGreen);
            Assert.IsTrue(cfg.Cameras.Count == cfg2.Cameras.Count);
            Assert.IsTrue(cfg.Cameras.Count == cfg2.Cameras.Count);
            for (int i = 0; i < cfg.Cameras.Count; i++)
            {
                Assert.IsTrue(cfg.Cameras[i].CameraHost == cfg2.Cameras[i].CameraHost, "camera host is different on index :{0}", i);
                Assert.IsTrue(cfg.Cameras[i].CameraName == cfg2.Cameras[i].CameraName, "camera name is different on index :{0}", i);
                Assert.IsTrue(cfg.Cameras[i].CameraPort == cfg2.Cameras[i].CameraPort, "camera port is different on index :{0}", i);
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Initialize the whole system
        /// </summary>
        internal void Initialize()
        {
            //Load configuration
            var cfg = ConfigurationFileParser.LoadConfigurationFile("Configuration.json");

            var ptzManager = SimpleIoc.Default.GetInstance <IPTZManager>();

            ptzManager.InitSeetings(cfg);

            //Create and connect connection to ATEM
            var atemHandler = new AtemSwitcherHandler();
            var atemParser  = new AtemSwitcherParser(cfg.AtemHost);

            atemHandler.Initialize(atemParser);
            ptzManager.SetSwitcherHandler(atemHandler);

            //Create How many Camera
            foreach (var camcfg in cfg.Cameras)
            {
                var cam       = new CameraHandler();
                var camParser = new CameraPTC140Parser();
                var socket    = new SocketAutoConnectParser();
                socket.Initialize(camcfg.CameraName, camcfg.CameraHost, camcfg.CameraPort, camParser);
                camParser.Initialize(socket);
                cam.Initialize(camParser);
                ptzManager.AddCameraHandler(cam);
            }

            //Create pad
            var pad       = new GamePadHandler();
            var hidParser = new HIDParser();

            hidParser.Initialize(cfg.GamePads, pad);
            pad.Initialize(hidParser, ptzManager, cfg.CamSpeed);
            ptzManager.AddGamePad(pad);
        }
Exemplo n.º 5
0
        static void Main(string[] args)
        {
            var cfg = new ConfigurationModel
            {
                AtemHost = "192.168.1.135",
                Cameras  =
                {
                    new CameraConnexionModel
                    {
                        CameraHost  = "192.168.1.131",
                        CameraName  = "CAM 1",
                        CameraPort  = 5002,
                        FocusMode   = ECameraFocusMode.Auto,
                        PresetIcons =
                        {
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "1"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "2"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "3"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "4"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "5"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "6"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "7"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "8"
                            }
                        }
                    },
                    new CameraConnexionModel
                    {
                        CameraHost  = "192.168.1.132",
                        CameraName  = "CAM 2",
                        CameraPort  = 5002,
                        FocusMode   = ECameraFocusMode.Auto,
                        PresetIcons =
                        {
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "1"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "2"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "3"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "4"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "5"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "6"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "7"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "8"
                            }
                        }
                    },
                    new CameraConnexionModel
                    {
                        CameraHost  = "192.168.1.133",
                        CameraName  = "CAM 3",
                        CameraPort  = 5002,
                        FocusMode   = ECameraFocusMode.Auto,
                        PresetIcons =
                        {
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "1"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "2"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "3"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "4"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "5"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "6"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "7"
                            },
                            new PresetIconSettingModel
                            {
                                IconKey  = "Man-02",
                                PresetId = "8"
                            }
                        }
                    }
                },
                GamePads =
                {
                    new HIDGamePadModel
                    {
                        HidDeviceName  = "Thrustmaster T.16000M",
                        MappedCommands = new System.Collections.Generic.List <MappCommnadModel>
                        {
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPanTiltAxes, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.GenericDesktopX,                                                                                 HIDGamePadCommands.GenericDesktopY         }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraZoomAxe, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.GenericDesktopZ }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPreset1, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button10 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPreset2, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button9 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPreset3, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button8 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPreset4, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button13 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPreset5, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button12 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPreset6, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button11 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPreset7, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button14 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPreset8, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button15 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.Camera1SetPreview, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button3 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.Camera2SetPreview, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button2 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.Camera3SetPreview, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button4 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.SwitcherCut, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button5 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraFocusAutoOnePushSwitchMode, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button7 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraFocusOnePushTriger, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button1 }
                            },
                            new MappCommnadModel
                            {
                                PTZCommand     = GamePadHandlerCommands.SwitcherMix,
                                GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button6 }
                            },
                            new MappCommnadModel
                            {
                                PTZCommand     = GamePadHandlerCommands.CameraZoomAxe,
                                GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.GenericDesktopHatSwitch }
                            },
                        }
                    },
                    new HIDGamePadModel
                    {
                        HidDeviceName  = "Logitech Logitech RumblePad 2 USB",
                        MappedCommands = new System.Collections.Generic.List <MappCommnadModel>
                        {
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPanTiltAxes, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.GenericDesktopX,                                                                                 HIDGamePadCommands.GenericDesktopY         }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraZoomAxe, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.GenericDesktopRz,                                                                                HIDGamePadCommands.GenericDesktopHatSwitch }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPreset1, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button5 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPreset2, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button6 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPreset3, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button7 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPreset4, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button8 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPreset5, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button9 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPreset6, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button10 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.Camera1SetPreview, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button1 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.Camera2SetPreview, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button2 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.Camera3SetPreview, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button3 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.SwitcherCut, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button4 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraFocusAutoOnePushSwitchMode, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button11 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraFocusOnePushTriger, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button12 }
                            },
                        }
                    },
                    new HIDGamePadModel
                    {
                        HidDeviceName  = "Nintendo Wireless Gamepad",
                        MappedCommands = new System.Collections.Generic.List <MappCommnadModel>
                        {
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPanTiltAxes, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.GenericDesktopX,                                                                                 HIDGamePadCommands.GenericDesktopY         }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraZoomAxe, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.GenericDesktopRy,                                                                                HIDGamePadCommands.GenericDesktopHatSwitch }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPreset1, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button5 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPreset2, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button6 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPreset3, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button7 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPreset4, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button8 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPreset5, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button9 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraPreset6, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button10 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.Camera1SetPreview, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button3 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.Camera2SetPreview, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button1 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.Camera3SetPreview, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button2 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.SwitcherCut, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button4 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraFocusAutoOnePushSwitchMode, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button11 }
                            },
                            new MappCommnadModel {
                                PTZCommand = GamePadHandlerCommands.CameraFocusOnePushTriger, GamePadCommand = new HIDGamePadCommands[]{ HIDGamePadCommands.Button12 }
                            },
                        }
                    }
                }
            };
            string jsonString;

            ConfigurationFileParser.SaveConfiguration(cfg, "Configuration.json");


            var cfg2 = ConfigurationFileParser.LoadConfigurationFile("Configuration.json");

            jsonString = JsonConvert.SerializeObject(cfg2, Newtonsoft.Json.Formatting.Indented);
            Console.WriteLine(jsonString);
            Console.ReadLine();
        }