public Result Class(LoRaClass loRaClass) { string command; string response; switch (loRaClass) { case LoRaClass.A: command = "AT+CLASS=A"; response = "+CLASS: A"; break; case LoRaClass.B: command = "AT+CLASS=B"; response = "+CLASS: B"; break; case LoRaClass.C: command = "AT+CLASS=C"; response = "+CLASS: C"; break; default: throw new ArgumentException($"LoRa class value {loRaClass} invalid", "loRaClass"); } // Set the class #if DIAGNOSTICS Debug.WriteLine($" {DateTime.UtcNow:hh:mm:ss} AT+CLASS:{loRaClass}"); #endif Result result = SendCommand(response, command, CommandTimeoutDefault); if (result != Result.Success) { #if DIAGNOSTICS Debug.WriteLine($" {DateTime.UtcNow:hh:mm:ss} AT+CLASS failed {result}"); #endif return(result); } return(Result.Success); }
public Result Class(LoRaClass loRaClass) { string command; switch (loRaClass) { case LoRaClass.A: command = "at+set_config=lora:class:0"; break; // Currently ClassB unsupported //case LoRaClass.B; // command = "at+set_config=lora:class:1"; // break; case LoRaClass.C: command = "at+set_config=lora:class:2"; break; default: throw new ArgumentException($"LoRa class value {loRaClass} invalid", "loRaClass"); } // Set the class #if DIAGNOSTICS Debug.WriteLine($" {DateTime.UtcNow:hh:mm:ss} lora:class:{loRaClass}"); #endif Result result = SendCommand("OK", command, CommandTimeoutDefault); if (result != Result.Success) { #if DIAGNOSTICS Debug.WriteLine($" {DateTime.UtcNow:hh:mm:ss} lora:class failed {result}"); #endif return(result); } return(Result.Success); }