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 = 5000                # timeout of serial and lora reception
    appkey="2018E498A67ECB2C1834D81397DC6E49"
    appeui = "0000000000000000"
    deveui = "70B3D57ED006A075"
    loraWAN = LoRaWAN(serial_port, timeout, timeout, debug)
    print("------------- LoRaWAN object created")
    loraWAN.config_otaa(appkey, appeui, deveui)
    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()
