aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2019-02-21 17:34:53 +0200
committerAvi Levkovich <avi@twine-s.com>2019-02-21 17:34:53 +0200
commitd7c8a8e9a6320ade6098e0d8e182c7ada4e30a97 (patch)
tree4f261cdd6c2f5a3336e09e775576fbd6bf353dd1 /Software/Embedded_SW/Embedded/Modules
parent1b6e37351cde492bc27e48d4c53f6a69eea91052 (diff)
parenta5fde6c76b7c98c482d5fc069c371da5480c0bdf (diff)
downloadTango-d7c8a8e9a6320ade6098e0d8e182c7ada4e30a97.tar.gz
Tango-d7c8a8e9a6320ade6098e0d8e182c7ada4e30a97.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/control.c18
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c3
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c10
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c41
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.h3
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c3
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c3
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c2
8 files changed, 51 insertions, 32 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/control.c b/Software/Embedded_SW/Embedded/Modules/Control/control.c
index e4abc5e3c..52b52d93b 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/control.c
+++ b/Software/Embedded_SW/Embedded/Modules/Control/control.c
@@ -232,8 +232,8 @@ uint32_t AddControlCallback( ControlCBFunction Callback, CTRL_TIMING_ENUM CtrlF
uint32_t device_i;
uint32_t deviceId = 0xFF;
- //if (CtrlFrequency == eOneMillisecond)
- //{
+ if (CtrlFrequency == eOneMillisecond)
+ {
for(device_i = 0;device_i < MAX_TANGO_CONTROL_DEVICES;device_i++)
{
if (ControlArray[device_i].ControlActive == false)
@@ -242,7 +242,7 @@ uint32_t AddControlCallback( ControlCBFunction Callback, CTRL_TIMING_ENUM CtrlF
break;
}
}
-/* if (MaxHighDevices == 0xFF)
+ if (MaxHighDevices == 0xFF)
MaxHighDevices = deviceId;
else
{
@@ -252,7 +252,7 @@ uint32_t AddControlCallback( ControlCBFunction Callback, CTRL_TIMING_ENUM CtrlF
}
else
{
- for(device_i = MAX_TANGO_CONTROL_DEVICES-1;device_i >=0;device_i--)
+ for(device_i = MAX_TANGO_CONTROL_DEVICES-1;device_i > 0;device_i--)
{
if (ControlArray[device_i].ControlActive == false)
{
@@ -260,7 +260,7 @@ uint32_t AddControlCallback( ControlCBFunction Callback, CTRL_TIMING_ENUM CtrlF
break;
}
}
- }*/
+ }
if (deviceId == 0xFF)
{
@@ -399,10 +399,10 @@ uint32_t GetControlLowDevice_i(void)
}
uint32_t ControlLoop(uint32_t tick)
{
- //if (MaxHighDevices == 0xFF)
- // return OK;
- //for (ControlDevice_i = 0; ControlDevice_i <= MaxHighDevices;ControlDevice_i++)
- for (ControlDevice_i = 0; ControlDevice_i < MAX_TANGO_CONTROL_DEVICES;ControlDevice_i++)
+ if (MaxHighDevices == 0xFF)
+ return OK;
+ for (ControlDevice_i = 0; ControlDevice_i <= MaxHighDevices;ControlDevice_i++)
+ //for (ControlDevice_i = 0; ControlDevice_i < MAX_TANGO_CONTROL_DEVICES;ControlDevice_i++)
{
if (ControlArray[ControlDevice_i].ControlActive)
{
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c
index 9a167b26e..e3f593924 100644
--- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c
+++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c
@@ -245,6 +245,9 @@ uint32_t SetDigitalOutRequestRequestFunc(MessageContainer* requestContainer)
else
DeActivateHeadMagnet();
break;
+/* case INTERFACE_IOS__GPO_LED4:
+ DataUpdated = request->value;
+ break;*/
case INTERFACE_IOS__VALVE_WASTE_TANK:
if (request->value == true)
Valve_Set(VALVE_MIXCHIP_WASTECH,1);
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
index 603de30d4..fe060874f 100644
--- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
+++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
@@ -99,7 +99,7 @@ DoubleArray DiagnosticsDispenserPressure[MAX_SYSTEM_DISPENSERS];
HeaterState **heatersstates;
HeaterState HeaterInfo[HEATER_TYPE__MixerHeater+1];
DigitalInterfaceState **digitalinterfacestates;
-DigitalInterfaceState DigitalOutputState[MAX_HEATERS_NUM/*+1*/];
+DigitalInterfaceState DigitalOutputState[MAX_HEATERS_NUM+2];
/*double dispenser1motorfrequency[DIAGNOSTICS_LIMIT];
double dispenser2motorfrequency[DIAGNOSTICS_LIMIT];
double dispenser3motorfrequency[DIAGNOSTICS_LIMIT];
@@ -237,8 +237,12 @@ void DiagnosticsLoadDigitalValues(void)
DigitalOutputState[9].interfaceio = INTERFACE_IOS__GPO_MIXCHIP_SSR4_CTRL;
DigitalOutputState[9].value = GetHeaterState(9);
- //DigitalOutputState[9].interfaceio = INTERFACE_IOS__GPO_SPARE_SSR13_CTRL;
- //DigitalOutputState[9].value = GetHeaterState(9);
+ DigitalOutputState[9].interfaceio = INTERFACE_IOS__GPO_SPARE_SSR13_CTRL;
+ DigitalOutputState[9].value = 0;
+#warning get the magnet state
+
+ DigitalOutputState[9].interfaceio = INTERFACE_IOS__GPO_LED4;
+ DigitalOutputState[9].value = DataUpdated;
}
void DiagnosticLoadTemperature(int HeaterId, int temperature)
diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
index d3d57ddb6..847396441 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
@@ -49,7 +49,6 @@ bool GeneralHwReady = false;
HardwareBlower BlowerCfg;
char *SW_INFO_DIR = "0://SysInfo";
-char *OLD_SW_INFO_DIR = "0://SWInfo";
char HwConfigPath[50] = "0://SysInfo//GenHwCfg.cfg";
uint32_t HWConfigurationInit(void)
@@ -65,18 +64,6 @@ uint32_t HWConfigurationInit(void)
Fresult = f_mkdir(SW_INFO_DIR);
if ((Fresult == FR_OK)||(Fresult == FR_EXIST))
{
-/*************************************************************************
- Fresult = f_mkdir(OLD_SW_INFO_DIR);
-
- Fresult = f_rename ("//SWINFO//GENHWCFG.MSG", "//SYSINFO//GENHWCFG.CFG");
- Fresult |= f_rename ("//SWINFO//ALARMPRM.MSG", "//SYSINFO//ALARMPRM.CFG");
- Fresult |= f_rename ("//SWINFO//EMBPARAM.MSG", "//SYSINFO//EMBPARAM.CFG");
- Fresult |= f_rename ("//SWINFO//PROCESSP.MSG", "//SYSINFO//PROCESSP.CFG");
- Fresult |= f_rename ("//SWINFO//DISPSTOR.MSG", "/SYSINFO//DISPSTOR.CFG");
- Fresult |= f_rename ("//SWINFO//DANCCFG.MSG", "//SYSINFO//DANCCFG.CFG");
- Fresult |= f_rename ("//SWINFO//LOADARM.MSG", "//SYSINFO//LOADARM.CFG");
-
- *************************************************************************/
FileHandle = my_malloc(sizeof(FIL));
Fresult = FileOpen(HwConfigPath, &Bytes, FileHandle);
@@ -108,7 +95,7 @@ uint32_t HWConfigurationInit(void)
}
f_close(FileHandle);
}
- EmbeddedParametersInit();
+ //EmbeddedParametersInit();
IDS_Dispenser_Content_Init();
//ProcessParamsInit();
return Fresult;
@@ -116,10 +103,12 @@ uint32_t HWConfigurationInit(void)
char EmbeddedParametersPath[50] = "0://SysInfo//EmbParam.cfg";
ConfigurationParameters EmbeddedParameters;
+bool DataUpdated = false;
void LoadConfigurationParameters(ConfigurationParameters *Params)
{
if (Params == 0)
{
+ configuration_parameters__init(&EmbeddedParameters);
EmbeddedParameters.has_breaksensorlimit = true;
EmbeddedParameters.breaksensorlimit = 10;
EmbeddedParameters.has_diagnosticcollectionlimit = true;
@@ -156,8 +145,14 @@ void LoadConfigurationParameters(ConfigurationParameters *Params)
EmbeddedParameters.dcheatersupperoperationlimit = 1002;
EmbeddedParameters.has_midtankpressurecorrection = true;
EmbeddedParameters.midtankpressurecorrection = 0.5;
-
- FileWrite(&EmbeddedParameters,sizeof(EmbeddedParameters),EmbeddedParametersPath);
+ uint8_t* response_buffer = my_malloc(configuration_parameters__get_packed_size(&EmbeddedParameters));
+ size_t response_size = 0;
+ if (response_buffer)
+ {
+ response_size = configuration_parameters__pack(&EmbeddedParameters, response_buffer);
+ }
+ FileWrite(response_buffer,response_size,EmbeddedParametersPath);
+ my_free(response_buffer);
}
else memcpy (&EmbeddedParameters,Params,sizeof(EmbeddedParameters));
}
@@ -168,14 +163,19 @@ uint32_t EmbeddedParametersInit(void)
uint32_t Bytes = 0;
ConfigurationParameters *Params;
- LoadConfigurationParameters(0);
Fresult = FileRead(EmbeddedParametersPath, &Bytes, &buffer);
if (Fresult == FR_OK)
{
- Params = (ConfigurationParameters *)buffer;
+ Params = configuration_parameters__unpack(NULL, Bytes, buffer)/*(ConfigurationParameters *)buffer*/;
LoadConfigurationParameters(Params);
- free (buffer);
+ DataUpdated=true;
+ free (buffer);
+ configuration_parameters__free_unpacked(NULL,Params);
+ }
+ else
+ {
+ LoadConfigurationParameters(0);
}
IDS_Dispenser_SetTimeOutValues(EmbeddedParameters.closevalvetimeout, EmbeddedParameters.openvalvetimeout);
IDS_Dispenser_SetBackLashValues(EmbeddedParameters.initialdispenserpressure, EmbeddedParameters.initialdispensertimeout, EmbeddedParameters.initialdispensertimelag);
@@ -220,6 +220,9 @@ uint32_t HWConfiguration(UploadHardwareConfigurationRequest* UploadRequest)
{
return ERROR;
}
+
+ EmbeddedParametersInit();
+
PrintingHWConfiguration(request);
if (request->n_winders == 1)
status += InternalWinderConfigMessage(request->winders);
diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.h b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.h
index 9aa5201dc..8fdbad42e 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.h
+++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.h
@@ -14,6 +14,9 @@ extern void HWSystemResetRequest(MessageContainer* requestContainer);
uint32_t HWConfigurationInit(void);
extern HardwareBlower BlowerCfg;
+
+extern bool DataUpdated;
+
extern bool GeneralHwReady;
#endif
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
index e83be8633..2647970c9 100644
--- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
@@ -706,7 +706,8 @@ uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue)
//Heaters OFF until coming into the proportional band
return OK;
}
- if (readValue < ((HeaterCmd[index].targettemperatue * (100-HeaterControl[index].outputproportionalband))/100))
+// if (readValue < ((HeaterCmd[index].targettemperatue * (100-HeaterControl[index].outputproportionalband))/100))
+ if (readValue < (HeaterCmd[index].targettemperatue * AcHeatersLoweroperationLimit/1000))
{
ActivateHeater(HARDWARE_PID_CONTROL_TYPE__DryerHeaterSecondary);
ActivateHeater(HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain);
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c
index ede6b0674..42f990fda 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c
@@ -44,11 +44,14 @@ void IDS_Dispenser_SetPrepareValues( uint32_t DispenserBuildPressureSpeed,
DispenserPreparePressure = DispenserBuildPressureLimit;
DispenserPrepareTimeout = DispenserBuildPressureTimeout;
DispenserPrepareTimeLag = DispenserBuildPressureLag;
+ Report("IDS_Dispenser_SetPrepareValues ",__FILE__,__LINE__,DispenserPrepareSpeed,RpWarning,(int)DispenserPreparePressure,0);
+ Report("IDS_Dispenser_SetPrepareValues ",__FILE__,__LINE__,DispenserPrepareTimeout,RpWarning,(int)DispenserPrepareTimeLag,0);
}
void IDS_Dispenser_SetTimeOutValues(uint32_t CloseTimeout, uint32_t OpenTimeout)
{
CloseValveTimeout = CloseTimeout;
OpenValveTimeout = OpenTimeout;
+ Report("IDS_Dispenser_SetTimeOutValues ",__FILE__,__LINE__,OpenValveTimeout,RpWarning,(int)CloseValveTimeout,0);
}
//********************************************************************************************************************
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
index 8028a60ee..7d851936c 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
@@ -75,6 +75,8 @@ void IDS_Dispenser_SetBackLashValues(double initialdispenserpressure, uint32
InitialDispenserPressure = initialdispenserpressure;
InitialDispenserTimeout = initialdispensertimeout;
InitialDispenserTimeLag = initialdispensertimelag;
+
+ Report("IDS_Dispenser_SetBackLashValues ",__FILE__,InitialDispenserPressure,InitialDispenserTimeout,RpWarning,(int)InitialDispenserTimeLag,0);
}
uint32_t IDS_HomeDispenserBackMoveCallback(uint32_t deviceID, uint32_t ReadValue)
{