123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- import pyautogui as ue
- class ParsingTools():
- def macToString(self, mac_bytes):
- ''' Convert uint8 byte string to "XX:XX:XX:XX:XX"
- '''
- mac_str = ""
- for byte in mac_bytes:
- mac_str = mac_str + format(byte, '02x') + ':'
- return mac_str[:-1].format('utf-8')
- def calculateVCell(self, raw_Vcell):
- raw_Vcell = int(raw_Vcell.decode('utf-8'))
- return raw_Vcell*1.25e-3
- def calculateSOC(self, raw_SOC):
- raw_SOC = int(raw_SOC.decode('utf-8'))
- return raw_SOC.to_bytes(2, 'big')[0]
- def getIDfromTopic(self, topic):
- return topic.split('/')[1]
-
- def getFieldfromTopic(self, topic):
- return topic.split('/')[3]
- def getStr(self, byteCode):
- return byteCode.decode('utf-8')
- class FieldGenerator():
- def generateMACID(self):
- import numpy as np
- macID = np.random.randint(255, size=5)
- macStr = ""
- for val in macID:
- macStr = macStr + format(val, 'x') + ":"
- return macStr[:-1]
- def generateRSSI(self):
- import numpy as np
- rssi = np.random.randint(80)
- rssiStr = "RSSI: -" + str(rssi) + "dBm"
- return rssiStr
- def generateSOC(self):
- import numpy as np
- soc = np.random.randint(100)
- socStr = "Battery: " + str(soc) + "%"
- return socStr
- def generateStatus(self):
- import numpy as np
- hr = np.random.randint(12) + 1
- min = np.random.randint(60)
- ampm = np.random.randint(1)
- statusStr = "Last Update: " + str(hr) + ":" + str(min)
- return statusStr
- class Switch():
- def __init__(self):
- self.__key = "1"
- self.__latch = False
- self.__latchState = 0
- self.__timer = 0
- self.__release = True
- self.__interval = 0.0 # milliseconds
- self.active = True
- def getKey(self):
- return self.__key
-
- def getActive(self):
- return self.active
- def setConfig(self, key, latch=False, interval=0.0, release=False, enable=True):
- # release old key if currently held down
- self.releaseKey()
- self.__latchState = 0
- self.active = enable
- self.__key = key
- self.__latch = latch
- self.__interval = interval
- self.__release = release
-
- def activate(self):
- self.active = True
- def deactivate(self):
- self.active = False
-
- def pressKey(self):
- if self.__release:
- ue.keyDown(self.__key)
- else:
- ue.typewrite(self.__key, interval=self.__interval)
-
- def releaseKey(self):
- if self.__release:
- ue.keyUp(self.__key)
-
- if __name__ == '__main__':
- print("I never developed self-test, but if I did they would go here.")
- pt = ParsingTools()
- print("Testing macToString")
- print(pt.macToString(b'023430'))
- print("Testing getModuleIDfromTopic")
- print(pt.getIDfromTopic("encoder/12:23:32:32:32/health/ota"))
- print("Testing getFieldfromTopic")
- print(pt.getFieldfromTopic("encoder/12:23:32:32:32/health/ota"))
|