from bottle import redirect,get,post,request,response,template,run,route,Bottle,static_file
from bottle.ext.websocket import GeventWebSocketServer
from bottle.ext.websocket import websocket
import time
import signal
from HardwareInterrupt import Hardware
from Signals import _Signal_DataArrived
import signal
hardware = None
def printWeight(data):
global hardware
print "data = ",data
#signal.signal(signal.SIGALRM,printWeight)
@route('/')
def websocket():
global hardware
hardware = Hardware()
hardware.setups()
#hardware.startReadingValue()
print "hardware..."
_Signal_DataArrived.run(printWeight)
run(host='0.0.0.0',port=8001,server=GeventWebSocketServer)
and HardwareInterrupt.py is like this......
def setups(self):
#setting Gpio setups
Gpio.setup("P9_24", Gpio.IN,pull_up_down=Gpio.PUD_DOWN)
Gpio.add_event_detect("P9_24", Gpio.RISING)
self.setupI2cSettings()
Gpio.add_event_callback(_SensorValueDetectedPin,self.readValueFromSensor)
def readValueFromSensor(self,channel):
if (self.count == 860):
result=self.total/self.count
weight = result * self.sensorValueToGramConverter
weight = self.doCalibration(weight,self.prev_weight)#currentVal)#,previousVal)
self.prev_weight = weight
print '%.2f' % (weight)
self.count = 0
result = 0
self.total = 0
obj = {'weight':weight}
self._weight = weight
_Signal_DataArrived.emitIt(weight)
import time
time.sleep(0.1)
self.count = self.count + 1
MSB, LSB = self.i2c.readList(0x00, 2)
combined = (MSB << 8) | LSB # gelen verinin decimal hali
self.total +=combined
....