def email_check_task(name): #check e-mail for messages while(1): print 'Checking email' temp, received_msg, unread_msgs = checkMessages(incoming_server,user,password,imei) if received_msg: #TODO - post to twitter print "Posting to twitter:",temp # Consumer keys and access tokens, used for OAuth consumer_key = 'ow2VQFG8I1Gw0fO6H0PbBA' consumer_secret = 'RPkMTwdVwCSndYFCd3AkR4PUnyCV6LM6KGVV35L4M4' access_token = '1885051094-ZJvhvacadiWU5envVeC1TvVwHrkoLXw6XanrjxI' access_token_secret = 'Qgze9IQFPjhtkqBLUFyUv8Nc7iVAfMIT94Qq0HtYWp0' # OAuth process, using the keys and tokens auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_token, access_token_secret) # Creation of the actual interface, using authentication api = tweepy.API(auth) # Sample method, used to update a status api.update_status(strftime("%a, %d %b %Y %X +0000 - ", gmtime())+temp) time.sleep(1.0)
def email_check_task(name): #check e-mail for messages while(1): #print 'Checking email' msg,subject,received_msg,unread_msgs = checkMessages(incoming_server,user,password) if received_msg: print "Received Message", msg,"\r" parse_incoming(msg) time.sleep(1.0)
def sbdix(): global mo_set global momsn global mtmsn global ser global incoming_server global user global password global imei global mt_buffer has_incoming_msg = False received_msg = 0 received_msg_size = 0 unread_msgs = 0 time.sleep(AVERAGE_SBDIX_DELAY) success = True#(bool(random.getrandbits(1))) if success: #use e-mail interface if specified if email_enabled: #send e-mail if outgoing data is present if mo_set and not mo_buffer == "": if email_enabled: send_mo_email() mo_set = False momsn += 1 #check e-mail for messages temp, received_msg, unread_msgs = checkMessages(incoming_server,user,password,imei) if received_msg: #mtmsn += 1 received_msg_size = len(temp) mt_buffer = temp else: received_msg_size = 0 #TODO: generate result output if success: rpt = 0 else: rpt = 18 #TODO: add more sophisticated behavior for error msgs return_string = "\r\n+SBDIX: %d, %d, %d, %d, %d, %d\r\n" % (rpt,momsn,received_msg,mtmsn,received_msg_size,unread_msgs) #+SBDIX:<MO status>,<MOMSN>,<MT status>,<MTMSN>,<MT length>,<MT queued> print "Sent:",return_string ser.write(return_string) send_ok() mo_set = False if received_msg: mtmsn += 1
def email_check_task(name, api): # check e-mail for messages while 1: print "Checking email" temp, received_msg, unread_msgs = checkMessages(incoming_server, user, password, imei) if received_msg: # TODO - post to twitter print "Posting to twitter:", temp # OAuth process, using the keys and tokens auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_token, access_token_secret) # Creation of the actual interface, using authentication api = tweepy.API(auth) # Sample method, used to update a status api.update_status(strftime("%a, %d %b %Y %X +0000 - ", gmtime()) + temp) time.sleep(1.0)
def sbdix(): global mo_set global momsn global mtmsn global ser global incoming_server global user global password global imei global mt_buffer global mo_ip global mo_port global mt_set has_incoming_msg = False received_msg = 0 received_msg_size = 0 unread_msgs = 0 time.sleep(AVERAGE_SBDIX_DELAY) success = True #(bool(random.getrandbits(1))) if success: #use e-mail interface if specified if email_enabled: #send e-mail if outgoing data is present if mo_set and not mo_buffer == b'': if email_enabled: send_mo_email() mo_set = False momsn += 1 #check e-mail for messages temp, received_msg, unread_msgs = checkMessages( incoming_server, user, password, imei) if received_msg: #mtmsn += 1 received_msg_size = len(temp) mt_buffer = temp mt_set = True else: received_msg_size = 0 elif ip_enabled: if mo_set and not mo_buffer == "": s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) momsn += 1 try: s.connect((mo_ip, mo_port)) s.send( assemble_mo_directip_packet(imei, momsn, mtmsn, mo_buffer)) s.close() except socket.error as msg: print("Failed to open {}:{}".format(mo_ip, mo_port)) s.close() mo_set = False if len(mt_messages) is not 0: mtmsn += 1 mt_set = True mt_buffer = mt_messages.popleft() unread_msgs = len(mt_messages) received_msg = mt_set received_msg_size = len(mt_buffer) #TODO: generate result output if success: rpt = 0 else: rpt = 18 #TODO: add more sophisticated behavior for error msgs return_string = "\r\n+SBDIX: %d, %d, %d, %d, %d, %d\r\n" % ( rpt, momsn, received_msg, mtmsn, received_msg_size, unread_msgs) #+SBDIX:<MO status>,<MOMSN>,<MT status>,<MTMSN>,<MT length>,<MT queued> print("Sent:", return_string) ser.write(return_string.encode('utf-8')) send_ok() mo_set = False if received_msg: mtmsn += 1
def email_check_task(name,api): global database_name try: database = sqlite3.connect(database_name) except: print "Could not connect with database!" sys.exit() #check e-mail for messages while(1): #print 'Checking email' msg,subject,received_msg,unread_msgs = checkMessages(incoming_server,user,password) if received_msg: #print "Data: ",msg,"Subject: ",subject if "From Unit:" in subject: #get fcu name by imei try: imei = int(subject.split("t: ")[1]) print imei cursor = database.cursor() cursor.execute("SELECT name FROM fcu_list WHERE imei=%ld" % imei) o = cursor.fetchone() fcu_name = str(o[0]) except: print "Error: IMEI not in database. fcu_term may not handle this properly" fcu_name = str(imei) #check for valid payload if not len(msg) == PAYLOAD_LENGTH: print "Message length not correct. Spec says 8 bytes! Msg is:",msg continue #get command mneumonic cmd = msg[0:3] #caps on cmd = cmd.upper() if(cmd[0] == 'C'): print "Loop back cmd %s" % cmd continue #get 5 chars of paload args = msg[3:] #call function my mneuomnic possibles = globals().copy() possibles.update(locals()) method = possibles.get(cmd) if not method: print("Rx Method %s not implemented" % cmd) else: method(fcu_name,args) #post to twitter time.sleep(1.0)