aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-07-01 10:31:46 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-07-01 10:31:46 +0300
commit125af20c03bcf1904166e9858a3a54ef4fcb1f05 (patch)
tree03b22056b7d4baf13cc41ed55528e88fb434a772 /Software/Embedded_SW/Embedded/Modules
parente13f06f24805b3f7367717183be9bdd9a8d88c97 (diff)
parentbe014619f075a3ff76e03487014212234955f322 (diff)
downloadTango-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.c20
-rw-r--r--Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h11
-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.h23
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/process.c11
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c2
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();