Advertisement
Guest User

Untitled

a guest
Dec 27th, 2014
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. #!/usr/bin/env python
  2. import io
  3. import serial
  4. import re
  5. import sys
  6.  
  7. class VzwModem:
  8. def __init__(self, sport):
  9. self.current_message = ''
  10. self.ser = serial.Serial(sport, 115200)
  11.  
  12. def wait_for(self, message, timeout = None):
  13. self.ser.timeout = timeout
  14. self.current_message = ''
  15. while not self.current_message.endswith(message):
  16. c = self.ser.read()
  17. if c != '':
  18. self.current_message += c
  19. else:
  20. print "Timeout waiting for " + message
  21. return False
  22. self.ser.flushInput()
  23. return True
  24.  
  25. def send(self, message):
  26. self.ser.write(message + "\r")
  27.  
  28. def connect(self):
  29. self.send("AT$NWQMICONNECT=,,,,,,vzwinternet")
  30. self.wait_for("OK", 5)
  31.  
  32. def disconnect(self):
  33. self.send("AT$NWQMIDISCONNECT")
  34. self.wait_for("OK", 2)
  35.  
  36. def connected(self):
  37. self.send("AT$NWQMISTATUS")
  38. self.ser.timeout = 2
  39. stat = self.ser.readlines()[2]
  40. return re.search(r": ([A-Z]+)\r\n", stat).group(1) == "CONNECTED"
  41.  
  42. if __name__ == "__main__":
  43. v = VzwModem('/dev/modem')
  44. if sys.argv[1] == "up":
  45. if not v.connected():
  46. v.connect()
  47. elif sys.argv[1] == "down":
  48. if v.connected():
  49. v.disconnect()
  50. elif sys.argv[1] == "status":
  51. print ("Connected" if v.connected() else "Disconnected")
  52. else:
  53. print "Usage: " + __file__ + " [ up | down | status ]"
  54. sys.exit(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement