# -*- coding: utf-8 -*-
"""
Created on Wed May 25 08:21:58 2016

@author: puneeth
"""

# simple.py

import wx
import serial
from numpy import log
class MyFrame(wx.Frame):

    def __init__(self, parent, title):


        super(MyFrame, self).__init__(parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 500,300 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )

        # Attach the paint event to the frame
        self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
        
        bSizer1 = wx.BoxSizer( wx.VERTICAL )
        
        self.m_panel1 = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
        bSizer2 = wx.BoxSizer( wx.VERTICAL )
        
        self.m_staticText1 = wx.StaticText( self.m_panel1, wx.ID_ANY, u"Temp", wx.Point( -1,-1 ), wx.DefaultSize, 0 )
        self.m_staticText1.Wrap( -1 )
        bSizer2.Add( self.m_staticText1, 0, wx.ALL, 5 )
#find temp        
        byte2 = 0
        byte3 = 0
        byte4 = 0
        ser.flush()
        while 1:
           #
           # find framing 
           #
           byte1 = byte2
           byte2 = byte3
           byte3 = byte4
           byte4 = ord(ser.read())
           if ((byte1 == 1) & (byte2 == 2) & (byte3 == 3) & (byte4 == 4)):
              break
        low = ord(ser.read())
        high = ord(ser.read())
        value = 256*high + low
        if (value > 511):
           value -= 1024
        V = 2.5 - value*5.0/(20.0*512.0)
        R = 10000.0/(5.0/V-1.0)
   # NHQ103B375R5
   # R25 10000 (O)
   # B (25/85) 3750 (K)
   # R(T(C)) = R(25)*exp(B*(1/(T(C)+273.15)-(1/(25+273.15))))
        B = 3750.0
        R25 =  10000.0
        T = 1.0/(log(R/R25)/B+(1/(25.0+273.15))) - 273.15        
        self.m_textCtrl1 = wx.TextCtrl( self.m_panel1, wx.ID_ANY, T, wx.Point( -1,-1 ), wx.DefaultSize, 0 )
        bSizer2.Add( self.m_textCtrl1, 0, wx.ALL, 5 )
        
        
        self.m_panel1.SetSizer( bSizer2 )
        self.m_panel1.Layout()
        bSizer2.Fit( self.m_panel1 )
        bSizer1.Add( self.m_panel1, 1, wx.EXPAND |wx.ALL, 5 )
        
        
        self.SetSizer( bSizer1 )
        self.Layout()
        
        self.Centre( wx.BOTH )
	
        # Show the frame
        self.Centre()
        self.Show()
        
if __name__ == '__main__':


    ser = serial.Serial("/dev/ttyUSB0",9600)
    app = wx.App()
    MyFrame(None, 'Serial data test')
    app.MainLoop()

#    ser = serial.Serial("/dev/ttyUSB1",9600)
#    ser.setDTR(       
    
#app = wx.App()

#frame = wx.Frame(None, -1, 'simple.py')
#frame.Show()

#app.MainLoop()