kadytoast

rpimain

Aug 23rd, 2021 (edited)
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.67 KB | None | 0 0
  1. import socket as sock
  2. import sys
  3. import time
  4.  
  5. buffer = 8192
  6.  
  7. packetdelim = "&%&%("
  8. flag_internaldelim = "%^&*)"
  9. datadelim = "!&^%!"
  10. dictflag = "fdict"
  11. picflag = "fpic"
  12. newconflag = "fcon"
  13. commflag = "fcommd"
  14.  
  15. class RpiCamMain():
  16.     def __init__(self):
  17.         self.soc = None
  18.         self.ifname = "wlan0"
  19.         self.macid = self.getmacid()
  20.         self.peritype = "cam!@#"
  21.        
  22.         self.host = "192.168.5.185"
  23.         self.port = 6280
  24.  
  25.     def joinpacket(self, flag, data):
  26.         return f"{flag}{packetdelim}{data}"
  27.  
  28.     def splitpacket(self, msg):
  29.         msg = msg.split(packetdelim)
  30.         flag, data = msg[0], msg[1]
  31.         return flag, data
  32.    
  33.     def getmacid(self):
  34.         try:
  35.             mac = open(f"/sys/class/net/{self.ifname}/address").readline()
  36.             mac = mac.split("\n")[0]
  37.         except:
  38.             print("unable to find mac addr")
  39.             sys.exit()
  40.         return mac
  41.  
  42.     def startup(self):
  43.         while True:
  44.             with sock.socket(sock.AF_INET, sock.SOCK_STREAM) as self.soc:
  45.                 self.soc.setsockopt(sock.SOL_SOCKET, sock.SO_REUSEADDR, 1)
  46.                 self.mainloop()
  47.  
  48.     def mainloop(self):
  49.         try:
  50.             self.soc.connect((self.host, self.port))
  51.  
  52.             data = f"{self.peritype}{datadelim}{self.macid}"
  53.             msg = self.joinpacket(newconflag, data).encode("utf-8")
  54.             self.soc.send(msg)
  55.             print(msg)
  56.             time.sleep(600)
  57.         except Exception as e:
  58.             time.sleep(1)
  59.             print(e, "in connect try")
  60.             return
  61.  
  62.  
  63. if __name__ == "__main__":
  64.     camclass = RpiCamMain()
  65.    
  66.     camclass.startup()
Add Comment
Please, Sign In to add comment