def sendSerial(self, str_to_send): try: self.serialC.write(str(str_to_send).encode()) print("Sent via serial: {0}".format(str_to_send)) return 1 except Exception as exc: print("Exception: {0}".format(exc)) exceptionLogger("serialCOM.py", "sendSerial", getframeinfo(currentframe()).lineno, exc) return 0
def receiveSerial(self): try: answer = self.serialC.readline() answer = answer.decode().replace('\n', '') if answer != "": print("Received via serial: {0}".format(answer)) return answer except Exception as exc: print("Exception: {0}".format(exc)) exceptionLogger("serialCOM.py", "sendSerial", getframeinfo(currentframe()).lineno, exc)
def detUptime(): # Pegando uptime uptime = "Error" try: uptime = syscall("uptime -p")[0].replace('\n', '') return str(uptime) except Exception as exc: uptime = "Error" print("Erro na coleta da uptime - Exception = %s" % (str(exc))) exceptionLogger("HWinfo.py", "uptime", getframeinfo(currentframe()).lineno, exc) return "-1"
def serviceStatus(): try: try: arp_block_status = syscall("""systemctl | grep arp_block | awk '{print $3}'""")[0] arp_block_status = {"arp_block": str(arp_block_status)} except Exception as exc: arp_block_status = {"arp_block": str("stopped")} try: nginx_status = syscall("""systemctl | grep nginx | awk '{print $3}'""")[0] nginx_status = {"nginx": str(nginx_status)} except Exception as exc: nginx_status = {"nginx": str("stopped")} try: gunicorn_status = syscall("""systemctl | grep gunicorn | awk '{print $3}'""")[0] gunicorn_status = {"gunicorn": str(gunicorn_status)} except Exception as exc: gunicorn_status = {"gunicorn": str("stopped")} try: hostapd_status = syscall("""systemctl | grep hostapd | awk '{print $3}'""")[0] hostapd_status = {"hostapd": str(hostapd_status)} except Exception as exc: hostapd_status = {"hostapd": str("stopped")} try: dnsmasq_status = syscall("""systemctl | grep dnsmasq | awk '{print $3}'""")[0] dnsmasq_status = {"dnsmasq": str(dnsmasq_status)} except Exception as exc: dnsmasq_status = {"dnsmasq": str("stopped")} try: flaskAPIBridge_status = syscall("""systemctl | grep flaskAPIBridge | awk '{print $3}'""")[0] flaskAPIBridge_status = {"flaskAPIBridge": str(flaskAPIBridge_status)} except Exception as exc: flaskAPIBridge_status = {"flaskAPIBridge": str("stopped")} response = [arp_block_status, nginx_status, gunicorn_status, hostapd_status, dnsmasq_status, flaskAPIBridge_status] return response except Exception as exc: exceptionLogger("General_Info.py", "serviceStatus", getframeinfo(currentframe()).lineno, exc) arp_block_status = {"arp_block": str("had exception")} nginx_status = {"nginx": str("had exception")} gunicorn_status = {"gunicorn": str("had exception")} hostapd_status = {"hostapd": str("had exception")} dnsmasq_status = {"dnsmasq": str("had exception")} flaskAPIBridge_status = {"flaskAPIBridge": str("had exception")} response = [arp_block_status, nginx_status, gunicorn_status, hostapd_status, dnsmasq_status, flaskAPIBridge_status] return response
def detInterface(): # Pegando interface wlan interface = "Error" try: interface = syscall( """iw dev | awk '$1=="Interface"{print $2}'""")[0].replace( '\n', '') return str(interface) except Exception as exc: interface = "None" print("Erro na coleta da interface - Exception = %s" % (str(exc))) exceptionLogger("HWinfo.py", "interface", getframeinfo(currentframe()).lineno, exc) return interface
def detMemory(): # Pegando memory mem = "Error" try: mem = syscall( "free | grep Mem | awk '{usage=($3/$2)*100} END {print usage \"%\"}'" )[0].replace('\n', '') return str(mem) except Exception as exc: mem = "Error" print("Erro na coleta da memory - Exception = %s" % (str(exc))) exceptionLogger("HWinfo.py", "mem", getframeinfo(currentframe()).lineno, exc) return "-1"
def detCPU(): # Pegando CPU% cpu = "Error" try: cpu = syscall( "grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage \"%\"}'" )[0].replace('\n', '') return str(cpu) except Exception as exc: cpu = "Error" print("Erro na coleta da cpu - Exception = %s" % (str(exc))) exceptionLogger("HWinfo.py", "detCPU", getframeinfo(currentframe()).lineno, exc) return "-1"
def detMAC(): # Pegando mac mac = "Error" try: mac = syscall("cat /sys/class/net/eth0/address")[0].replace( '\n', '') return str(mac) except Exception as exc: mac = "None" print("Erro na coleta do mac - Exception = %s" % (str(exc))) exceptionLogger("HWinfo.py", "mac", getframeinfo(currentframe()).lineno, exc) return mac
def detVersion(): # Pegando version version = "Error" try: version_file = open('/root/info/version', 'r') version = version_file.read() version_file.close() version = version.replace("\n", "") return str(version) except Exception as exc: version = "Error" print("Erro na coleta de version - Exception = %s" % (str(exc))) exceptionLogger("HWinfo.py", "detStatusHotspot", getframeinfo(currentframe()).lineno, exc) return "0"
def detStatusHotspot(): # Pegando status status = "Error" try: status_file = open('/root/info/status', 'r') status = status_file.read() status_file.close() if status == "\n" or status == "": status = 0 status = status.replace("\n", "") return str(status) except Exception as exc: status = "Error" print("Erro na coleta de status - Exception = %s" % (str(exc))) exceptionLogger("HWinfo.py", "detStatusHotspot", getframeinfo(currentframe()).lineno, exc) return "0"
def detOnlineNumber(): # Pegando online Number online = "Error" try: online_file = open('/root/info/online', 'r') online = online_file.read() online_file.close() if online == "\n" or online == "": online = 0 online = online.replace("\n", "") return str(online) except Exception as exc: online = "Error" print("Erro na coleta de onlines - Exception = %s" % (str(exc))) exceptionLogger("HWinfo.py", "OnlineNumber", getframeinfo(currentframe()).lineno, exc) return "0"
def detTemperature(): # Pegando temperatura temperature = "Error" try: temperature = syscall( "cat /sys/devices/virtual/thermal/thermal_zone0/temp" )[0].replace('\n', '') if syscall( """uname -a | awk '{print $3}'""")[0] == '4.14.18-sunxi': temperature = int(temperature) / 1000 else: temperature = int(temperature) return str(temperature) except Exception as exc: temperature = "Error" print("Erro na coleta da temperatura - Exception = %s" % (str(exc))) exceptionLogger("HWinfo.py", "detTemperature", getframeinfo(currentframe()).lineno, exc) return "-1"
def networking(): try: try: interface = syscall( """iw dev | awk '$1=="Interface"{print $2}'""")[0].replace( '\n', '') interface = {"interface": str(interface)} except Exception as exc: interface = {"interface": str("error")} try: date = syscall("date +\"%d/%m/%Y %H:%M:%S\"")[0].replace( "\n", "") date = {"datetime": str(date)} except Exception as exc: date = {"datetime": str("error")} try: wlan = str( syscall( """lsusb | grep '003 Device 002' | awk '{print $7}'""") [0]).replace("\n", "") if wlan == 'Linux' or wlan == '': wlan = "None" else: wlan = {"antena": wlan} except Exception as exc: wlan = {"antena": str("None")} try: public_ip_file = open('/root/info/public_ip', 'r') public_ip = public_ip_file.read().replace("\n", "") public_ip_file.close() if public_ip == "\n" or public_ip == "": public_ip = "error" public_ip = {'public_ip': str(public_ip)} except Exception as exc: public_ip = {'public_ip': str("error")} try: # ifstat wlan tx rx speed_file = open('/root/info/download', 'r') download_speed = str(speed_file.read()) speed_file.close() try: if download_speed.split(' ')[0] == "Download:": upload_speed = download_speed.split("\n")[1].replace( "Upload: ", "") upload_speed = {'upload_speed': upload_speed} download_speed = download_speed.split("\n")[0].replace( "Download: ", "") download_speed = {'download_speed': download_speed} else: download_speed = {"download_speed": str("N/A")} upload_speed = {"upload_speed": str("N/A")} except Exception as exc: print(exc) download_speed = {"download_speed": str("N/A")} upload_speed = {"upload_speed": str("N/A")} except Exception as exc: print(exc) download_speed = {"download_speed": str("N/A")} upload_speed = {"upload_speed": str("N/A")} try: ping_uol = str( syscall( """ping -c 1 www.uol.com.br | head -2 | tail -1 | awk '{print $8 $9}' | sed 's/time//g' | sed 's/=//g'""")[0]).replace("\n", "") ping_uol = {"ping_uol.com.br": ping_uol} except Exception as exc: ping_uol = {"ping_uol.com.br": str("fail")} try: ping_connecty = str( syscall( """ping -c 1 18.228.62.35 | head -2 | tail -1 | awk '{print $7 $8}' | sed 's/time//g' | sed 's/=//g'""")[0]).replace("\n", "") ping_connecty = {"ping_api.connecty": ping_connecty} except Exception as exc: ping_connecty = {"ping_api.connecty": str("fail")} response = [ date, wlan, interface, public_ip, download_speed, upload_speed, ping_uol, ping_connecty ] return response except Exception as exc: exceptionLogger("GeneralNetworking.py", "serviceStatus", getframeinfo(currentframe()).lineno, exc) date = {"datetime": str("had exception")} wlan = {"antena": str("had exception")} interface = {"interface": str("had exception")} public_ip = {"public_ip": str("had exception")} upload_speed = {'upload_speed': str("had exception")} download_speed = {'download_speed': str("had exception")} ping_uol = {"ping_uol.com.br": str("had exception")} ping_connecty = {"ping_api.connecty": str("had exception")} response = [ date, wlan, interface, public_ip, download_speed, upload_speed, ping_uol, ping_connecty ] return response
from inspect import currentframe, getframeinfo import threading from helper import exceptionLogger from helper import syscall from serialCOM import serialControler from flaskAPIBridge import WSHandler if __name__ == "__main__": try: #Cria Objeto da classe serial serialObj = serialControler("/dev/ttyUSB0") threadSerialManager = threading.Thread(target=serialObj.serialManager, args=()) threadSerialManager.start() #readThread = threading.Thread(target=serialObj.reader, args=(serialObj,)) #readThread.start() #serialObj.whileSender() #Estabelece conexao websocket ws = WSHandler() ws.WSConnCreator threadGerenciaWS = threading.Thread(target=ws.WSConnManager, args=()) threadGerenciaWS.start() thread_internalHwDataStreamer = threading.Thread( target=ws.socketReceiver, args=serialObj) thread_internalHwDataStreamer.start() except Exception as exc: print("main error, exception: {0}".format(exc)) exceptionLogger("flaskAPIBridge.py", "main", getframeinfo(currentframe()).lineno, exc)