public MovementController(Relays relayBoard, Compass compassBoard, Program passedModel)
 {
     model = passedModel;
     relays = relayBoard;
     compass = compassBoard;
     compass.MeasurementComplete +=new Compass.MeasurementCompleteEventHandler(compassContinuousComplete);
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CakeMailRestClient"/> class.
        /// </summary>
        /// <param name="apiKey">The API Key received from CakeMail</param>
        /// <param name="host">The host where the API is hosted. The default is api.wbsrvc.com</param>
        /// <param name="httpClient">Allows you to inject your own HttpClient. This is useful, for example, to setup the HtppClient with a proxy</param>
        public CakeMailRestClient(string apiKey, string host = DEFAULT_HOST, HttpClient httpClient = null)
        {
            _mustDisposeHttpClient = httpClient == null;
            _httpClient            = httpClient;

            ApiKey    = apiKey;
            BaseUrl   = new Uri($"https://{host.TrimEnd('/')}/");
            Version   = typeof(CakeMailRestClient).GetTypeInfo().Assembly.GetName().Version.ToString();
            UserAgent = $"CakeMail .NET REST Client/{Version} (+https://github.com/Jericho/CakeMail.RestClient)";

            _fluentClient = new FluentClient(this.BaseUrl, httpClient)
                            .SetUserAgent(this.UserAgent);

            _fluentClient.BaseClient.DefaultRequestHeaders.Add("apikey", this.ApiKey);

            _fluentClient.Filters.Remove <DefaultErrorFilter>();
            _fluentClient.Filters.Add(new DiagnosticHandler());
            _fluentClient.Filters.Add(new CakeMailErrorHandler());

            Campaigns        = new Campaigns(_fluentClient);
            Clients          = new Clients(_fluentClient);
            Countries        = new Countries(_fluentClient);
            Permissions      = new Permissions(_fluentClient);
            Lists            = new Lists(_fluentClient);
            Timezones        = new Timezones(_fluentClient);
            Mailings         = new Mailings(_fluentClient);
            Relays           = new Relays(_fluentClient);
            Segments         = new Segments(_fluentClient);
            Users            = new Users(_fluentClient);
            SuppressionLists = new SuppressionLists(_fluentClient);
            Templates        = new Templates(_fluentClient);
            Triggers         = new Triggers(_fluentClient);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Clears the configurations.
 /// </summary>
 private void ClearConfig()
 {
     Positions.Clear();
     Relays.Clear();
     Sections.Clear();
     Sensors.Clear();
     Switchs.Clear();
 }
Ejemplo n.º 4
0
 // POST: api/Dados
 public HttpResponseMessage Post([FromBody] Relays value)
 {
     relay_state = value.relay.Equals("1") ? "OFF" : "ON";
     if (relay_change.Equals("ON"))
     {
         return(new HttpResponseMessage(HttpStatusCode.OK));
     }
     return(new HttpResponseMessage(HttpStatusCode.Created));
 }
 public ShowTablesShoulds(ITestOutputHelper @out)
 {
     this.@out     = @out;
     unitUnderTest = new Relays(
         new StringListLogger(log = new List <string>()),
         new Settings
     {
         InputPath         = "TestFiles",
         FileSearchPattern = "*.xlsx"
     });
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Ativa ou desativa um relé no dispositivo
 /// </summary>
 /// <param name="relay">Relé</param>
 /// <param name="state">Estado</param>
 public void SetRelayState(Relays relay, DeviceState state)
 {
     if (state == DeviceState.Off)
     {
         byte[] package = new byte[] { (byte)(0x40 | (0x0F & (byte)relay)), 0xFF };
         serialPort.Write(package, 0, 2);
     }
     else
     {
         byte[] package = new byte[] { (byte)(0x50 | (0x0F & (byte)relay)), 0xFF };
         serialPort.Write(package, 0, 2);
     }
 }
Ejemplo n.º 7
0
        // Timer Callback
        public void UpdateRelays(object state)
        {
            using (HttpClient httpClient = new HttpClient())
            {
                for (int x = 0; x < Relays.Count(); x++)
                {
                    string relayUrl     = string.Format("{0}/settings/relay/{1}", deviceUrl, x);
                    var    httpResponse = httpClient.GetStringAsync(relayUrl).Result;


                    Relay rel = JsonConvert.DeserializeObject <Relay>(httpResponse);

                    List <Variance> variances = rel.DetailedCompare(Relays[x]);

                    variances.ForEach(variance =>
                    {
                        Console.WriteLine("Property {0} changed from {1} to {2}.", variance.Prop, variance.valB, variance.valA);

                        if (variance.valA != null && variance.valB != null)
                        {
                            Relays[x].GetType().GetProperty(variance.Prop).SetValue(Relays[x], variance.valA);

                            if (variance.Prop.Equals("Ison"))
                            {
                                RelaySwitched?.Invoke(this, new DeviceSwitchedEventArgs {
                                    Device = this, IsOn = rel.Ison
                                });
                            }
                        }
                    });

                    /*
                     * if (rel.Ison != Relays[x].Ison)
                     * {
                     *
                     *  Relays[x].Ison = rel.Ison;
                     * }
                     */
                    //   Relays[x] = rel;
                    Relays[x].Parent = this;
                    Relays[x].Id     = x;
                }
            }
        }
Ejemplo n.º 8
0
        /// <summary>Disables the given relays.</summary>
        /// <param name="relays">The relays to turn off.</param>
        public void DisableRelay(Relays relays)
        {
            this.regData &= (ushort)(~relays);

            ushort reg = this.regData;

            for (int i = 0; i < 16; i++)
            {
                this.data.Write((reg & 0x1) == 0);

                this.clock.Write(true);
                this.clock.Write(false);

                reg >>= 1;
            }

            this.latch.Write(true);
            this.latch.Write(false);
        }
Ejemplo n.º 9
0
        public void GivenXlsxFilesInTheInputDirectoryFindsThem()
        {
            var settings = new Settings
            {
                InputPath         = "TestFiles",
                FileSearchPattern = "*.xlsx"
            };

            unitUnderTest =
                new Relays(
                    new StringListLogger(logLines = new List <string>()),
                    settings);

            var inputDir   = new DirectoryInfo(PathToExampleDocs);
            var foundFiles = inputDir.GetFiles("*.xlsx");

            unitUnderTest
            .ListSourceFiles()
            .ShouldEqualByValue(foundFiles);
        }
Ejemplo n.º 10
0
        private void SetIOData()
        {
            Response r = JsonConvert.DeserializeObject <Response>(Response);

            if (r.io.di != null)
            {
                DIs.Clear();
                foreach (DigitalInput di in r.io.di)
                {
                    DIs.Insert(di.diIndex, di);
                }
            }
            if (r.io.relay != null)
            {
                Relays.Clear();
                foreach (Relay relay in r.io.relay)
                {
                    Relays.Insert(relay.relayIndex, relay);
                }
            }
        }
Ejemplo n.º 11
0
 public async Task <IEnumerable <PowerRelay> > GetRelaysAsync()
 {
     return(await Relays.ToListAsync());
 }
Ejemplo n.º 12
0
 static void write_SingleDIO(Relays relay, bool value)
 {
     NIUtils.Write_SingleDIO((uint)relay, value);
 }
Ejemplo n.º 13
0
 public void Put([FromBody] Relays value)
 {
     relay_change = value.relay;
 }
Ejemplo n.º 14
0
        /// <summary>
        /// Reads the configuration file.
        /// </summary>
        /// <param name="path">File name and path.</param>
        /// <returns>True on success, false otherwise.</returns>
        public virtual bool ReadConf(string path)
        {
            bool bReturn = true;
            //string myLine, myMotionLine;
            int iLine = 0;
            var nfi   = new System.Globalization.NumberFormatInfo();

            ScanBus();
            ClearConfig();

            var fi = new FileInfo(ICCConstants.SERVER_CONF_PATH);

            if (fi.Exists)
            {
                using (var sr = new StreamReader(ICCConstants.SERVER_CONF_PATH))
                {
                    bool bHeaderFound = false;
                    while (!sr.EndOfStream && !bHeaderFound)
                    {
                        var line = sr.ReadLine().Trim();
                        iLine++;
                        if (line.Length > 0 && line[0] != '#')
                        {
                            if (line.Substring(0, 17) == "ICHOOCHOO_CONF V1")
                            {
                                bHeaderFound = true;
                            }
                        }
                    }
                    if (bHeaderFound)
                    {
                        while (!sr.EndOfStream && bReturn)
                        {
                            var line = sr.ReadLine().Trim();
                            iLine++;
                            if (line.Length > 0 && line[0] != '#')
                            {
                                var terms = line.Split(' ');
                                if (terms.Length > 0)
                                {
                                    if (terms[0] == "POSITION")
                                    {
                                        if (terms.Length == 3)
                                        {
                                            byte bID = 0xFF;
                                            if (byte.TryParse(terms[1], NumberStyles.HexNumber, nfi, out bID))
                                            {
                                                if (!Positions.ContainsKey(bID))
                                                {
                                                    Positions.Add(bID, new ConfPosition()
                                                    {
                                                        ID = bID, Description = terms[2]
                                                    });
                                                }
                                                else
                                                {
                                                    bReturn = false;
                                                }
                                            }
                                            else
                                            {
                                                bReturn = false;
                                            }
                                        }
                                        else
                                        {
                                            bReturn = false;
                                        }
                                    }
                                    else if (terms[0] == "SECTION")
                                    {
                                        if (terms.Length == 5)
                                        {
                                            int iID         = -1;
                                            int iModuleAddr = -1;
                                            int iOutput     = -1;
                                            if (int.TryParse(terms[1], NumberStyles.HexNumber, nfi, out iID))
                                            {
                                                if (int.TryParse(terms[2], NumberStyles.HexNumber, nfi, out iModuleAddr))
                                                {
                                                    if (int.TryParse(terms[3], NumberStyles.HexNumber, nfi, out iOutput))
                                                    {
                                                        if (!Sections.ContainsKey(iID))
                                                        {
                                                            Sections.Add(iID, new ConfSection()
                                                            {
                                                                ID = iID, ModuleID = iModuleAddr, IOPort = iOutput, Description = terms[4]
                                                            });
                                                        }
                                                        else
                                                        {
                                                            bReturn = false;
                                                        }
                                                    }
                                                    else
                                                    {
                                                        bReturn = false;
                                                    }
                                                }
                                                else
                                                {
                                                    bReturn = false;
                                                }
                                            }
                                            else
                                            {
                                                bReturn = false;
                                            }
                                        }
                                        else
                                        {
                                            bReturn = false;
                                        }
                                    }
                                    else if (terms[0] == "SWITCH")
                                    {
                                        if (terms.Length == 6)
                                        {
                                            int iID            = -1;
                                            int iModuleAddr    = -1;
                                            int iOutput        = -1;
                                            int iStraightValue = -1;
                                            if (int.TryParse(terms[1], NumberStyles.HexNumber, nfi, out iID))
                                            {
                                                if (int.TryParse(terms[2], NumberStyles.HexNumber, nfi, out iModuleAddr))
                                                {
                                                    if (int.TryParse(terms[3], NumberStyles.HexNumber, nfi, out iOutput))
                                                    {
                                                        if (int.TryParse(terms[4], NumberStyles.Integer, nfi, out iStraightValue))
                                                        {
                                                            if (!Switchs.ContainsKey(iID))
                                                            {
                                                                Switchs.Add(iID, new ConfSwitch()
                                                                {
                                                                    ID = iID, ModuleID = iModuleAddr, IOPort = iOutput, StraightValue = iStraightValue, Description = terms[5]
                                                                });
                                                            }
                                                            else
                                                            {
                                                                bReturn = false;
                                                            }
                                                        }
                                                        else
                                                        {
                                                            bReturn = false;
                                                        }
                                                    }
                                                    else
                                                    {
                                                        bReturn = false;
                                                    }
                                                }
                                                else
                                                {
                                                    bReturn = false;
                                                }
                                            }
                                            else
                                            {
                                                bReturn = false;
                                            }
                                        }
                                        else
                                        {
                                            bReturn = false;
                                        }
                                    }
                                    else if (terms[0] == "RELAY")
                                    {
                                        if (terms.Length == 5)
                                        {
                                            int iID         = -1;
                                            int iModuleAddr = -1;
                                            int iOutput     = -1;
                                            if (int.TryParse(terms[1], NumberStyles.HexNumber, nfi, out iID))
                                            {
                                                if (int.TryParse(terms[2], NumberStyles.HexNumber, nfi, out iModuleAddr))
                                                {
                                                    if (int.TryParse(terms[3], NumberStyles.HexNumber, nfi, out iOutput))
                                                    {
                                                        if (!Relays.ContainsKey(iID))
                                                        {
                                                            Relays.Add(iID, new ConfRelay()
                                                            {
                                                                ID = iID, ModuleID = iModuleAddr, IOPort = iOutput, Description = terms[4]
                                                            });
                                                        }
                                                        else
                                                        {
                                                            bReturn = false;
                                                        }
                                                    }
                                                    else
                                                    {
                                                        bReturn = false;
                                                    }
                                                }
                                                else
                                                {
                                                    bReturn = false;
                                                }
                                            }
                                            else
                                            {
                                                bReturn = false;
                                            }
                                        }
                                        else
                                        {
                                            bReturn = false;
                                        }
                                    }
                                    else if (terms[0] == "SENSOR")
                                    {
                                        if (terms.Length == 6)
                                        {
                                            int iID         = -1;
                                            int iModuleAddr = -1;
                                            int iOutput     = -1;
                                            int iType       = -1;
                                            if (int.TryParse(terms[1], NumberStyles.HexNumber, nfi, out iID))
                                            {
                                                if (int.TryParse(terms[2], NumberStyles.HexNumber, nfi, out iModuleAddr))
                                                {
                                                    if (int.TryParse(terms[3], NumberStyles.HexNumber, nfi, out iOutput))
                                                    {
                                                        if (int.TryParse(terms[4], NumberStyles.HexNumber, nfi, out iType))
                                                        {
                                                            if (!Sensors.ContainsKey(iID))
                                                            {
                                                                Sensors.Add(iID, new ConfSensor()
                                                                {
                                                                    ID = iID, ModuleID = iModuleAddr, IOPort = iOutput, Type = iType, Description = terms[5]
                                                                });
                                                            }
                                                            else
                                                            {
                                                                bReturn = false;
                                                            }
                                                        }
                                                        else
                                                        {
                                                            bReturn = false;
                                                        }
                                                    }
                                                    else
                                                    {
                                                        bReturn = false;
                                                    }
                                                }
                                                else
                                                {
                                                    bReturn = false;
                                                }
                                            }
                                            else
                                            {
                                                bReturn = false;
                                            }
                                        }
                                        else
                                        {
                                            bReturn = false;
                                        }
                                    }
                                    else if (terms[0] == "MOTION")
                                    {
                                        bool bInMotion = true;
                                        while (!sr.EndOfStream && bInMotion && bReturn)
                                        {
                                            var motionLine = sr.ReadLine().Trim();
                                            iLine++;
                                            if (line.Length > 0 && line[0] != '#')
                                            {
                                                var motionTerms = line.Split(' ');
                                                if (motionTerms.Length > 0)
                                                {
                                                    if (motionTerms[0] == "ENDMOTION")
                                                    {
                                                        bInMotion = false;
                                                    }
                                                }
                                            }
                                        }
                                    }

                                    if (!bReturn)
                                    {
                                        Log.LogText(string.Format("Configuration error: syntax error at line {0} '{1}'", iLine, line));
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        bReturn = false;
                    }

                    sr.Close();
                }
            }
            else
            {
                Log.LogText("No configuration file found.", LogLevel.Information);
            }

            return(bReturn);
        }
 public RelayManager(Relays relays)
 {
     this.relays = relays;
 }
Ejemplo n.º 16
0
        private static void GetRelaysListWorker(object sender, WaitWindowEventArgs e)
        {
            var result = Relays.GetServerRelays();

            e.Result = result;
        }
Ejemplo n.º 17
0
 /// <summary>
 /// Costruttore
 /// </summary>
 /// <param name="res">Nome del relè</param>
 public Relay(Relays res)
     : base((Cpu.Pin)res, false)
 {
 }
Ejemplo n.º 18
0
 /// <summary>
 /// Solicita ao dispositivo o estado atual de um Relé
 /// </summary>
 /// <param name="relay">Relé</param>
 public void RequestRelayState(Relays relay)
 {
     byte[] package = new byte[] { (byte)(0x5F & (byte)relay), 0xFF };
     serialPort.Write(package, 0, 2);
 }
Ejemplo n.º 19
0
 public IEnumerable <PowerRelay> GetRelays()
 {
     return(Relays.ToList());
 }