Exemple #1
0
        public override void InitPlugin()
        {
            var portName = Configuration["portName"];

            if (string.IsNullOrEmpty(portName))
            {
                throw new Exception("noolite portName is required");
            }

            Logger.LogInformation("Use {PortName} serial port", portName);

            device                          = new MTRFXXAdapter(portName);
            device.Connect                 += OnConnect;
            device.Disconnect              += OnDisconnect;
            device.ReceiveData             += OnReceiveData;
            device.ReceiveMicroclimateData += OnReceiveMicroclimateData;
            device.Error                   += OnError;

            wrapper  = new AdapterWrapper(false, device, Logger);
            wrapperF = new AdapterWrapper(true, device, Logger);

            #region register handlers

            foreach (var plugin in Context.GetAllPlugins())
            {
                var pluginType = plugin.GetType();

                foreach (var mi in plugin
                         .FindMethods <CommandAttribute, CommandDelegate>())
                {
                    Logger.LogInformation(
                        "register noolite command handler: {Method} ({PluginType})",
                        mi.Method.Method.Name,
                        pluginType.FullName);
                    cmdHandlers.Add(mi.Method);
                }

                foreach (var mi in plugin
                         .FindMethods <MicroclimateAttribute, MicroclimateDelegate>())
                {
                    Logger.LogInformation(
                        "register noolite microclimate handler: {Method} ({PluginType})",
                        mi.Method.Method.Name,
                        pluginType.FullName);
                    microclimateHandlers.Add(mi.Method);
                }
            }

            #endregion
        }
Exemple #2
0
        static void Invoke(CommonArgs args, Action <MTRFXXAdapter, byte> action, Action <MTRFXXAdapter, byte> actionF)
        {
            using (var adapter = new MTRFXXAdapter(args.Port.ParsedValue))
            {
                adapter.Open();
                adapter.ExitServiceMode();
                Thread.Sleep(50);

                if (args.ModeF.HasValue())
                {
                    actionF(adapter, args.Channel.ParsedValue);
                }
                else
                {
                    action(adapter, args.Channel.ParsedValue);
                }

                Thread.Sleep(100);
            }
        }
Exemple #3
0
 public AdapterWrapper(bool fMode, MTRFXXAdapter device, ILogger logger)
 {
     this.fMode  = fMode;
     this.device = device;
     this.logger = logger;
 }
Exemple #4
0
        static void Main(string[] args)
        {
            foreach (var name in SerialPort.GetPortNames())
            {
                Console.WriteLine(name);
            }

            return;

            //using (var adapter = new MTRFXXAdapter("/dev/tty.usbserial-AI04XT35"))
            using (var adapter = new MTRFXXAdapter("/dev/tty.usbserial-AL00HDFI"))
            {
                adapter.Connect    += AdapterOnConnect;
                adapter.Disconnect += AdapterOnDisconnect;

                adapter.ReceiveData             += AdapterOnReceiveData;
                adapter.ReceiveMicroclimateData += AdapterOnReceiveMicroclimateData;

                adapter.Error += AdapterOnError;

//                Console.WriteLine("open");
//                adapter.Open();
//                Console.ReadKey();
//
//                Console.WriteLine("exit service mode");
//                adapter.ExitServiceMode();
//                Console.ReadKey();
//
//                Console.WriteLine("close");
//                adapter.Close();
//                Console.ReadKey();

                Console.WriteLine("open");
                adapter.Open();
                Console.ReadKey();

                Console.WriteLine("exit service mode");
                adapter.ExitServiceMode();
                Console.ReadKey();


//                Console.WriteLine("bind");
//                adapter.BindF(13);
//
//                Console.ReadKey();

//                Console.WriteLine("bind");
//                adapter.Bind(Mode.NooLiteF, 13);
//
//                Console.ReadKey();

//
//                Console.WriteLine("unbind");
//                adapter.Unbind(Mode.NooLiteF, 13);
//
//                Console.ReadKey();

//                Console.WriteLine("on");
//                adapter.OnF(13, 1594);
//
//                Console.ReadKey();
//
//                Console.WriteLine("off");
//                adapter.OffF(13, 1594);
//
//                Console.ReadKey();
//
//                Console.WriteLine("on");
//                adapter.OnF(13, 2405);
//
//                Console.ReadKey();
//
//                Console.WriteLine("off");
//                adapter.OffF(13, 2405);
//
//                Console.ReadKey();


                Console.WriteLine("bind: start");
                adapter.On(64);

                Console.ReadKey();

                Console.WriteLine("bind: stop");
                adapter.BindStop();
            }
        }