P
Peace
In my GUI, the user enters two values: cellNumber(Integer) and SerialNumber(String)
I have the following piece of code in my view/controller:
####################The following function is called after the user enters the cellnumber and serial number##############
def ListenForDetails(status):
cellNumber = status[0]
SerialNumber = status[1]
ModelInfo().CellList[cellNumber].receiveSerialNumber(SerialNumber)
------------------In my controller thread-----------------
class Controller(Thread):
def __init__(self):
Thread.__init__(self)
self.start()
def run(self):
global SynchronizationVariable
while SynchronizationVariable != 1:
time.sleep(0.01)
while 1:
StateChanged = False
for cells in ModelInfo().CellList:
rc = cells.PollCells()
if rc == 0:
StateChanged = True
if StateChanged:
ModelInfo().save()
time.sleep(1)
-------------------------------In my model.py script-------------------------------------
class CellInfo(): #This class encapsulates all the information present in acell
def __init__(self,cellNo):
self.SerialNo = ""
self.cellNo = cellNo
def receiveSerialNumber(self, SerialNumber):
self.SerialNo = SerialNumber
def PollCells(self):
RC = self.StateMachine[self.CurrentState](self)
return RC
...all state machine functions here...
"""Model Info below"""
class ModelInfo(): #This class creates a list of cells.
def __init__(self):
print("Setting up a list of cells to iterate on")
self.CellList = [] #List of all the cell Objects
for index in xrange(0,24):
print(self.CellList)
self.CellList.append(CellInfo(index))
def save(self):
with open("RestoreInfo.p", "wb") as f:
pickle.dump(self,f)
Model = ModelInfo() #Constructs an empty model
"""IN MAIN (In the controller script)"""
if __name__ == '__main__':
if os.path.isfile( "RestoreInfo.p" ):
with open("RestoreInfo.p", "rb") as f:
model = pickle.load( f );
else:
model = model.ModelInfo();
The serial number field always remains empty even though I enter from the GUI and the receiveSerialNumber function is called and I explicitly initialize it to the variable in the model.
I'm trying to save the state of the program so that next time I open the application it resumes from where it left off. The problem is when I restart the application, the serial number is empty. What am I doing wrong here? Whenever I get a change in state (the RC value), I pickle and save to a file (restoreinfo.p). When I restart the application, the serial number is no longer there even though I enter it. Could you please let me know what is going wrong? Thank you.
I have the following piece of code in my view/controller:
####################The following function is called after the user enters the cellnumber and serial number##############
def ListenForDetails(status):
cellNumber = status[0]
SerialNumber = status[1]
ModelInfo().CellList[cellNumber].receiveSerialNumber(SerialNumber)
------------------In my controller thread-----------------
class Controller(Thread):
def __init__(self):
Thread.__init__(self)
self.start()
def run(self):
global SynchronizationVariable
while SynchronizationVariable != 1:
time.sleep(0.01)
while 1:
StateChanged = False
for cells in ModelInfo().CellList:
rc = cells.PollCells()
if rc == 0:
StateChanged = True
if StateChanged:
ModelInfo().save()
time.sleep(1)
-------------------------------In my model.py script-------------------------------------
class CellInfo(): #This class encapsulates all the information present in acell
def __init__(self,cellNo):
self.SerialNo = ""
self.cellNo = cellNo
def receiveSerialNumber(self, SerialNumber):
self.SerialNo = SerialNumber
def PollCells(self):
RC = self.StateMachine[self.CurrentState](self)
return RC
...all state machine functions here...
"""Model Info below"""
class ModelInfo(): #This class creates a list of cells.
def __init__(self):
print("Setting up a list of cells to iterate on")
self.CellList = [] #List of all the cell Objects
for index in xrange(0,24):
print(self.CellList)
self.CellList.append(CellInfo(index))
def save(self):
with open("RestoreInfo.p", "wb") as f:
pickle.dump(self,f)
Model = ModelInfo() #Constructs an empty model
"""IN MAIN (In the controller script)"""
if __name__ == '__main__':
if os.path.isfile( "RestoreInfo.p" ):
with open("RestoreInfo.p", "rb") as f:
model = pickle.load( f );
else:
model = model.ModelInfo();
The serial number field always remains empty even though I enter from the GUI and the receiveSerialNumber function is called and I explicitly initialize it to the variable in the model.
I'm trying to save the state of the program so that next time I open the application it resumes from where it left off. The problem is when I restart the application, the serial number is empty. What am I doing wrong here? Whenever I get a change in state (the RC value), I pickle and save to a file (restoreinfo.p). When I restart the application, the serial number is no longer there even though I enter it. Could you please let me know what is going wrong? Thank you.