Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- import io
- import serial
- import re
- import sys
- class VzwModem:
- def __init__(self, sport):
- self.current_message = ''
- self.ser = serial.Serial(sport, 115200)
- def wait_for(self, message, timeout = None):
- self.ser.timeout = timeout
- self.current_message = ''
- while not self.current_message.endswith(message):
- c = self.ser.read()
- if c != '':
- self.current_message += c
- else:
- print "Timeout waiting for " + message
- return False
- self.ser.flushInput()
- return True
- def send(self, message):
- self.ser.write(message + "\r")
- def connect(self):
- self.send("AT$NWQMICONNECT=,,,,,,vzwinternet")
- self.wait_for("OK", 5)
- def disconnect(self):
- self.send("AT$NWQMIDISCONNECT")
- self.wait_for("OK", 2)
- def connected(self):
- self.send("AT$NWQMISTATUS")
- self.ser.timeout = 2
- stat = self.ser.readlines()[2]
- return re.search(r": ([A-Z]+)\r\n", stat).group(1) == "CONNECTED"
- if __name__ == "__main__":
- v = VzwModem('/dev/modem')
- if sys.argv[1] == "up":
- if not v.connected():
- v.connect()
- elif sys.argv[1] == "down":
- if v.connected():
- v.disconnect()
- elif sys.argv[1] == "status":
- print ("Connected" if v.connected() else "Disconnected")
- else:
- print "Usage: " + __file__ + " [ up | down | status ]"
- sys.exit(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement