예제 #1
0
 def lay_off_worker(self):
     if not PrintLists().print_workers(WorkerManager().get_worker_list()):
         return False
     id = PrintInputs.enter_worker_id(
         WorkerManager().get_worker_list()[-1].id)
     worker_remove = WorkerManager().remove_worker(id)
     if worker_remove:
         PrinterStatemants.print_worker_fired()
         return True
     else:
         PrinterStatemants.print_not_found(id, 'worker')
         return False
예제 #2
0
 def edit_worker_salary(self):
     if not PrintLists().print_workers(WorkerManager().get_worker_list()):
         return False
     id = PrintInputs.enter_worker_id(
         WorkerManager().get_worker_list()[-1].id)
     salary = PrintInputs.enter_worker_new_salary()
     worker_edit = WorkerManager().edit_worker_salary(id, salary)
     if worker_edit:
         PrinterStatemants.print_worker_salary_updated()
         return True
     else:
         PrinterStatemants.print_not_found(id, 'worker')
         return False
예제 #3
0
 def __init__(self, task_loader, conf):
     self.lock = threading.Lock()
     self.workerManager = WorkerManager(conf)
     self.taskManager = TaskManager(task_loader)
     self.running_tasks = {}
     self.conf = conf
     self.load_tasks()
예제 #4
0
 def add_worker(self):
     worker = PrintInputs.enter_worker()
     if worker['age'] <= 18:
         print("We can't take him, he is too young")
         return False
     if worker['age'] >= 65:
         print("We can't take a pensioner")
         return False
     worker_add = WorkerManager().add_worker(worker)
     if worker_add:
         PrinterStatemants.print_worker_added()
         return True
     else:
         return False
예제 #5
0
def main():
    # Logging
    logging.basicConfig(level=logging.DEBUG)
    logging.debug("Application starting...")
    # Read config
    config = ConfigParser()
    config.read("app.ini", encoding="UTF-8")
    mainConfig = MainConfig(config)
    logicConfig = LogicConfig(config)
    # Create components
    app = QApplication([])
    engineCom = EngineCom()
    cabinCom = CabinCom()
    dashboard = Dashboard(mainConfig.initDriveMode)
    logic = Logic(logicConfig, mainConfig.initDriveMode)
    workerManager = WorkerManager(
        [engineCom.worker, cabinCom.worker, logic.worker])
    tuning = Tuning(onExit=lambda: (workerManager.stopAll(), app.quit()))
    # Connect components
    engineCom.signals.outEngineTachometer.connect(logic.inEngineTachometer)
    engineCom.signals.outGearboxInTachometer.connect(
        logic.inGearboxInTachometer)
    engineCom.signals.outGearboxOutTachometer.connect(
        logic.inGearboxOutTachometer)
    engineCom.signals.outGearNumber.connect(logic.inGearNumber)
    engineCom.signals.outOilPressure.connect(logic.inOilPressure)
    engineCom.signals.outOilTemperature.connect(logic.inOilTemperature)
    engineCom.signals.outWatterTemperature.connect(logic.inWatterTemperature)
    cabinCom.signals.outRaceModeIsOn.connect(logic.inRaceModeIsOn)
    cabinCom.signals.outStopwatchButtonIsOn.connect(
        logic.inStopwatchButtonIsOn)
    cabinCom.signals.outOdometerButtonIsOn.connect(logic.inOdometerButtonIsOn)
    cabinCom.signals.outTurnLeftSignalIsOn.connect(logic.inTurnLeftSignalIsOn)
    cabinCom.signals.outTurnRightSignalIsOn.connect(
        logic.inTurnRightSignalIsOn)
    cabinCom.signals.outSteeringWhilePosition.connect(
        logic.inSteeringWhilePosition)
    cabinCom.signals.outAccelerometer.connect(logic.inAccelerometer)
    logic.signals.outMode.connect(dashboard.inMode)
    logic.signals.outTachometerEngine.connect(dashboard.inTachometerEngine)
    logic.signals.outTachometerGearbox.connect(dashboard.inTachometerGearbox)
    logic.signals.outTachometerGears.connect(dashboard.inTachometerGears)
    logic.signals.outAccelerometer.connect(dashboard.inAccelerometer)
    logic.signals.outSteeringWheelEncoder.connect(
        dashboard.inSteeringWheelEncoder)
    logic.signals.outTurnLeftIndicator.connect(dashboard.inTurnLeftIndicator)
    logic.signals.outTurnRightIndicator.connect(dashboard.inTurnRightIndicator)
    logic.signals.outSpeedometer.connect(dashboard.inSpeedometer)
    logic.signals.outGearNumber.connect(dashboard.inGearNumber)
    logic.signals.outOilWarningIndicator.connect(
        dashboard.inOilWarningIndicator)
    logic.signals.outWatterWarningIndicator.connect(
        dashboard.inWatterWarningIndicator)
    logic.signals.outSpeedometer.connect(dashboard.inSpeedometer)
    logic.signals.outStopwatch.connect(dashboard.inStopwatch)
    logic.signals.outOilManometer.connect(dashboard.inOilManometer)
    logic.signals.outOilThermometer.connect(dashboard.inOilThermometer)
    logic.signals.outWatterThermometer.connect(dashboard.inWatterThermometer)
    logic.signals.outOdometer.connect(dashboard.inOdometer)
    # Show UI
    if mainConfig.dashboardFullScreen:
        dashboard.showFullScreen()
    else:
        dashboard.show()
    if mainConfig.showTuningUi:
        tuning.show()
    # Run processing
    workerManager.startAll()
    # Start events loop
    sys.exit(app.exec_())
예제 #6
0
def trials(mu, theta2, lmbd, sigma2, EMitr, k, n, max_capital, num_agents,
           mode, err, alpha, trl):

    rng = np.random.RandomState(trl)
    idx = rng.randint(0, n, size=(k))
    beta = np.zeros((n, 1))
    beta[idx, :] = mu + np.sqrt(theta2) * rng.randn(k, 1)

    # #%% LATSI:
    func_class = LATSI(beta, mu, theta2, sigma2, lmbd, EMitr, err, num_agents,
                       alpha, trl)

    worker_manager = WorkerManager(func_caller=func_class,
                                   worker_ids=num_agents,
                                   poll_time=1e-15,
                                   trialnum=trl)

    options = Namespace(max_num_steps=max_capital,
                        num_init_evals=num_agents,
                        num_workers=num_agents,
                        mode=mode,
                        GP=func_class)

    beta_hats = Bayesian_optimizer(worker_manager, func_class,
                                   options).optimize(max_capital)

    full_recovery_rate_latsi = []
    partial_recovery_rate_latsi = []

    for i in range(max_capital):
        beta_hat = beta_hats[i]

        est = (np.round(beta_hat) > (mu / 2))
        real = (beta > 0)

        partial_recovery_rate_latsi.append(np.sum(est == real) / (n))
        correct_LATSI = 0.0
        if (np.all(est == real)):
            correct_LATSI = 1.0
        full_recovery_rate_latsi.append(correct_LATSI)

# # # #%% SPATS:
    func_class = SPATS(beta, mu, theta2, sigma2, lmbd, EMitr, num_agents, trl)

    worker_manager = WorkerManager(func_caller=func_class,
                                   worker_ids=num_agents,
                                   poll_time=1e-15,
                                   trialnum=trl)

    options = Namespace(max_num_steps=max_capital,
                        num_init_evals=num_agents,
                        num_workers=num_agents,
                        mode=mode,
                        GP=func_class)

    beta_hats = Bayesian_optimizer(worker_manager, func_class,
                                   options).optimize(max_capital)

    full_recovery_rate_spats = []
    partial_recovery_rate_spats = []

    for i in range(max_capital):
        beta_hat = beta_hats[i]

        est = (np.round(beta_hat) > (mu / 2))
        real = (beta > 0)

        partial_recovery_rate_spats.append(np.sum(est == real) / (n))
        correct_spats = 0.0
        if (np.all(est == real)):
            correct_spats = 1.0
        full_recovery_rate_spats.append(correct_spats)


# #%% RSI:
    func_class2 = RSI(beta, mu, theta2, sigma2, lmbd, EMitr, err, trl)

    worker_manager = WorkerManager(func_caller=func_class2,
                                   worker_ids=num_agents,
                                   poll_time=1e-15,
                                   trialnum=trl)

    options = Namespace(max_num_steps=max_capital,
                        num_init_evals=num_agents,
                        num_workers=num_agents,
                        mode=mode,
                        GP=func_class2)

    beta_hats = Bayesian_optimizer(worker_manager, func_class2,
                                   options).optimize(max_capital)

    full_recovery_rate_rsi = []
    partial_recovery_rate_rsi = []

    for i in range(max_capital):
        beta_hat = beta_hats[i]

        est = (np.round(beta_hat) > (mu / 2))
        real = (beta > 0)

        partial_recovery_rate_rsi.append(np.sum(est == real) / (n))
        correct_rsi = 0.0
        if (np.all(est == real)):
            correct_rsi = 1.0
        full_recovery_rate_rsi.append(correct_rsi)

    return [
        full_recovery_rate_spats, full_recovery_rate_rsi,
        full_recovery_rate_latsi, partial_recovery_rate_spats,
        partial_recovery_rate_rsi, partial_recovery_rate_latsi
    ]
예제 #7
0
import fire
from config import cfg
from tasks import *
from worker_manager import WorkerManager
import time

wm = WorkerManager()


def print_task():
    '''
    暂时没啥用,留了接口
    '''
    wm.show_occupied()


def start():
    wm.occupy_start()


if __name__ == '__main__':
    fire.Fire()
예제 #8
0
 def get_total_salary(self):
     total_salary = 0
     workers = WorkerManager().get_worker_list()
     for worker in workers:
         total_salary += worker.salary
     return total_salary