aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c
blob: db4dbb1f0790bf9cbe3b55ccfa444bc7801d3340 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/************************************************************************************************************************
 **************************************************************************************************************************/

#include "include.h"

#include <Modules/Stubs_Handler/DataDef.h>

#include "ids.h"
#include "PMR/common/MessageContainer.pb-c.h"
#include "PMR/Hardware/HardwareDispenser.pb-c.h"


DispenserConfigStruc DispensersCfg[ MAX_SYSTEM_DISPENSERS];

uint32_t DispenserIdToMotorId[MAX_SYSTEM_DISPENSERS] = {MOTOR_DISPENSER_1,MOTOR_DISPENSER_2,MOTOR_DISPENSER_3,MOTOR_DISPENSER_4,MOTOR_DISPENSER_5,MOTOR_DISPENSER_6,MOTOR_DISPENSER_7,MOTOR_DISPENSER_8};



uint32_t DispenserConfigMessage(HardwareDispenser * request)
{
    uint32_t status = PASSED;
    int Dispenser_i;

    Dispenser_i = request->hardwaredispensertype;
    if ((Dispenser_i)&&(Dispenser_i< MAX_SYSTEM_DISPENSERS))
    {

        DispensersCfg[Dispenser_i].id               = request->hardwaredispensertype;
        DispensersCfg[Dispenser_i].minfrequency          = request->minfrequency;
        DispensersCfg[Dispenser_i].maxfrequency          = request->maxfrequency;
        DispensersCfg[Dispenser_i].minmicrostep     = request->minmicrostep;
        DispensersCfg[Dispenser_i].maxmicrostep     = request->maxmicrostep;
        DispensersCfg[Dispenser_i].correctiongain   = request->correctiongain;
        DispensersCfg[Dispenser_i].ratiotodryerspeed  = request->ratiotodryerspeed;
        DispensersCfg[Dispenser_i].kp               = request->kp;
        DispensersCfg[Dispenser_i].ki               = request->ki;
        DispensersCfg[Dispenser_i].kd               = request->kd;
        DispensersCfg[Dispenser_i].changeslope      = request->changeslope;
        DispensersCfg[Dispenser_i].highlengthmicrosecond   = request->highlengthmicrosecond;
        DispensersCfg[Dispenser_i].dispensercapacity= request->capacity;
//        DispensersCfg[Dispenser_i].midtankcapacity  = request->midtankcapacity;
        DispensersCfg[Dispenser_i].nlperpulse   = request->nlperpulse;
        DispensersCfg[Dispenser_i].controltiming    = request->controltiming;
        return status;
    }
    else return Dispenser_i;

}