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; } }