A maior rede de estudos do Brasil

Grátis
LidarPythonCode

Pré-visualização | Página 4 de 7

#################################################################################
# f32K( iChannel ):
#################################################################################
def f32K( iChannel ):
####
 oTrigger32K.set()
#### 
 return;
#################################################################################
# fInt6050CallBack( iChannel )
#################################################################################
def fInt6050CallBack( iChannel ):
####
 ## multiprocessing event see class cMP_Tweak() allows x y servo correction to be calculated
 mpTweakerEvent.set()
####
 return;
##################################################################################
# fHaltCallBack()
##################################################################################
def fHaltCallback(iChannel):
 
 mpQrcv.put_nowait("HALT")
 mpQsend.close()
 mpTweakerEvent.set()
 print("fHaltCallback")
 
 return;
##################################################################################
# fSerialCallBack()
##################################################################################
def fSerialCallBack(iChannel):
 sReceive = b""
 ## print( "fSerialCallBack triggered")
 try:
 if serialPort.open:
 #disable uno from collecting and sending data while Pi is busy processing
 GPIO.output(iPiReady, GPIO.HIGH)
 sReceive = serialPort.readline()
 ## print( "fSerialCallBack triggered")
 
 oPS.fProcSerial( sReceive.decode('utf-8') ) 
 else:
 print("Port", sConstants[iZero], " !open")
 except:
 pass
 finally:
 #RASPBERRY PI READY
 if serialPort.open:
 try:
 serialPort.flushInput()
 except:
 pass
 return;
#################################################################################
#
#################################################################################
#def fOnOffCallBack(iChannel):
#
# global bAlertOnOff
# global bAlertWarning
#
# ##if Alert disabled enable
# ##by starting enable sequence
# ##see fHandleOnePPS_Triggers
# if (bAlertOnOff == False):
# bAlertWarning = not bAlertWarning
# elif (bAlertOnOff == True):
# bAlertOnOff = not bAlertOnOff 
#
# #print("Alert message toggle")
#
# return;
'''
June 15 2018
gpio 18 has an i/p from rtc putting out a 1 pulse per second interrupt
if rtc looses power. rtc will loose 1pps.
re enable 1pps interrupt from rts
open command line, enter " sudo rmmod rtc_ds1307 "
run:
def fEnableOnePPS():
 import smbus
 bus = smbus.SMBUS(1)
 ## enable interrupt
 bus.write_byte_data(0X68, 0X0E, 0x40)
 ## enable 32kHz out
 bus.write_byte_data(address, 0x0F, 0x8)
 return;
enter command " sudo modprobe rtc_ds1307 "
 
'''
################################################################################
# def fHandlePPS_Triggers():
################################################################################
'''
tic1
640 about 1/8 sec
1480 about 6X a sec
2560 tbd
5120 about 2X sec
10240 about 2 sec
20480 about 4 sec
40860 about 5 sec
83720 about 6.5 sec
167440 about 13
408600 about .6 min
'''
def fHandlePPS_Triggers():
 ## bDidVolts = False
 iTic = 1
 ## iTic1 = 1 # every tic about 19 seconds
 while (not bIsGPIO_CleanUp):
## 4
 if ( (iTic % 1480) == 0 ):
## ###send serial queue item 6X a sec
 oTriggerSerialSend.set()
 ## mpTweakerEvent.set()
## if ( bOKToTweak ):
 if ( (iTic % 2560) == 0 ):
## ## print( "tweak trigger" )
 fSendTweak()
 mpTweakerEvent.set()
#####
# if ( ((iTic % 40860) == iZero) ):
# ##about every 6.5 seconds
# oTriggerOLED.set()
#### 
 oOD.iDog += iOne
 if ( oOD.iDog == 10240 ):
 oOD.iDog = 0
 oAspectChange.set() ## release aspect change
 iTic += iOne
 if ( iTic == 167440 ):
 iTic = 0
 ## iTic1 += iOne 
####
 oTrigger32K.clear()
 oTrigger32K.wait()
 return;
#################################################################################
#
#################################################################################
#################################################################################
'''
When running these routines and sub routines
remember arduino has been placed in a Pi not ready state
and arduino does not return to a ready state till
after fProcessData has returned from the calling function.
Sending serial data to the arduino CAN result in data fail to be sent.
'''
#################################################################################
# fSendTweak():
#################################################################################
def fSendTweak():
 ## print( "GET mpQ 0 " + str(datetime.datetime.now()) )
 try:
 if ( mpQsend.empty() == False ):
 sTemp = str( mpQsend.get_nowait() )
 sTemp += "\n"
 ## print( "fSendTweak " + sTemp )
 q.put( sTemp )
 else:
 while ( mpQsend.empty() == True ):
 sTemp = mpQsend.get_nowait()
####
 sTemp = str( mpQsend.get_nowait() )
 sTemp += "\n"
 ## print( "fSendTweak " + sTemp )
 q.put( sTemp )
 ## print( "GET mpQ 1" )
 except:
 pass
 return;
#################################################################################
#
#################################################################################
def fMeasureVoltageArduino():
 while (not bIsGPIO_CleanUp):
 ## print( "fMeasureVoltageArduino" )
 q.put( sConstants[iFour] + "\n" )
 oDoVolt.clear()
 oDoVolt.wait()
 return;
#################################################################################
#
#################################################################################
def fSendSerial(sToSend0):
 if (not (GPIO.input(iPiReady))):
 ## serialPort.flushOutput()
 sToSend = sToSend0 + "\n"
 sToSend.replace( " ", "/" )
 serialPort.write(sToSend.encode('utf-8'))
 return;
###################################################################################
###
###################################################################################
## see f32K( iChannel )
def fTh_SendSerial():
 ## global bOK_Send
 sToSend = ""
 while (not bIsGPIO_CleanUp):
 ## print( "fTh_SendSerial " + str(datetime.datetime.now()) )
 if ( 1 ):
 ## print( "fTh_SendSerial" )
 if ( bOK_Send ):
 if (not q.empty()):
 ## print( "fTh_SendSerial" )
 sToSend = q.get_nowait()
 if ( len( sToSend ) >= iOne ):
 ## bOK_Send = False
 ## sToSend += "\n"
 sToSend.replace( " ", "/" )
 print( "fTh_SendSerial " + sToSend )
 ## serialPort.flushOutput()
 serialPort.write(sToSend.encode('utf-8'))
 q.task_done()
 sToSend = ""
 oTriggerSerialSend.clear()
 oTriggerSerialSend.wait()
 return;
#################################################################################
#
#################################################################################
##
#################################################################################
#
#################################################################################

Crie agora seu perfil grátis para visualizar sem restrições.