from librpiplc import rpiplc
from lorawan import LoRaWAN

def main():
    rpiplc.init("RPIPLC_V6", "RPIPLC_21")
    rpiplc.pin_mode("I0.12", rpiplc.INPUT)
    debug = True                  # print debug information of current command in REPL
    serial_port = "/dev/ttySC0"   # indicate UART port LoRa module is connected to
    timeout = 7500                # timeout of serial and lora reception
    devaddr="260BD702"
    appskey="F2ADBA2C1DC4CFC986B8C9208338EDFD"
    nwkskey="85888D88A17F1A5DDE0F1DD39559B0A9"
    loraWAN = LoRaWAN(serial_port, timeout, timeout, debug)
    print("------------- LoRaWAN object created")
    loraWAN.config_abp(nwkskey, appskey, devaddr)
    print("------------- LoRaWAN OTAA done")
    loraWAN.join()
    while True:
        read_value = rpiplc.analog_read("I0.12")
        read_value_string=str(read_value)
        print("The I0.12 is reading: {}".format(read_value_string))
        loraWAN.send_uplink(''.join(f'{ord(c):02X}' for c in read_value_string))
        rpiplc.delay(5000)

if __name__ == "__main__":
      main()
