#!/usr/bin/python3
# LAVA Mobility Signal Meter - Copyright 2021 LAVA Controls - Stephen Loeckle

import inspect
from lavamobilitylib import getacmfsn, getacmiccid, getacmimei, getacmmodel, getacmmanuf, getacmport, getacmsignal
import serial
import signal
import socket
import sys
import traceback

port = '/dev/ttyACM2'
#port = None

def main():
    gotthefunc = inspect.stack()[0][3]
    msg = ('Entered {} function '.format(gotthefunc))
    print(msg)
    
    print('Seearching for usable acm port')

    serialport = getacmport(port)
    
    if serialport:
        if 'acm' not in serialport.lower():
            print('Serial port not found. Result: {}'.format(serialport))
            sys.exit()
        else:
        
            print('Found acm port: {}'.format(serialport))
    
            try:
                s = serial.Serial(serialport, baudrate=9600, parity=serial.PARITY_NONE, timeout=1, rtscts=1)
            except:
                err = traceback.format_exc()
                msg = ('Unexpected Error Detail: {0}'.format(err))
                print(gotthefunc, msg, 10)
                pass
            else:
                msg = ('Connected to {}'.format(serialport))
                print(msg)

            print(s.is_open)
            print('Getting modem data:')
            
            print(s.is_open)
            acmmanuf = getacmmanuf(s)
            print(s.is_open)
            acmmodel = getacmmodel(s)
            print(s.is_open)
            print('     {} {}'.format(acmmanuf, acmmodel))
            acmfsn = getacmfsn(s)
            print(s.is_open)
            print('     Serial number: {}'.format(acmfsn))
            acmimei = getacmimei(s)
            print(s.is_open)
            print('     IMEI number: {}'.format(acmimei))
            acmiccid = getacmiccid(s)
            print(s.is_open)
            print('     ICCID number: {}'.format(acmiccid))
            acmsignal = getacmsignal(s)
            print(s.is_open)
            print('     Signal strength: -{} {}'.format(acmsignal[0], acmsignal[2]))

    
    
    
    
    
    



                    
    
                    
                    




if __name__ == '__main__':
    main()
