diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-07-01 10:31:46 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-07-01 10:31:46 +0300 |
| commit | 125af20c03bcf1904166e9858a3a54ef4fcb1f05 (patch) | |
| tree | 03b22056b7d4baf13cc41ed55528e88fb434a772 /Software/Embedded_SW/Embedded/Modules | |
| parent | e13f06f24805b3f7367717183be9bdd9a8d88c97 (diff) | |
| parent | be014619f075a3ff76e03487014212234955f322 (diff) | |
| download | Tango-125af20c03bcf1904166e9858a3a54ef4fcb1f05.tar.gz Tango-125af20c03bcf1904166e9858a3a54ef4fcb1f05.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/AlarmHandling/AlarmHandling.c | 20 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h | 11 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/AlarmHandling/Diagnostics.c (renamed from Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandlingDiagnostics.c) | 123 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/AlarmHandling/Diagnostics.h | 23 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/General/process.c | 11 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c | 2 |
6 files changed, 144 insertions, 46 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c index 433f6210f..f9e9c391d 100644 --- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c +++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c @@ -41,7 +41,6 @@ Mailbox_Handle AlarmHandlingMsgQ = NULL; typedef enum { AlarmHandlingTrigger, - AlarmHandlingSendDiagnostics }AlarmHandlingMessages; typedef struct AlarmHandlingMessage{ @@ -60,9 +59,6 @@ void AlarmHandlingInit(void) AlarmHandlingMsgQ = Mailbox_create(sizeof(AlarmHandlingMessageStruc), 20, NULL,&eb); - - //memset(AlarmHandlingDatalog,0,sizeof(uint32_t)*MAX_TANGO_CONTROL_DEVICES); - return; } void AlarmHandlingIterate(UArg arg0) @@ -79,20 +75,6 @@ void AlarmHandlingIterate(UArg arg0) return ; } -uint32_t AlarmHandler_SendDiagnostics(uint32_t IfIndex, uint32_t ReadValue) -{ - AlarmHandlingMessageStruc Message; - - //send message to the Millisec task - Message.messageId = AlarmHandlingSendDiagnostics; - Message.tick = UsersysTickGet(); - Message.msglen = sizeof(AlarmHandlingMessageStruc); - if (AlarmHandlingMsgQ != NULL) - Mailbox_post(AlarmHandlingMsgQ , &Message, BIOS_NO_WAIT); - - - return OK; -} /*typedef enum _EventType { EVENT_TYPE__ThreadBreak = 0, EVENT_TYPE__ThreadTensionControlFailure = 1, @@ -199,8 +181,6 @@ void AlarmHandlingTask(UArg arg0, UArg arg1) case AlarmHandlingTrigger: AlarmHandlingLoop(Message.tick); break; - case AlarmHandlingSendDiagnostics: - DiagnosticCollection(); default: break; } diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h index 31adcd328..d14d2c717 100644 --- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h +++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h @@ -9,15 +9,4 @@ #define MODULES_ALARMHANDLING_ALARMHANDLING_H_ -//void AlarmHandler_SendDiagnostics(void); - -extern char DiagnosticsToken[36]; -uint32_t AlarmHandler_SendDiagnostics(uint32_t IfIndex, uint32_t ReadValue); - -uint32_t StartDiagnosticsRequestFunc(MessageContainer* requestContainer); -uint32_t StopDiagnosticsRequestFunc(MessageContainer* requestContainer); -void SendDiagnostics(void); -void DiagnosticsReset(void); -void DiagnosticCollection(void); - #endif /* MODULES_ALARMHANDLING_ALARMHANDLING_H_ */ diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandlingDiagnostics.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/Diagnostics.c index 3b5e1cf52..295292dfe 100644 --- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandlingDiagnostics.c +++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/Diagnostics.c @@ -36,14 +36,14 @@ char DiagnosticsToken[36] = {0}; bool DiagnosticsActive = false; +void SendDiagnostics(void); +uint32_t Diagnostics_ControlTrigger(uint32_t IfIndex, uint32_t ReadValue); -/******************** CODE ********************************************/ -//********************************************************************** #define DIAGNOSTICS_LIMIT 10 int DiagnosticsIndex = 0; int DiagnosticCollectionLimit = 3; //number of data samples to collect before sending to the host -int DiagnosticLimit = eTenMillisecond; //frequency of data collection +int DiagnosticLimit = eHunderdMillisecond; //frequency of data collection //DigitalPin DigitalPinArray[1][DIAGNOSTICS_LIMIT]; double dancer1angle[DIAGNOSTICS_LIMIT]; double dancer2angle[DIAGNOSTICS_LIMIT]; @@ -73,6 +73,39 @@ double dispenser6motorfrequency[DIAGNOSTICS_LIMIT]; double dispenser7motorfrequency[DIAGNOSTICS_LIMIT]; double dispenser8motorfrequency[DIAGNOSTICS_LIMIT]; +Task_Handle Diagnostics_Task_Handle; +Mailbox_Handle DiagnosticsMsgQ = NULL; + +/******************** Functions ********************************************/ +//uint32_t Control_Delta_Position_Pass(uint32_t Current_Read,uint32_t Previous_Read); +//********************************************************************** +typedef enum +{ + DiagnosticsTrigger, +}DiagnosticsMessages; + +typedef struct DiagnosticsMessage{ + uint16_t messageId; + uint16_t msglen; + uint32_t tick; + uint8_t messageData[20]; +}DiagnosticsMessageStruc; + +/******************** CODE ********************************************/ +//********************************************************************** + +void DiagnosticsInit(void) +{ + Error_Block eb; + + Error_init(&eb); + + DiagnosticsMsgQ = Mailbox_create(sizeof(DiagnosticsMessageStruc), 20, NULL,&eb); + + return; +} + + void DiagnosticCollection(void) { int i; @@ -215,26 +248,46 @@ void SendDiagnostics(void) } -uint32_t AlarmHandlingControlId = 0xff; -uint32_t AlarmHandlingEmptyCBFunction(uint32_t IfIndex, uint32_t ReadValue) +uint32_t DiagnosticsControlId = 0xff; +bool DiagnosticRequestAccepted = false; +uint32_t DiagnosticsEmptyCBFunction(uint32_t IfIndex, uint32_t ReadValue) { return OK; } - +uint32_t DiagnosticsStart() +{ + if ( DiagnosticsActive == false) + { + if (DiagnosticRequestAccepted == true) + { + DiagnosticsActive = true; + DiagnosticsControlId = AddControlCallback(Diagnostics_ControlTrigger,DiagnosticLimit,DiagnosticsEmptyCBFunction,0,0,0); + } + } +} +uint32_t DiagnosticsStop() +{ + if ( DiagnosticsActive == true) + { + DiagnosticsActive = false; + if (DiagnosticsControlId != 0xFF) + RemoveControlCallback(DiagnosticsControlId,Diagnostics_ControlTrigger); + DiagnosticsControlId = 0xFF; + } +} uint32_t StartDiagnosticsRequestFunc(MessageContainer* requestContainer) { uint32_t status = NOT_SUPPORTED; //MessageContainer responseContainer; // ReportInitParams InitParams; + //ControlStart(); + DiagnosticRequestAccepted = true; +#warning test only - shoud be started and stopped with job execution + DiagnosticsStart(); StartDiagnosticsRequest* request = start_diagnostics_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); strcpy (DiagnosticsToken, requestContainer->token); - if ( DiagnosticsActive == false) - { - DiagnosticsActive = true; - AlarmHandlingControlId = AddControlCallback(AlarmHandler_SendDiagnostics,DiagnosticLimit,AlarmHandlingEmptyCBFunction,0,0,0); - } start_diagnostics_request__free_unpacked(request,NULL); return status; } @@ -247,9 +300,10 @@ uint32_t StopDiagnosticsRequestFunc(MessageContainer* requestContainer) StopDiagnosticsResponse response = STOP_DIAGNOSTICS_RESPONSE__INIT; - DiagnosticsActive = false; - RemoveControlCallback(AlarmHandlingControlId,AlarmHandler_SendDiagnostics); - AlarmHandlingControlId = 0xFF; + DiagnosticsStop(); + + DiagnosticRequestAccepted = false; + responseContainer = createContainer(MESSAGE_TYPE__StopDiagnosticsResponse, requestContainer->token, false, &response, &stop_diagnostics_response__pack, &stop_diagnostics_response__get_packed_size); responseContainer.continuous = false; uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer)); @@ -261,5 +315,46 @@ uint32_t StopDiagnosticsRequestFunc(MessageContainer* requestContainer) return OK; } +uint32_t Diagnostics_ControlTrigger(uint32_t IfIndex, uint32_t ReadValue) +{ + DiagnosticsMessageStruc Message; + + //send message to the Millisec task + Message.messageId = DiagnosticsTrigger; +// Message.tick = UsersysTickGet(); + Message.msglen = sizeof(DiagnosticsMessageStruc); + if (DiagnosticsMsgQ != NULL) + Mailbox_post(DiagnosticsMsgQ , &Message, BIOS_NO_WAIT); + + + return OK; +} +/****************************************************************************** + * ======== messageTsk ======== + * Task for this function is created statically. See the project's .cfg file. + * this message task is created statically in system initialization, + ******************************************************************************/ +void DiagnosticsTask(UArg arg0, UArg arg1) +{ + DiagnosticsMessageStruc Message; + //char str[60]; + //uint16_t length; + //Clock_setTimeout(HostKAClock, 1000); + //Clock_start(HostKAClock); + DiagnosticsInit(); + Diagnostics_Task_Handle = Task_self(); + while(1) + { + Mailbox_pend(DiagnosticsMsgQ , &Message, BIOS_WAIT_FOREVER); + switch (Message.messageId) + { + case DiagnosticsTrigger: + DiagnosticCollection(); + break; + default: + break; + } + } +} diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/Diagnostics.h b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/Diagnostics.h new file mode 100644 index 000000000..d25b8f7fe --- /dev/null +++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/Diagnostics.h @@ -0,0 +1,23 @@ +/* + * Diagnostics.h + * + * Created on: 28 June 2018 + * Author: shlomo + */ + +#ifndef MODULES_ALARMHANDLING_DIAGNOSTICS_H_ +#define MODULES_ALARMHANDLING_DIAGNOSTICS_H_ + +uint32_t StartDiagnosticsRequestFunc(MessageContainer* requestContainer); +uint32_t StopDiagnosticsRequestFunc(MessageContainer* requestContainer); + +uint32_t DiagnosticsStart(); +uint32_t DiagnosticsStop(); + +void DiagnosticsReset(void); +void DiagnosticCollection(void); + + + + +#endif /* MODULES_ALARMHANDLING_DIAGNOSTICS_H_ */ diff --git a/Software/Embedded_SW/Embedded/Modules/General/process.c b/Software/Embedded_SW/Embedded/Modules/General/process.c index b407bcd82..41af277a8 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/process.c +++ b/Software/Embedded_SW/Embedded/Modules/General/process.c @@ -74,6 +74,17 @@ uint32_t HandleProcessParameters(ProcessParameters* ProcessParams) HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ3, false, ProcessParams->headzone3temp); } + if (ProcessParams->has_headzone4temp) + { + if (ProcessParams->headzone4temp) + status |= HeaterCommandRequestMessage( + HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ4, true, + ProcessParams->headzone4temp); + else + status |= HeaterCommandRequestMessage( + HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ4, false, + ProcessParams->headzone4temp); + } if (ProcessParams->has_dryerzone1temp) { if (ProcessParams->dryerzone1temp) diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c index 81f147039..f43078894 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c @@ -280,7 +280,6 @@ void Stub_MotorRunRequest(MessageContainer* requestContainer) void Stub_MotorStopRequest(MessageContainer* requestContainer) { - //uint32_t read_status; //uint32_t status = FAILED; MessageContainer responseContainer; @@ -291,6 +290,7 @@ void Stub_MotorStopRequest(MessageContainer* requestContainer) Stop_Command = (STOP_TYPE_ENUM)request->stop_cmd; #ifdef EVALUATION_BOARD + uint32_t read_status; //SPI_Control(SKIP_INIT); Mot_Stop(); |
