import FSM import utils as u import menus as m import os #import socket #==================================== State = type("State", (object,), {}) #==================================== class State(object): def __init__(self, FSM): self.FSM = FSM def Enter(self): pass def Execute(self): pass def Exit(self): pass class Ping(State): def __init__(self,FSM): super(Ping, self).__init__(FSM) def Enter(self): o = self.FSM.owner o.header_text = "Ping" o.pub.register("beat", self) self.pinging = self.check_ping() self.draw_main(o) u.draw_header(o) o.update_display(0) super(Ping, self).Enter() def Execute(self): o = self.FSM.owner m.menu1_actions(self, o) if o.keyState[16] == 1: m.draw_menu1(o) o.update_display(0) elif o.keyState[16] == 4: u.draw_header(o) #self.draw_footer(o) self.draw_main(o) o.update_display(0) if o.keyState[0] == 1 or o.keyState[0] == 3 or o.keyState[1] == 1 or o.keyState[1] == 3 or o.keyState[2] == 1 or o.keyState[2] == 3 or o.keyState[3] == 1 or o.keyState[3] == 3: u.draw_header(o) #self.draw_footer(o) self.draw_main(o) o.update_display(0) def draw_main(self, o): o.center_block(self.pinging, o.h2, [0, 0, o.width, o.height], o.light_grey) def check_ping(self): hostname = "8.8.8.8" response = os.system("ping -c 1 " + hostname) # and then check the response... if response == 0: pingstatus = "Network Active " else: pingstatus = "Network Error " return pingstatus def ReceiveMessage(self, message): o = self.FSM.owner u.play_seq(o, message) def Exit(self): self.FSM.owner.pub.unregister("beat", self) #====================================