Exemplo n.º 1
0
            public string ToInvariantString(int scale)
            {
                if (IsZero)
                {
                    return("0");
                }

                string result;

                if (Exp >= 0)
                {
                    result = Sig.ToString("D", CultureInfo.InvariantCulture);

                    // *10^E
                    result = result.PadRight(result.Length + Exp, '0');
                }
                else // if (Exp < 0)
                {
                    var digits = -Exp;

                    //if (digits < 100)
                    //{
                    //    result = Sig.ToString("D" + digits, CultureInfo.InvariantCulture);
                    //}
                    //else
                    {
                        result = Sig.ToString("D", CultureInfo.InvariantCulture);
                        result = result.PadLeft(digits, '0');
                    }

                    var dot = result.Length + Exp;
                    if (dot == 0)
                    {
                        result = "0." + result.PadLeft(-Exp, '0');
                    }
                    else
                    {
                        result = result.Substring(0, dot) + "." + result.Substring(dot);
                    }

                    // TODO: scale
                    // TODO: trim zeros
                }

                return(result);
            }
        public void EICSignalHandler(BasicTriList currentDevice, SigEventArgs args)
        {
            CrestronConsole.PrintLine("[+] Signal Received : {0}", currentDevice.ToString());

            Sig signal = args.Sig;

            switch (signal.Type)
            {
            // Digital
            case (eSigType.Bool):
                CrestronConsole.PrintLine("[+]   Digital: {0}", signal.ToString());

                // Occupancy Detected Signal
                if (signal.Number == (uint)eSignalDigitalID.Occupancy_Detected)
                {
                    CrestronConsole.PrintLine("[+]   Occupancy Detected: {0}", signal.BoolValue);

                    if (signal.BoolValue)
                    {
                        // Start receiving occupancy information. New room object to store info.
                        _room = new Room();
                        _room.setOccupied();
                    }
                    else
                    {
                        // Done receiving occupancy information. Store the room state
                        property.updateRoom(_room);
                        TxPropertyStatus(property);
                    }
                }

                // Vacancy Detected Signal
                if (signal.Number == (uint)eSignalDigitalID.Vacancy_Detected)
                {
                    CrestronConsole.PrintLine("[+]   Vacancy Detected: {0}", signal.BoolValue);

                    if (signal.BoolValue)
                    {
                        // Start receiving vacancy information. New room object to store info.
                        _room = new Room();
                        _room.setVacant();
                    }
                    else
                    {
                        // Done receiving vacancy information. Store the room state
                        property.updateRoom(_room);
                    }
                }

                break;

            // Analog
            case (eSigType.UShort):
                CrestronConsole.PrintLine("[+]   Analog: {0}", signal.ToString());

                break;

            // Serial
            case (eSigType.String):
                CrestronConsole.PrintLine("[+]   Serial: {0}", signal.ToString());

                // Motion_Location$ Signal
                if (signal.Number == (uint)eSignalSerialID.Motion_Location)
                {
                    CrestronConsole.PrintLine("[+]   Motion Location: {0}", signal.StringValue);

                    _room.Name = signal.StringValue;
                }

                break;

            default:
                CrestronConsole.PrintLine("[+]   Unknown: {0}", signal.ToString());

                break;
            }
        }