Added ability to configure RNode display intensity

This commit is contained in:
Mark Qvist 2023-05-03 14:26:47 +02:00
parent e386a5d08b
commit d31cf6e297

View File

@ -79,6 +79,7 @@ class KISS():
CMD_STAT_SNR = 0x24 CMD_STAT_SNR = 0x24
CMD_BLINK = 0x30 CMD_BLINK = 0x30
CMD_RANDOM = 0x40 CMD_RANDOM = 0x40
CMD_DISP_INT = 0x45
CMD_BT_CTRL = 0x46 CMD_BT_CTRL = 0x46
CMD_BT_PIN = 0x62 CMD_BT_PIN = 0x62
CMD_BOARD = 0x47 CMD_BOARD = 0x47
@ -558,6 +559,13 @@ class RNode():
if written != len(kiss_command): if written != len(kiss_command):
raise IOError("An IO error occurred while sending host left command to device") raise IOError("An IO error occurred while sending host left command to device")
def set_display_intensity(self, intensity):
data = bytes([intensity & 0xFF])
kiss_command = bytes([KISS.FEND])+bytes([KISS.CMD_DISP_INT])+data+bytes([KISS.FEND])
written = self.serial.write(kiss_command)
if written != len(kiss_command):
raise IOError("An IO error occurred while sending bluetooth enable command to device")
def enable_bluetooth(self): def enable_bluetooth(self):
kiss_command = bytes([KISS.FEND, KISS.CMD_BT_CTRL, 0x01, KISS.FEND]) kiss_command = bytes([KISS.FEND, KISS.CMD_BT_CTRL, 0x01, KISS.FEND])
written = self.serial.write(kiss_command) written = self.serial.write(kiss_command)
@ -1092,6 +1100,8 @@ def main():
parser.add_argument("-B", "--bluetooth-off", action="store_true", help="Turn device bluetooth off") parser.add_argument("-B", "--bluetooth-off", action="store_true", help="Turn device bluetooth off")
parser.add_argument("-p", "--bluetooth-pair", action="store_true", help="Put device into bluetooth pairing mode") parser.add_argument("-p", "--bluetooth-pair", action="store_true", help="Put device into bluetooth pairing mode")
parser.add_argument("-D", "--display", action="store", metavar="i", type=int, default=None, help="Set display intensity (0-255)")
parser.add_argument("--freq", action="store", metavar="Hz", type=int, default=None, help="Frequency in Hz for TNC mode") parser.add_argument("--freq", action="store", metavar="Hz", type=int, default=None, help="Frequency in Hz for TNC mode")
parser.add_argument("--bw", action="store", metavar="Hz", type=int, default=None, help="Bandwidth in Hz for TNC mode") parser.add_argument("--bw", action="store", metavar="Hz", type=int, default=None, help="Bandwidth in Hz for TNC mode")
parser.add_argument("--txp", action="store", metavar="dBm", type=int, default=None, help="TX power in dBm for TNC mode") parser.add_argument("--txp", action="store", metavar="dBm", type=int, default=None, help="TX power in dBm for TNC mode")
@ -2535,6 +2545,15 @@ def main():
RNS.log("but file could not be written to disk.") RNS.log("but file could not be written to disk.")
exit() exit()
if isinstance(args.display, int):
di = args.display
if di < 0:
di = 0
if di > 255:
di = 255
RNS.log("Setting display intensity to "+str(di))
rnode.set_display_intensity(di)
if args.bluetooth_on: if args.bluetooth_on:
RNS.log("Enabling Bluetooth...") RNS.log("Enabling Bluetooth...")
rnode.enable_bluetooth() rnode.enable_bluetooth()