aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-06-18 16:52:16 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-06-18 16:52:16 +0300
commit2baa6b0a84284804c699c48b0bbbde85cd8d3975 (patch)
treed2b789c59521c2a7e7fe331c9ebb9b58a1e9da68 /Software/Embedded_SW/Embedded/Modules
parent054debe0f90ef6312f669963c2c62810fc766a8d (diff)
parent0bd5bb08169bf0c72dc686b48b12499f61122958 (diff)
downloadTango-2baa6b0a84284804c699c48b0bbbde85cd8d3975.tar.gz
Tango-2baa6b0a84284804c699c48b0bbbde85cd8d3975.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.c94
-rw-r--r--Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c1
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c1
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_ReadEmbeddedVersion.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c5
8 files changed, 103 insertions, 8 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
index 5ec7c6b16..e8779d265 100644
--- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
+++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
@@ -23,6 +23,14 @@
#include "drivers/FPGA/FPGA.h"
#include "modules/thread/thread_ex.h"
+#include <PMR/Diagnostics/StartDiagnosticsRequest.pb-c.h>
+#include <PMR/Diagnostics/StartDiagnosticsResponse.pb-c.h>
+#include <PMR/Diagnostics/StopDiagnosticsRequest.pb-c.h>
+#include <PMR/Diagnostics/StopDiagnosticsResponse.pb-c.h>
+
+char DiagnosticsToken[36] = {0};
+bool DiagnosticsActive = false;
+
Task_Handle AlarmHandling_Task_Handle;
Mailbox_Handle AlarmHandlingMsgQ = NULL;
@@ -33,6 +41,7 @@ Mailbox_Handle AlarmHandlingMsgQ = NULL;
typedef enum
{
AlarmHandlingTrigger,
+ AlarmHandlingSendDiagnostics
}AlarmHandlingMessages;
typedef struct AlarmHandlingMessage{
@@ -44,6 +53,42 @@ typedef struct AlarmHandlingMessage{
/******************** CODE ********************************************/
//**********************************************************************
+uint32_t StartDiagnosticsRequestFunc(MessageContainer* requestContainer)
+{
+ uint32_t status = NOT_SUPPORTED;
+ //MessageContainer responseContainer;
+
+// ReportInitParams InitParams;
+
+ StartDiagnosticsRequest* request = start_diagnostics_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+ strcpy (DiagnosticsToken, requestContainer->token);
+ DiagnosticsActive = true;
+
+ start_diagnostics_request__free_unpacked(request,NULL);
+ return status;
+}
+uint32_t StopDiagnosticsRequestFunc(MessageContainer* requestContainer)
+{
+
+ MessageContainer responseContainer;
+
+ StopDiagnosticsRequest* request = stop_diagnostics_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+ StopDiagnosticsResponse response = STOP_DIAGNOSTICS_RESPONSE__INIT;
+
+ DiagnosticsActive = 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));
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ free(responseContainer.data.data);
+ //USBCDCD_sendData(container_buffer, container_size,10);
+ SendChars(container_buffer, container_size);
+ //free (container_buffer);
+
+return OK;
+}
void AlarmHandlingInit(void)
{
@@ -72,11 +117,58 @@ void AlarmHandlingIterate(UArg arg0)
return ;
}
+void AlarmHandler_SendDiagnostics(void)
+{
+ 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 ;
+}
uint32_t AlarmHandlingLoop(uint32_t tick)
{
return OK;
}
+void SendDiagnostics(void)
+{
+ MessageContainer responseContainer;
+
+ StartDiagnosticsResponse response = START_DIAGNOSTICS_RESPONSE__INIT;
+
+ if (DiagnosticsActive == false)
+ return;
+
+ /*DiagnosticsMonitors *monitors;
+ size_t n_digitalpins;
+ DigitalPin **digitalpins;
+ extern bool FPGA_Gpi_Buf[MAX_GPI];
+
+void Read_FPGA_GPI_Rgisters();
+bool FPGA_Read_limit_Switches(FPGA_GPI_ENUM Limit_Switch);
+
+ size_t n_componentsstates;
+ ValueComponentState **componentsstates;
+ size_t n_events;
+ Event **events;*/
+
+
+ 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);
+ //USBCDCD_sendData(container_buffer, container_size,10);
+// SendChars(container_buffer, container_size);
+ //free (container_buffer);
+
+}
/******************************************************************************
* ======== messageTsk ========
* Task for this function is created statically. See the project's .cfg file.
@@ -99,6 +191,8 @@ void AlarmHandlingTask(UArg arg0, UArg arg1)
case AlarmHandlingTrigger:
AlarmHandlingLoop(Message.tick);
break;
+ case AlarmHandlingSendDiagnostics:
+ SendDiagnostics();
default:
break;
}
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h
index c5eb88660..9e1be07e2 100644
--- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h
+++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h
@@ -9,7 +9,7 @@
#define MODULES_ALARMHANDLING_ALARMHANDLING_H_
-
+void AlarmHandler_SendDiagnostics(void);
#endif /* MODULES_ALARMHANDLING_ALARMHANDLING_H_ */
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
index 312f970d6..67de0271f 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
+++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
@@ -16,6 +16,7 @@
///////////////////////////////////////////////////////////////////////////////////////////
#include "include.h"
#include "Modules/General/GeneralHardware.h"
+#include "Modules/AlarmHandling/AlarmHandling.h"
#include "MillisecTask.h"
#include <driverlib/timer.h>
@@ -342,6 +343,7 @@ uint32_t MillisecLoop(uint32_t tick)
{
for (Sensor_i = 0;Sensor_i < MAX_TEMPERATURE_SENSOR_ID;Sensor_i++)
MillisecReadFromTempSensor(Sensor_i, NULL);
+ AlarmHandler_SendDiagnostics();
}
if (O900Millisecond_Tick)
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c
index ff9b92ae0..b988e6238 100644
--- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c
+++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c
@@ -21,7 +21,6 @@
#include "include.h"
#include <driverlib/timer.h>
#include <DataDef.h>
-
#include "heaters_ex.h"
#include "heaters.h"
#include "Drivers/Heater/Heater.h"
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c
index fbfb0ed85..ed4d44491 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c
@@ -16,7 +16,6 @@
#include <Container.h>
#include <DataDef.h>
-
#include <PMR/Stubs/StubRealTimeUsageResponse.pb-c.h>
#include <PMR/Stubs/StubRealTimeUsageRequest.pb-c.h>
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 cef0e1270..ff545b516 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c
@@ -200,7 +200,7 @@ void Stub_MotorRunRequest(MessageContainer* requestContainer)
StubMotorRunRequest* request = stub_motor_run_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
float temp = (float)request->speed;
- Run_Value = SpdCalc(temp);
+ Run_Value = /*SpdCalc*/(temp);
Direction = request->direction;
#ifdef EVALUATION_BOARD
//SPI_Control(SKIP_INIT);
@@ -214,7 +214,7 @@ void Stub_MotorRunRequest(MessageContainer* requestContainer)
#else
TimerMotors_t Motor_Id = (TimerMotors_t)request->motor_id; //to remove warning
- FPGA_GetBusy();
+ //FPGA_GetBusy();
MotorSetDirection(Motor_Id,Direction);
MotorSetSpeed(Motor_Id, Run_Value);
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_ReadEmbeddedVersion.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_ReadEmbeddedVersion.c
index b357155ce..c10afb070 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_ReadEmbeddedVersion.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_ReadEmbeddedVersion.c
@@ -7,6 +7,7 @@
#include <Container.h>
#include <DataDef.h>
+#include <DataDef.h>
#include <PMR/Stubs/StubReadEmbeddedVersionResponse.pb-c.h>
#include <PMR/Stubs/StubReadEmbeddedVersionRequest.pb-c.h>
@@ -29,7 +30,6 @@
#include "Common/SW_Info/SW_Info.h"
-#include "DataDef.h"
void Stub_ReadEmbeddedVersionRequest(MessageContainer* requestContainer)
{
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
index e99d3df0b..3505ff3c6 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
@@ -111,7 +111,7 @@ uint32_t ScrewDirectionChange(uint32_t deviceID, uint32_t BusyFlag)
if (BusyfirstCall)
{
BusyfirstCall = false;
- return;
+ return OK;
}
//ScrewCurrentDirection: false moves out, true moves home
if (BusyFlag == NOTBUSY)
@@ -182,7 +182,8 @@ uint32_t Winder_End(void)
{
//stop screw
ScrewNumberOfSteps = 0;
- RemoveControlCallback(ScrewControlId,ScrewDirectionChange);
+ if (ScrewControlId != 0xFF)
+ RemoveControlCallback(ScrewControlId,ScrewDirectionChange);
return MotorStop (HARDWARE_MOTOR_TYPE__MOTO_SCREW,Hard_Hiz);
}
void Winder_ScrewHomeLimitSwitchInterrupt(void)