Пример #1
0
def startManagedProcess(name):
    if name in running or name not in managedProcesses: return

    process = managedProcesses[name]

    loggerINFO(f"starting python process {process}")

    running[name] = Process(name=name, target=launcher, args=(process, ))

    running[name].start()
Пример #2
0
def newDevicesScoutThread():
  portReplierDevicesManager    = "5555"
  newDevicesAnnouncer  = Requester(portReplierDevicesManager)
  permanentListOfAcceptedDevices = []

  while True:
    newDevice = discoverNewDevices() # blocking call, it returns only when there is a new Device
    #newDeviceAddress = "12:34:AB:CD"
    replyFromDevicesManager = newDevicesAnnouncer.send(newDevice)

    loggerINFO(Fore.RED + "newDEVICES scout"+ Style.RESET_ALL + f"replyFromDevicesManager: {replyFromDevicesManager} ")
    time.sleep(2)
Пример #3
0
def managerThread():
    loggerDEBUG(f"starting manager thread")
    # Get thermal status through messaging -- msg = messaging.recv_sock(thermal_sock, wait=True)
    # heavyweight batch processes run only when thermal conditions are favorable

    thermalStatusCritical = False

    loggerINFO(f"green Temp Processes {greenTempProcesses}")

    if thermalStatusCritical:
        for p in greenTempProcesses:
            if p in persistentProcesses:
                killManagedProcess(p)
    else:
        for p in greenTempProcesses:
            startManagedProcess(p)
Пример #4
0
def preImportMethods():
    for i, p in enumerate(managedProcesses):
        process = managedProcesses[p]
        loggerINFO(f"process number {i}, preimporting {process}")
        importlib.import_module(process)
Пример #5
0
def killManagedProcess(name):
    loggerINFO(f"killing python process {process}")
Пример #6
0
import os, sys, time  # pylint: disable=import-error
from crontab.crontabSetup import minuteTrigger
from rpi.rpiSetup import setHostname
from internet.internet import ensureInternet
#from odoo.gate import gateInit
from multiprocessing import Process, Manager
#import logging, logging.config
from launcher import launcher
from log.logger import loggerDEBUG, loggerINFO, loggerWARNING, loggerERROR, loggerCRITICAL
import importlib

loggerINFO(f'running on python version: {sys.version}')

managedProcesses = {
    "bluetoothConnection": "bluetooth.bluetooth",
    #"devicesManager": "bluetooth.devicesManager",
    #"newDevicesScout": "bluetooth.newDevicesScout",
}

greenTempProcesses = managedProcesses

persistentProcesses = greenTempProcesses

running = {}


def defineDirectories():

    dirPath = os.path.dirname(os.path.realpath(__file__))

    loggerDEBUG(f'running on directory: {dirPath}')