renix1

Ports serial

Aug 13th, 2016
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.70 KB | None | 0 0
  1. # coding: utf-8
  2. import sys, glob, serial
  3. from os import geteuid, system
  4.  
  5. """ Use as module and not as sript, pls, remember as MODULE! e.g: from ports import serial_ports """
  6.  
  7. euid = geteuid()
  8.  
  9. def serial_ports():
  10.     if sys.platform.startswith('win'):
  11.         ports = ['COM%s' % (i+1) for i in range(256)]
  12.     elif sys.platform.startswith('linux') or sys.platform.startswith('cygwin'):
  13.         ports = glob.glob('/dev/tty[A-Za-z]*')
  14.     elif sys.platform.startswith('darwin'):
  15.         ports = glob.glob('/dev/tty.*')
  16.     else:
  17.         raise EnvironmentError('\033[1;31mPlataformada não suportada\n')
  18.     result = []
  19.     for port in ports:
  20.         try:
  21.             s = serial.Serial(port)
  22.             s.close()
  23.             result.append(port)
  24.         except (OSError, serial.SerialException):
  25.             pass
  26.     return result
  27.    
  28. if __name__ == '__main__':
  29.     if sys.platform.startswith('linux') or sys.platform.startswith('cygwin'):
  30.         if euid == 0:
  31.             print("\033[1;32mExecutando...\n")
  32.             ports_available = serial_ports()
  33.             print("Portas disponíveis: {}" .format(ports_available))
  34.         else:
  35.             print("\033[1;31mErro, abra-me como root!\n")
  36.             enter_root = input("Se quiser entrar como root agora digite (S/n): ")
  37.             enter_root = enter_root.lower()
  38.             if enter_root == 's':
  39.                 system('sudo -s')
  40.                 ports_available = serial_ports()
  41.                 print("Portas disponíveis: {}" .format(ports_available))
  42.             else:
  43.                 print("Tudo bem. Estamos finalizando o programa\n")
  44.                 quit()
  45.     else:
  46.         print("\033[1;31mAinda não testado em outros sistemas...\n")
Advertisement
Add Comment
Please, Sign In to add comment