diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2018-08-26 10:55:44 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2018-08-26 10:55:44 +0300 |
| commit | 6e2fbaffeec9d6e3518ea9706eea107a4f1b348c (patch) | |
| tree | f50b3d8962dd37188061f8f52c1a7aeff1642232 /Software/Embedded_SW/Embedded/Modules | |
| parent | db3dc558ec5fe5f3584081795865cd22f912da7d (diff) | |
| parent | e6704dce7a2b7f6d5f9bbf1b8374cc7f00ea061e (diff) | |
| download | Tango-6e2fbaffeec9d6e3518ea9706eea107a4f1b348c.tar.gz Tango-6e2fbaffeec9d6e3518ea9706eea107a4f1b348c.zip | |
merge
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
3 files changed, 76 insertions, 40 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c index 477fc0732..1eabcdeba 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c @@ -50,12 +50,17 @@ uint32_t Diagnostics_ControlTrigger(uint32_t IfIndex, uint32_t ReadValue); uint32_t Diagnostics_TenMiliControlTrigger(uint32_t IfIndex, uint32_t ReadValue); +DiagnosticsMonitors DiagnosticsMonitor = DIAGNOSTICS_MONITORS__INIT; + #define DIAGNOSTICS_LIMIT 10 #define DIAGNOSTICS_DANCER_LIMIT 100 int DiagnosticsIndex = 0; int DiagnosticCollectionLimit = 3; //number of data samples to collect before sending to the host -int DiagnosticLimit = eHundredMillisecond; //frequency of data collection +//int DiagnosticLimit = eHundredMillisecond; //frequency of data collection +//int DiagnosticFastLimit = eTenMillisecond; //frequency of data collection +int DiagnosticLimit =eHundredMillisecond; //frequency of data collection int DiagnosticFastLimit = eTenMillisecond; //frequency of data collection + //DigitalPin DigitalPinArray[1][DIAGNOSTICS_LIMIT]; double dancer1angle[DIAGNOSTICS_LIMIT]; double dancer2angle[DIAGNOSTICS_LIMIT]; @@ -81,6 +86,9 @@ double dryerzone3temperature[DIAGNOSTICS_LIMIT]; double dispensermotorfrequency[MAX_SYSTEM_DISPENSERS][DIAGNOSTICS_LIMIT]; double dispenserspressure[MAX_SYSTEM_DISPENSERS][DIAGNOSTICS_LIMIT]; +DoubleArray DispenserFreq[MAX_SYSTEM_DISPENSERS]; +DoubleArray DiagnosticsDispenserPressure[MAX_SYSTEM_DISPENSERS]; + /*double dispenser1motorfrequency[DIAGNOSTICS_LIMIT]; double dispenser2motorfrequency[DIAGNOSTICS_LIMIT]; double dispenser3motorfrequency[DIAGNOSTICS_LIMIT]; @@ -116,12 +124,23 @@ typedef struct DiagnosticsMessage{ void DiagnosticsInit(void) { + int i; Error_Block eb; Error_init(&eb); DiagnosticsMsgQ = Mailbox_create(sizeof(DiagnosticsMessageStruc), 20, NULL,&eb); + DiagnosticsMonitor.dispensersmotorsfrequency = (DoubleArray**)malloc(sizeof(DoubleArray *)*8); + DiagnosticsMonitor.dispenserspressure = (DoubleArray**)malloc(sizeof(DoubleArray)*8); + DiagnosticsMonitor.dispenserslinearpositions = (DoubleArray**)malloc(sizeof(DoubleArray)*8); + DiagnosticsMonitor.dispensersangularencoders = (DoubleArray**)malloc(sizeof(DoubleArray)*8); + for (i = 0; i<MAX_SYSTEM_DISPENSERS;i++) + { + double_array__init(&DispenserFreq[i]); + double_array__init(&DiagnosticsDispenserPressure[i]); + } + return; } uint8_t HeaterCounterIndex[MAX_HEATERS_NUM]= {0,0,0,0,0,0,0,0,0,0}; @@ -287,11 +306,9 @@ void DiagnosticsReset(void) DiagnosticsIndex = 0; } -DiagnosticsMonitors DiagnosticsMonitor = DIAGNOSTICS_MONITORS__INIT; -//Double *DispenserFreq[MAX_SYSTEM_DISPENSERS] = {0,0,0,0,0,0,0,0}; -//Double *DiagnosticsDispenserPressure[MAX_SYSTEM_DISPENSERS] = {0,0,0,0,0,0,0,0}; -DoubleArray DispenserFreq[MAX_SYSTEM_DISPENSERS] = {DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT}; -DoubleArray DiagnosticsDispenserPressure[MAX_SYSTEM_DISPENSERS] = {DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT}; +int j=0; +MessageContainer diagnosticsresponseContainer; +uint8_t* diagnosticscontainer_buffer; void SendDiagnostics(void) { MessageContainer responseContainer; @@ -382,34 +399,43 @@ void SendDiagnostics(void) DiagnosticsMonitor.blowervoltage = &voltage; memset(HeaterCounterIndex,0,sizeof(HeaterCounterIndex)); -/* - if (JobIsActive()) + int i; + DiagnosticsMonitor.n_dispensersmotorsfrequency = 0; + /* + if (JobIsActive()) { - + j++; DiagnosticsMonitor.n_dispensersmotorsfrequency = MAX_SYSTEM_DISPENSERS; - DiagnosticsMonitor.dispensersmotorsfrequency = (DoubleArray**)malloc(sizeof(DoubleArray)*8); - - for (i = 0; i<MAX_SYSTEM_DISPENSERS;i++) + if (DiagnosticsMonitor.dispensersmotorsfrequency) { - //double_array__init(&DispenserFreq[i]); - //DispenserFreq[i] = dispensermotorfrequency[i]; - DispenserFreq[i].data = dispensermotorfrequency[i]; - DispenserFreq[i].n_data = DiagnosticsIndex; - DiagnosticsMonitor.dispensersmotorsfrequency[i] = &DispenserFreq[i]; + for (i = 0; i<MAX_SYSTEM_DISPENSERS;i++) + { + //double_array__init(&DispenserFreq[i]); + //DispenserFreq[i] = dispensermotorfrequency[i]; + DispenserFreq[i].data = dispensermotorfrequency[i]; + DispenserFreq[i].n_data = DiagnosticsIndex; + DiagnosticsMonitor.dispensersmotorsfrequency[i] = &DispenserFreq[i]; + } } } - - DiagnosticsMonitor.n_dispenserspressure = MAX_SYSTEM_DISPENSERS; - DiagnosticsMonitor.dispenserspressure = (DoubleArray**)malloc(sizeof(DoubleArray)*8); - for (i = 0; i<MAX_SYSTEM_DISPENSERS;i++) + */ + DiagnosticsMonitor.n_dispenserspressure = 0; + /* + DiagnosticsMonitor.n_dispenserspressure = MAX_SYSTEM_DISPENSERS; + if (DiagnosticsMonitor.dispenserspressure) { - //DiagnosticsDispenserPressure[i] = dispenserspressure[i]; - //double_array__init(&DiagnosticsDispenserPressure[i]); - DiagnosticsDispenserPressure[i].data = dispenserspressure[i]; - DiagnosticsDispenserPressure[i].n_data = DiagnosticsIndex; - DiagnosticsMonitor.dispenserspressure[i] = &DiagnosticsDispenserPressure[i]; + for (i = 0; i<MAX_SYSTEM_DISPENSERS;i++) + { + //DiagnosticsDispenserPressure[i] = dispenserspressure[i]; + //double_array__init(&DiagnosticsDispenserPressure[i]); + DiagnosticsDispenserPressure[i].data = dispenserspressure[i]; + DiagnosticsDispenserPressure[i].n_data = DiagnosticsIndex; + DiagnosticsMonitor.dispenserspressure[i] = &DiagnosticsDispenserPressure[i]; + } } */ + DiagnosticsMonitor.n_dispenserslinearpositions = 0; + DiagnosticsMonitor.n_dispensersangularencoders = 0; DiagnosticsMonitor.n_dispenser1pressure = DiagnosticsIndex; DiagnosticsMonitor.dispenser1pressure = dispenserspressure[0]; @@ -447,21 +473,29 @@ void SendDiagnostics(void) } } */ - responseContainer = createContainer(MESSAGE_TYPE__StartDiagnosticsResponse, DiagnosticsToken, false, &response, &start_diagnostics_response__pack, &start_diagnostics_response__get_packed_size); - responseContainer.continuous = true; - - uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer)); - size_t container_size = message_container__pack(&responseContainer, container_buffer); - free(responseContainer.data.data); - free(DiagnosticsMonitor.dispenserspressure); - free(DiagnosticsMonitor.dispensersmotorsfrequency); - - DiagnosticsReset(); + diagnosticsresponseContainer = createContainer(MESSAGE_TYPE__StartDiagnosticsResponse, DiagnosticsToken, false, &response, &start_diagnostics_response__pack, &start_diagnostics_response__get_packed_size); + diagnosticsresponseContainer.continuous = true; - if (SendChars(container_buffer, container_size) == false) //comm tx mailbox full + diagnosticscontainer_buffer = 0; + diagnosticscontainer_buffer = malloc(message_container__get_packed_size(&diagnosticsresponseContainer)); + if (diagnosticscontainer_buffer) { - DiagnosticsStop(); + size_t container_size = message_container__pack(&diagnosticsresponseContainer, diagnosticscontainer_buffer); + //memmap(); + free(diagnosticsresponseContainer.data.data); + //free(DiagnosticsMonitor.dispenserspressure); + //free(DiagnosticsMonitor.dispensersmotorsfrequency); + if (SendChars(diagnosticscontainer_buffer, container_size) == false) //comm tx mailbox full + { + DiagnosticsStop(); + } } + else + { + LOG_ERROR(Task_self(),"malloc failed"); + } + DiagnosticsReset(); + } uint32_t DiagnosticsControlId = 0xff; uint32_t Diagnostics10MSControlId = 0xff; diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index 03cdea5e9..c40d018c3 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -240,6 +240,10 @@ uint32_t HeaterCommandRequestMessage(int HeaterId, bool OnOff, int Temperature) } else if ((HeaterState == HEATER_ON)&& (OnOff == HEATER_ON)) //set temperature { + if (HeaterPIDConfig[HeaterId].m_SetParam < HeaterCmd[HeaterId].targettemperatue) //#bug 221 + { + PrepareHeater(HeaterId,Temperature); //prepare the heaters control info + } HeaterPIDConfig[HeaterId].m_SetParam = HeaterCmd[HeaterId].targettemperatue; // if the heater is not on return (?). //set the target operation temperature diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c index 6203b40cc..6bd4e6f48 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c @@ -12,8 +12,6 @@ #include "Drivers/USB_Communication/USBCDCD.h" - - #include "Stub_Status.h" void Stub_CartridgeReadRequest(MessageContainer* requestContainer) |
