aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-08-23 11:39:25 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-08-23 11:39:25 +0300
commit44f71ccd29edeeb13621996659232fca4554faf1 (patch)
treec0dfb8941563806a3b3d32bdbaadb55007a905e8 /Software/Embedded_SW/Embedded/Modules
parent9f4fa3e0a6bafe27dd1e584838e45d61864a70fd (diff)
parentb92bebe3f84a5ef683e44decf1991359fb3a4e21 (diff)
downloadTango-44f71ccd29edeeb13621996659232fca4554faf1.tar.gz
Tango-44f71ccd29edeeb13621996659232fca4554faf1.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.c7
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c154
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.h1
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c14
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsJogging.c55
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c49
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Dispenser.c1
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_ExtFlash.c9
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_SpeedSensor.c1
10 files changed, 221 insertions, 72 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
index 8fc36b7f4..f9f075477 100644
--- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
+++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
@@ -361,6 +361,11 @@ uint32_t AlarmHandlingLoop(uint32_t tick)
case CurrentAlarm:
break;
case MotorAlarm:
+ if (isMotorConfigured(AlarmItem[Alarm_i].DeviceId) == false)
+ {
+ Status = false;
+ break;
+ }
value = MotorGetStatus(AlarmItem[Alarm_i].DeviceId);
if (value && AlarmItem[Alarm_i].AlarmValue) //
{
@@ -441,7 +446,7 @@ uint32_t AlarmHandlingLoop(uint32_t tick)
//machine cover open
if (tick%eOneSecond == 0)
-// SendEventNotifications();
+ SendEventNotifications();
return OK;
}
/******************************************************************************
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c
new file mode 100644
index 000000000..0f36a803b
--- /dev/null
+++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c
@@ -0,0 +1,154 @@
+/*
+ * DiagnosticActions.c
+ *
+ * Created on: Aug 20, 2018
+ * Author: shlomo
+ */
+#include <DataDef.h>
+#include "include.h"
+
+#include "diagnostics.h"
+#include <inc/hw_ints.h>
+#include <Container.h>
+
+#include <PMR/Diagnostics/SetComponentValueRequest.pb-c.h>
+#include <PMR/Diagnostics/SetComponentValueResponse.pb-c.h>
+
+#include <PMR/Diagnostics/SetDigitalOutRequest.pb-c.h>
+#include <PMR/Diagnostics/SetDigitalOutResponse.pb-c.h>
+
+#include "drivers/FPGA/FPGA_GPIO/FPGA_GPIO.h"
+#include "Drivers/I2C_Communication/DAC/blower.h"
+#include "drivers/Valves/Valve.h"
+
+typedef enum
+{
+ GPO_DILUTORPUMP_SSR10_CTRL,
+ GPO_WASTECH_PUMP2,
+ Midtank_1_Air,
+ Midtank_2_Air,
+ Midtank_3_Air,
+ Midtank_4_Air,
+ Midtank_5_Air,
+ Midtank_6_Air,
+ Midtank_7_Air,
+ Midtank_8_Air,
+ Midtank_1_Cartridge,
+ Midtank_2_Cartridge,
+ Midtank_3_Cartridge,
+ Midtank_4_Cartridge,
+ Midtank_5_Cartridge,
+ Midtank_6_Cartridge,
+ Midtank_7_Cartridge,
+ Midtank_8_Cartridge,
+ GPO_BUZZER,
+ GPO_LED1,
+ GPO_LED2,
+ GPO_LED3,
+ GPO_LED4,
+ GPO_TFEED_BREAK_1,
+ GPO_TFEED_BREAK_2,
+ GPO_SPARE1_1,
+ GPO_SPARE1_2,
+ GPO_SPARE2_1,
+ GPO_SPARE2_2,
+ GPO_BLOWER_PWM,
+ GPO_CHILLER_SSR9_CTRL,
+ GPO_WHS_WTANKPUMP2,
+ GPO_VALVE_WASTE_TANK,
+}DigitalOutputEnum;
+/********************************************************************************
+ *Blower Diagnostic
+ ********************************************************************************/
+uint32_t SetComponentValueRequestRequestFunc(MessageContainer* requestContainer)
+{
+ MessageContainer responseContainer;
+ uint8_t* container_buffer;
+ uint32_t status = 0;
+ uint32_t intvoltage;
+ SetComponentValueRequest* request = set_component_value_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+
+
+ SetComponentValueResponse response = SET_COMPONENT_VALUE_RESPONSE__INIT;
+
+ responseContainer = createContainer(MESSAGE_TYPE__SetComponentValueResponse, requestContainer->token, true, &response, &set_component_value_response__pack, &set_component_value_response__get_packed_size);
+ container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+
+
+ switch (request->component)
+ {
+ case VALUE_COMPONENT__BlowerVoltage:
+ blowervolatgedisplay = true;
+ voltage = request->value;
+ if (voltage == 0.0)
+ Turn_the_Blower_Off();
+ else
+ {
+ Turn_the_Blower_On();
+ intvoltage = voltage;
+ Control_Voltage_To_Blower(intvoltage);
+ }
+ break;
+ default:
+ break;
+ }
+
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ free(responseContainer.data.data);
+ SendChars(container_buffer, container_size);
+ //free(container_buffer);
+ //free(requestContainer);
+ set_component_value_request__free_unpacked(request,NULL);
+
+ return OK;
+}
+
+/********************************************************************************
+ *Set digital output Diagnostic
+ ********************************************************************************/
+uint32_t SetDigitalOutRequestRequestFunc(MessageContainer* requestContainer)
+{
+ MessageContainer responseContainer;
+ uint8_t* container_buffer;
+ uint32_t status = 0;
+ int portId;
+ SetDigitalOutRequest* request = set_digital_out_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+
+
+ SetDigitalOutResponse response = SET_DIGITAL_OUT_RESPONSE__INIT;
+
+ responseContainer = createContainer(MESSAGE_TYPE__SetDigitalOutResponse, requestContainer->token, true, &response, &set_digital_out_response__pack, &set_digital_out_response__get_packed_size);
+ container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+
+
+ if ((request->port >= Midtank_1_Air)&&(request->port >=Midtank_8_Air))
+ {
+ portId = (request->port - Midtank_1_Air) ; //0-7
+ Valve_Set((Valves_t) (portId+VALVE_2W_MID_AIR_LF), request->value ); //Atm_MidTank_OFF/ON
+ }
+ else if ((request->port >= Midtank_1_Cartridge)&&(request->port >=Midtank_8_Cartridge))
+ {
+ portId = (request->port - Midtank_1_Cartridge) ; //0-7
+ Valve_Set((Valves_t) (portId+VALVE_2W_CART_MID_LF), request->value ); //Cartridge_MidTank_OFF/ON
+ }
+ else
+ {
+ status = ERROR;
+ responseContainer.has_error = true;
+ responseContainer.error = ERROR_CODE__INVALID_DIGITAL_PIN_NUMBER;
+ }
+
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ free(responseContainer.data.data);
+ SendChars(container_buffer, container_size);
+ //free(container_buffer);
+ //free(requestContainer);
+ set_digital_out_request__free_unpacked(request,NULL);
+
+ return OK;
+}
+
+
+
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.h b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.h
index 82d267bd6..3fc0969f8 100644
--- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.h
+++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.h
@@ -34,6 +34,7 @@ uint32_t MotorAbortJoggingRequestFunc(MessageContainer* requestContainer);
uint32_t DispenserAbortJoggingRequestFunc(MessageContainer* requestContainer);
uint32_t SetComponentValueRequestRequestFunc(MessageContainer* requestContainer);
+uint32_t SetDigitalOutRequestRequestFunc(MessageContainer* requestContainer);
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c
index bb8da0b2e..af8932872 100644
--- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c
+++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c
@@ -59,11 +59,6 @@ FPGA_GPI_ENUM Motor_Id_to_LS_Id[NUM_OF_MOTORS] = {
MAX_GPI, //MOTO_RDRIVING = 22,
GPI_LS_RLOADRAM_UP, //MOTO_RLOADARM = 23,
GPI_LS_RLOADMOTOR_DOWN, //MOTO_RLOADING = 24,
- MAX_GPI, //MOTO_SPARE1_1 = 25,
- MAX_GPI, //MOTO_SPARE1_2 = 26,
- MAX_GPI, //MOTO_SPARE2_1 = 27,
- MAX_GPI, //MOTO_SPARE2_2 = 28
-
};
typedef enum {
MotorHomingDirectionUp,
@@ -97,11 +92,6 @@ MotorHomingDirectionEnum Motor_Id_to_LS_Direction[NUM_OF_MOTORS] = {
MotorHomingDirectionNoHoming, //MOTO_RDRIVING = 22,
MotorHomingDirectionUp, //MOTO_RLOADARM = 23,
MotorHomingDirectionDown, //MOTO_RLOADING = 24,
- MotorHomingDirectionNoHoming, //MOTO_SPARE1_1 = 25,
- MotorHomingDirectionNoHoming, //MOTO_SPARE1_2 = 26,
- MotorHomingDirectionNoHoming, //MOTO_SPARE2_1 = 27,
- MotorHomingDirectionNoHoming, //MOTO_SPARE2_2 = 28
-
};
char HomingToken[NUM_OF_MOTORS][36+1]={0};
@@ -138,7 +128,7 @@ uint32_t MotorHomingRequestFunc(MessageContainer* requestContainer)
if (speed == 0) speed = 150;
if (MotorId <= NUM_OF_MOTORS)
{
- if (JobIsActive() == false)
+ if ((JobIsActive() == false)&&(isMotorConfigured(MotorId) == true))
{
if ( Motor_Id_to_LS_Id[MotorId] != MAX_GPI)
{
@@ -230,7 +220,7 @@ uint32_t DispenserHomingRequestFunc(MessageContainer* requestContainer)
//free (container_buffer);
if (MotorId <= NUM_OF_MOTORS)
{
- if (JobIsActive() == false)
+ if ((JobIsActive() == false)&&(isMotorConfigured(MotorId) == true))
{
if ( Motor_Id_to_LS_Id[MotorId] != MAX_GPI)
{
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsJogging.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsJogging.c
index cf341b9a9..32e76cbde 100644
--- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsJogging.c
+++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsJogging.c
@@ -32,13 +32,9 @@
#include <PMR/Diagnostics/MotorAbortJoggingRequest.pb-c.h>
#include <PMR/Diagnostics/MotorAbortJoggingResponse.pb-c.h>
-#include <PMR/Diagnostics/SetComponentValueRequest.pb-c.h>
-#include <PMR/Diagnostics/SetComponentValueResponse.pb-c.h>
-
#include "drivers/FPGA/FPGA_GPIO/FPGA_GPIO.h"
#include "drivers/Motors/Motor.h"
#include "drivers/Valves/Valve.h"
-#include "Drivers/I2C_Communication/DAC/blower.h"
#include "StateMachines/Printing/PrintingSTM.h"
@@ -63,7 +59,7 @@ uint32_t MotorJoggingRequestFunc(MessageContainer* requestContainer)
if (MotorId <= NUM_OF_MOTORS)
{
- if (JobIsActive() == false)
+ if ((JobIsActive() == false)&&(isMotorConfigured(MotorId) == true))
{
{
switch (request->direction)
@@ -149,7 +145,7 @@ uint32_t DispenserJoggingRequestFunc(MessageContainer* requestContainer)
if (MotorId <= NUM_OF_MOTORS)
{
- if (JobIsActive() == false)
+ if ((JobIsActive() == false)&&(isMotorConfigured(MotorId) == true))
{
switch (request->direction)
{
@@ -212,51 +208,4 @@ uint32_t DispenserAbortJoggingRequestFunc(MessageContainer* requestContainer)
return OK;
}
-/********************************************************************************
- *Blower Diagnostic
- ********************************************************************************/
-uint32_t SetComponentValueRequestRequestFunc(MessageContainer* requestContainer)
-{
- MessageContainer responseContainer;
- uint8_t* container_buffer;
- uint32_t status = 0;
- uint32_t intvoltage;
- SetComponentValueRequest* request = set_component_value_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
-
-
-
- SetComponentValueResponse response = SET_COMPONENT_VALUE_RESPONSE__INIT;
-
- responseContainer = createContainer(MESSAGE_TYPE__SetComponentValueResponse, requestContainer->token, true, &response, &set_component_value_response__pack, &set_component_value_response__get_packed_size);
- container_buffer = malloc(message_container__get_packed_size(&responseContainer));
-
-
- switch (request->component)
- {
- case VALUE_COMPONENT__BlowerVoltage:
- blowervolatgedisplay = true;
- voltage = request->value;
- if (voltage == 0.0)
- Turn_the_Blower_Off();
- else
- {
- Turn_the_Blower_On();
- intvoltage = voltage;
- Control_Voltage_To_Blower(intvoltage);
- }
- break;
- default:
- break;
- }
-
- size_t container_size = message_container__pack(&responseContainer, container_buffer);
- free(responseContainer.data.data);
- SendChars(container_buffer, container_size);
- //free(container_buffer);
- //free(requestContainer);
- set_component_value_request__free_unpacked(request,NULL);
-
- return OK;
-}
-
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c
index 185d4ac66..b035ff97b 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c
@@ -69,6 +69,8 @@ float CalculateDispenserPressure (int DispenserId)
//DispenserPressure[DispenserId] *=10000000; //uBar;
//DispenserPressure[DispenserId] *=145.0377; //PSI;
+ DispenserPressure[DispenserId] *= 10; //MPascal -> Bar
+
return(DispenserPressure[DispenserId]);
}
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 581a27f1f..68b79edeb 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c
@@ -12,7 +12,7 @@
#include "Drivers/USB_Communication/USBCDCD.h"
-
+//#include "drivers/twine_graphicslib/graphics_adapter.h"
#include "Stub_Status.h"
@@ -25,6 +25,20 @@ void Stub_CartridgeReadRequest(MessageContainer* requestContainer)
//request->cartridgeid
+ //writeLine("cartridge Request: ");
+
+ //writeFloat(request->cartridgeid);
+
+ /*
+ int i;
+ for( i=0;i<8;i++)
+ {
+ Read_MidTank_Pressure_Sensor(i);
+ SysCtlDelay(1);
+ }
+
+ */
+
StubCartridgeReadResponse response = STUB_CARTRIDGE_READ_RESPONSE__INIT;
response.cartridgeid = request->cartridgeid;
@@ -43,8 +57,20 @@ void Stub_CartridgeReadRequest(MessageContainer* requestContainer)
response.has_cartridgeused = false;
status_response(status,&response.status, &response.statusword ,&response.has_statusword);
+/*
+ writeLine("Sending Response: ");
-
+ writeFloat(response.cartridgeid);
+ writeString(", ");
+ writeFloat(response.cartridgecolor);
+ writeString(", ");
+ writeFloat(response.cartridgeversion);
+ writeString(", ");
+ writeFloat(response.cartridgedata);
+ writeString(", ");
+ writeFloat(response.cartridgeused);
+ writeString(", ");
+*/
Write_status_response(status);
responseContainer = createContainer(MESSAGE_TYPE__StubCartridgeReadResponse, requestContainer->token, true, &response, &stub_cartridge_read_response__pack, &stub_cartridge_read_response__get_packed_size);
@@ -71,8 +97,19 @@ void Stub_CartridgeWriteRequest(MessageContainer* requestContainer)
//request->cartridgeversion
//request->cartridgedata
//request->cartridgeused
+/*
+ writeLine("Cartridge Request: ");
-
+ writeFloat(request->cartridgeid);
+ writeString(", ");
+ writeFloat(request->cartridgecolor);
+ writeString(", ");
+ writeFloat(request->cartridgeversion);
+ writeString(", ");
+ writeFloat(request->cartridgedata);
+ writeString(", ");
+ writeFloat(request->cartridgeused);
+*/
StubCartridgeWriteResponse response = STUB_CARTRIDGE_WRITE_RESPONSE__INIT;
response.cartridgeid = request->cartridgeid;
@@ -83,7 +120,13 @@ void Stub_CartridgeWriteRequest(MessageContainer* requestContainer)
// response.statusword = OK;
// response.has_statusword = true;
status_response(status,&response.status, &response.statusword ,&response.has_statusword);
+/*
+ writeLine("Sending Response: ");
+ writeFloat(response.cartridgeid);
+ writeString(", ");*/
+// writeFloat(response.statusword);
+// WRITELINESTATUS;
Write_status_response(status);
responseContainer = createContainer(MESSAGE_TYPE__StubCartridgeWriteResponse, requestContainer->token, true, &response, &stub_cartridge_write_response__pack, &stub_cartridge_write_response__get_packed_size);
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Dispenser.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Dispenser.c
index 0bcc9f7c9..7c0a4c980 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Dispenser.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Dispenser.c
@@ -9,6 +9,7 @@
#include "Drivers/USB_Communication/USBCDCD.h"
#include "drivers/adc_sampling/adc.h"
+#include "modules/ids/ids_ex.h"
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_ExtFlash.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_ExtFlash.c
index f478e9428..51c92ed8c 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_ExtFlash.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_ExtFlash.c
@@ -300,10 +300,10 @@ void Stub_ExtFlashWriteWordsRequest(MessageContainer* requestContainer)
StubExtFlashWriteWordsResponse response = STUB_EXT_FLASH_WRITE_WORDS_RESPONSE__INIT;
- response.address = 0;// alwayes send sddress 0
- response.has_address = true;
+ uint32_t Current_Start_address = ExtFlashWriteBuf(/*0,*/request->n_wordtwrite, request->wordtwrite);// alwayes send sddress 0
- uint32_t Address = ExtFlashWriteBuf(0,request->n_wordtwrite, request->wordtwrite);// alwayes send sddress 0
+ response.address = Current_Start_address;
+ response.has_address = true;
status_response(status,&response.status, &response.statusword ,&response.has_statusword);
@@ -331,6 +331,9 @@ void Stub_ExtFlashReadWordsRequest(MessageContainer* requestContainer)
response.readbytes = ExtFlashReadBuf(request->address,request->number_of_words);
response.n_readbytes = request->number_of_words;
+ response.address = request->address;
+ response.has_address = true;
+
status_response(status,&response.status, &response.statusword ,&response.has_statusword);
responseContainer = createContainer(MESSAGE_TYPE__StubExtFlashReadWordsResponse, requestContainer->token, true, &response, &stub_ext_flash_read_words_response__pack, &stub_ext_flash_read_words_response__get_packed_size);
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_SpeedSensor.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_SpeedSensor.c
index a433be2ce..eea594817 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_SpeedSensor.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_SpeedSensor.c
@@ -34,6 +34,7 @@
#include "drivers/SPI/SPI_Comm.h"
#include "drivers/FPGA/FPGA_SSI_Comm.h"
#include "Modules/Thread/Thread_ex.h"
+#include <Drivers/SSI_Comm/Speed_Sensor/Speed_Sensor.h>
#include "Modules/thread/thread.h"