what could be the problem here? please help me in
debugging the program. attached is the program code.
i think the problem lies here, since when i added this
part, when i click the start button, the program hangs
and does not respond, but still creates the text files
created by clicking the start button.
the program is a GUI that controls an external
hardware. i am using BOA 0.3.1 w/ wxPython 2.4.2.4.
please help!!!
def OnStartButton(self, event):
self.flag = 1
output_file =
open(os.path.join(self.SaveFolder.GetValue(),'info.txt'),
'w')
output_file.write('Date:\t\t\t')
output_file.write(self.maskedDate.GetValue())
output_file.write('\nPV Type:\t\t')
output_file.write(self.maskedPVType.GetValue())
output_file.write('\nNominal Peak Power:\t')
output_file.write(self.maskedNomPeakPow.GetValue())
output_file.write('\nMinimum Power:\t\t')
output_file.write(self.maskedMinPow.GetValue())
output_file.write('\nPeak Power Voltage:\t')
output_file.write(self.maskedPeakPowVolt.GetValue())
output_file.write('\nPeak Power Current:\t')
output_file.write(self.maskedPeakPowCurr.GetValue())
output_file.write('\nOpen Circuit Voltage:\t')
output_file.write(self.maskedOpenCircVolt.GetValue())
output_file.write('\nShort Circuit
Current:\t')
output_file.write(self.maskedShortCircCurr.GetValue())
output_file.write('\nUser:\t\t\t')
output_file.write(self.maskedUser.GetValue())
output_file.close()
self.ser.open()
self.tx_command = 67
self.tx_no_databyte = 2
self.tx_message_no = 1
self.tx_len = len (self.irradianceIntegers)
self.counter = 0
self.timer1.Start(5000)
self.count = 0
self.temp1 = []
self.temp2 = []
self.pyra1 = []
self.pyra2 = []
self.voltage = []
self.current = []
while(self.flag==1 or
self.count<=self.tx_len):
rx_data = self.ser.read(19)
rx_len = len(rx_data)
byte = [ord(x) for x in rx_data]
if rx_len < 10:
sys.exit(1)
for k in range (rx_len-9):
if byte[k] == 70 and byte [k+2] == 6
and sum(byte[k:k+10]) & 0xff == 0:
temp11 = float(byte[k+3])* 5/255
temp22 = float(byte[k+4])* 5/255
pyra11 = float(byte[k+5])* 5/255
pyra22 = float(byte[k+6])* 5/255
voltage11 = float(byte[k+7])*
5/255
current11 = float(byte[k+8])*
5/255
self.temp1.append(temp11)
self.temp2.append(temp22)
self.pyra1.append(pyra11)
self.pyra2.append(pyra22)
self.voltage.append(voltage11)
self.current.append(current11)
self.filename = "%s\%s.txt"
%(os.path.normpath(self.SaveFolder.GetValue()),time.strftime("%Y%m%d%H%M"))
self.table_file =
open(self.filename,"a")
self.table_file.write('%f\t'%temp11)
self.table_file.write('%f\t'%temp22)
self.table_file.write('%f\t'%pyra11)
self.table_file.write('%f\t'%pyra22)
self.table_file.write('%f\t'%voltage11)
self.table_file.write('%f\t'%current11)
self.table_file.write('\n')
self.table_file.close()
#self.count = self.count+1
#self.ser.flushInput()
self.ser.close()
#event.Skip()
def OnStopButton(self, event):
self.flag = 0
self.timer1.Stop()
del self.timer1
self.ser.close()
#event.Skip()
def OnConstantModeRadiobutton(self, event):
self.TextFile.Enable(False)
self.BrowseTextFile.Enable(False)
def OnUserModeRadiobutton(self, event):
self.TextFile.Enable(True)
self.BrowseTextFile.Enable(True)
def OnTimer1Timer(self, event):
#self.filename = "%s\%s.txt"
%(os.path.normpath(self.SaveFolder.GetValue()),time.strftime("%Y%m%d%H%M"))
self.data_hi, self.data_lo =
divmod(self.irradianceIntegers[self.counter], 0x100)
self.tx_checksum = -(self.data_hi +
self.data_lo + self.tx_command + self.tx_message_no +
self.tx_no_databyte) & 0xff
self.ser.write(pack('6B', self.tx_command,
self.tx_message_no, self.tx_no_databyte, self.data_lo,
self.data_hi, self.tx_checksum))
# if self.tx_len == self.counter:
# self.timer1.Stop()
# del self.timer1
# else:
self.counter = self.counter +1
return
#event.Skip()
wxFrame1.py (22.6 KB)
wxApp1.py (463 Bytes)
···
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com