aboutsummaryrefslogtreecommitdiffstats
path: root/Software
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-09-04 17:01:26 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-09-04 17:01:26 +0300
commitcbe023d4bf6a1556deee770db4f6a7d1d2fa3af4 (patch)
tree63cfb6e87bef05691972ec0049657913585a5b36 /Software
parent76796ca52a69cfce922be253d6e9207ccbfd09a7 (diff)
parent5c32437dfa8b29a081588eae7a0874ae1be0aed8 (diff)
downloadTango-cbe023d4bf6a1556deee770db4f6a7d1d2fa3af4.tar.gz
Tango-cbe023d4bf6a1556deee770db4f6a7d1d2fa3af4.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software')
-rw-r--r--Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c2
-rw-r--r--Software/Embedded_SW/Embedded/Common/report/reportInit.c16
-rw-r--r--Software/Embedded_SW/Embedded/Communication/CommunicationTask.c9
-rw-r--r--Software/Embedded_SW/Embedded/Communication/Connection.c31
-rw-r--r--Software/Embedded_SW/Embedded/Communication/Container.c8
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Connection/DeviceInformation.pb-c.c71
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Connection/DeviceInformation.pb-c.h7
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/DigitalInterfaceState.pb-c.c105
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/DigitalInterfaceState.pb-c.h75
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/InterfaceIOs.pb-c.c727
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/InterfaceIOs.pb-c.h388
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/SetDigitalOutRequest.pb-c.c12
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/SetDigitalOutRequest.pb-c.h7
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/StartDiagnosticsResponse.pb-c.c10
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/StartDiagnosticsResponse.pb-c.h6
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_Comm.h46
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c16
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.h16
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/USB_Communication/USBCDCD.c4
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c67
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Valves/Valve.h43
-rw-r--r--Software/Embedded_SW/Embedded/Embedded.cfg2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c6
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c166
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c66
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c21
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c5
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_ex.h4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c93
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c5
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_HW_Version.c6
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_HW_Version.h1
-rw-r--r--Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c11
33 files changed, 1833 insertions, 219 deletions
diff --git a/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c b/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c
index 10b496573..ce70466c4 100644
--- a/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c
+++ b/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c
@@ -20,7 +20,7 @@ typedef struct
} TangoVersion_t;
-TangoVersion_t _gTangoVersion = {001,000,000,001};
+TangoVersion_t _gTangoVersion = {001,000,002,004};
#define BUILD_DATE __DATE__
char Dat[50] = BUILD_DATE;
char _gTangoName [MAX_STRING_LEN] = "Tango01 ";//d
diff --git a/Software/Embedded_SW/Embedded/Common/report/reportInit.c b/Software/Embedded_SW/Embedded/Common/report/reportInit.c
index e7f08e0e5..bb44de929 100644
--- a/Software/Embedded_SW/Embedded/Common/report/reportInit.c
+++ b/Software/Embedded_SW/Embedded/Common/report/reportInit.c
@@ -106,12 +106,16 @@ int ReportResponseFunc(char *message, /* The formatted message
response.message = message;
responseContainer = createContainer(MESSAGE_TYPE__StartDebugLogResponse, protobufToken, false, &response, &start_debug_log_response__pack, &start_debug_log_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);
+ if (responseContainer.data.data)
+ {
+ uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+ if (container_buffer)
+ {
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ SendChars(container_buffer, container_size);
+ }
+ free(responseContainer.data.data);
+ }
return OK;
diff --git a/Software/Embedded_SW/Embedded/Communication/CommunicationTask.c b/Software/Embedded_SW/Embedded/Communication/CommunicationTask.c
index b0b5115a2..9492876a2 100644
--- a/Software/Embedded_SW/Embedded/Communication/CommunicationTask.c
+++ b/Software/Embedded_SW/Embedded/Communication/CommunicationTask.c
@@ -31,11 +31,12 @@ struct serialBuffer {
size_t used;
size_t size;
} typedef SerialBuffer;
-#define SHORT_BUFFER_SIZE 100
-char CommRxBuffer[COMM_MAX_BUFFER_SIZE];
+#define SHORT_BUFFER_SIZE 200
char CommShortRxBuffer[10][SHORT_BUFFER_SIZE];
+char CommRxBuffer[COMM_MAX_BUFFER_SIZE];
+char DuplicateRxBuffer[2][2100];
SerialBuffer inBuffer[11];
-bool SerialBufferUsed[11] = {false,false,false,false,false,false,false,false,false,false,false,false};
+bool SerialBufferUsed[11] = {false,false,false,false,false,false,false,false,false,false,false};
uint32_t initArray(size_t initialSize)
{
if (initialSize >= COMM_MAX_BUFFER_SIZE) return 0;
@@ -66,7 +67,7 @@ uint32_t initArray(size_t initialSize)
else
{
SerialBufferUsed[i] = true;
- inBuffer[i].buffer = CommRxBuffer;
+ inBuffer[i].buffer = &CommShortRxBuffer[i];
inBuffer[i].used = 0;
inBuffer[i].size = initialSize;
return i;
diff --git a/Software/Embedded_SW/Embedded/Communication/Connection.c b/Software/Embedded_SW/Embedded/Communication/Connection.c
index 579b429ee..b01750529 100644
--- a/Software/Embedded_SW/Embedded/Communication/Connection.c
+++ b/Software/Embedded_SW/Embedded/Communication/Connection.c
@@ -18,12 +18,14 @@
#include "Common/SW_Info/SW_Info.h"
#include "Common/report/report.h"
#include <utils/ustdlib.h>
+#include "drivers/FPGA/FPGA.h"
#include "StateMachines/Printing/PrintingSTM.h"
#include "Modules/heaters/heaters_ex.h"
#include "modules/Diagnostics/Diagnostics.h"
#include "Modules/AlarmHandling/AlarmHandling.h"
+#include "Modules/Stubs_Handler/Stub_HW_Version.h"
void ConnectionRequest(MessageContainer* requestContainer)
@@ -34,7 +36,17 @@ void ConnectionRequest(MessageContainer* requestContainer)
DeviceInformation DevInfo = DEVICE_INFORMATION__INIT;
ConnectResponse response = CONNECT_RESPONSE__INIT;
+ unsigned char Major = 0;
+ unsigned char Year = 0 ;
+ unsigned char Month = 0;
+ unsigned char Day = 0;
+
char Version[20] = {0};
+ char FPGA1Version[20] = {0};
+ char FPGA2Version[20] = {0};
+ char FPGA3Version[20] = {0};
+ char BoardVersion[20] = {0};
+ char AssyVersion[20] = {0};
response.deviceinformation = &DevInfo;
/*
extern TangoVersion_t _gTangoVersion;
@@ -46,6 +58,25 @@ void ConnectionRequest(MessageContainer* requestContainer)
usnprintf(Version, 20, "%d.%d.%d.%d",_gTangoVersion.m_major,_gTangoVersion.m_minor,_gTangoVersion.m_patch,_gTangoVersion.m_build);
DevInfo.version = Version;
+ FPGA_ReadVersion(0, &Major, &Year, &Month, &Day);
+ usnprintf(FPGA1Version, 20, "%d.%d.%d.%d",Major,Year, Month, Day);
+ DevInfo.fpga1version = FPGA1Version;
+
+ FPGA_ReadVersion(1, &Major, &Year, &Month, &Day);
+ usnprintf(FPGA2Version, 20, "%d.%d.%d.%d",Major,Year, Month, Day);
+ DevInfo.fpga2version = FPGA2Version;
+
+ FPGA_ReadVersion(2, &Major, &Year, &Month, &Day);
+ usnprintf(FPGA3Version, 20, "%d.%d.%d.%d",Major,Year, Month, Day);
+ DevInfo.fpga3version = FPGA3Version;
+
+ Read_HW_Version(BoardVersion, AssyVersion);
+
+ DevInfo.boardrevision = BoardVersion;
+ DevInfo.assemblyversion = AssyVersion;
+
+
+
responseContainer = createContainer(MESSAGE_TYPE__ConnectResponse, requestContainer->token, true, &response, &connect_response__pack, &connect_response__get_packed_size);
//-------------------------------------------------------------------------------------------
diff --git a/Software/Embedded_SW/Embedded/Communication/Container.c b/Software/Embedded_SW/Embedded/Communication/Container.c
index bf27c9a56..f132a6ebd 100644
--- a/Software/Embedded_SW/Embedded/Communication/Container.c
+++ b/Software/Embedded_SW/Embedded/Communication/Container.c
@@ -47,6 +47,10 @@
uint32_t TxmsgId[50] = {0};
uint32_t TxLength[50] = {0};
byte Txindex = 0;
+uint32_t msgId[50] = {0};
+uint32_t Length[50] = {0};
+uint32_t DataLength[50] = {0};
+byte index = 0;
MessageContainer createContainer(MessageType type, char* token, protobuf_c_boolean completed, void* response, size_t (*packPtr)(void*, uint8_t*), size_t (*sizePtr)(void*))
{
@@ -77,10 +81,6 @@ MessageContainer createContainer(MessageType type, char* token, protobuf_c_boole
//free(response);
return container;
}
-uint32_t msgId[50] = {0};
-uint32_t Length[50] = {0};
-uint32_t DataLength[50] = {0};
-byte index = 0;
void receive_callback(char* buffer, size_t length)
{
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Connection/DeviceInformation.pb-c.c b/Software/Embedded_SW/Embedded/Communication/PMR/Connection/DeviceInformation.pb-c.c
index 2ecae726e..5b2ee44ac 100644
--- a/Software/Embedded_SW/Embedded/Communication/PMR/Connection/DeviceInformation.pb-c.c
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Connection/DeviceInformation.pb-c.c
@@ -52,7 +52,7 @@ void device_information__free_unpacked
assert(message->base.descriptor == &device_information__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
-static const ProtobufCFieldDescriptor device_information__field_descriptors[3] =
+static const ProtobufCFieldDescriptor device_information__field_descriptors[8] =
{
{
"Name",
@@ -90,16 +90,81 @@ static const ProtobufCFieldDescriptor device_information__field_descriptors[3] =
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
+ {
+ "BoardRevision",
+ 4,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_STRING,
+ 0, /* quantifier_offset */
+ offsetof(DeviceInformation, boardrevision),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "AssemblyVersion",
+ 5,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_STRING,
+ 0, /* quantifier_offset */
+ offsetof(DeviceInformation, assemblyversion),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "FPGA1Version",
+ 6,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_STRING,
+ 0, /* quantifier_offset */
+ offsetof(DeviceInformation, fpga1version),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "FPGA2Version",
+ 7,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_STRING,
+ 0, /* quantifier_offset */
+ offsetof(DeviceInformation, fpga2version),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "FPGA3Version",
+ 8,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_STRING,
+ 0, /* quantifier_offset */
+ offsetof(DeviceInformation, fpga3version),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
};
static const unsigned device_information__field_indices_by_name[] = {
+ 4, /* field[4] = AssemblyVersion */
+ 3, /* field[3] = BoardRevision */
2, /* field[2] = BuildDate */
+ 5, /* field[5] = FPGA1Version */
+ 6, /* field[6] = FPGA2Version */
+ 7, /* field[7] = FPGA3Version */
0, /* field[0] = Name */
1, /* field[1] = Version */
};
static const ProtobufCIntRange device_information__number_ranges[1 + 1] =
{
{ 1, 0 },
- { 0, 3 }
+ { 0, 8 }
};
const ProtobufCMessageDescriptor device_information__descriptor =
{
@@ -109,7 +174,7 @@ const ProtobufCMessageDescriptor device_information__descriptor =
"DeviceInformation",
"",
sizeof(DeviceInformation),
- 3,
+ 8,
device_information__field_descriptors,
device_information__field_indices_by_name,
1, device_information__number_ranges,
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Connection/DeviceInformation.pb-c.h b/Software/Embedded_SW/Embedded/Communication/PMR/Connection/DeviceInformation.pb-c.h
index 521c77424..6e31d30d0 100644
--- a/Software/Embedded_SW/Embedded/Communication/PMR/Connection/DeviceInformation.pb-c.h
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Connection/DeviceInformation.pb-c.h
@@ -29,10 +29,15 @@ struct _DeviceInformation
char *name;
char *version;
char *builddate;
+ char *boardrevision;
+ char *assemblyversion;
+ char *fpga1version;
+ char *fpga2version;
+ char *fpga3version;
};
#define DEVICE_INFORMATION__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&device_information__descriptor) \
- , NULL, NULL, NULL }
+ , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }
/* DeviceInformation methods */
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/DigitalInterfaceState.pb-c.c b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/DigitalInterfaceState.pb-c.c
new file mode 100644
index 000000000..6e7a7e462
--- /dev/null
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/DigitalInterfaceState.pb-c.c
@@ -0,0 +1,105 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: DigitalInterfaceState.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "DigitalInterfaceState.pb-c.h"
+void digital_interface_state__init
+ (DigitalInterfaceState *message)
+{
+ static const DigitalInterfaceState init_value = DIGITAL_INTERFACE_STATE__INIT;
+ *message = init_value;
+}
+size_t digital_interface_state__get_packed_size
+ (const DigitalInterfaceState *message)
+{
+ assert(message->base.descriptor == &digital_interface_state__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t digital_interface_state__pack
+ (const DigitalInterfaceState *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &digital_interface_state__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t digital_interface_state__pack_to_buffer
+ (const DigitalInterfaceState *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &digital_interface_state__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+DigitalInterfaceState *
+ digital_interface_state__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (DigitalInterfaceState *)
+ protobuf_c_message_unpack (&digital_interface_state__descriptor,
+ allocator, len, data);
+}
+void digital_interface_state__free_unpacked
+ (DigitalInterfaceState *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &digital_interface_state__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor digital_interface_state__field_descriptors[2] =
+{
+ {
+ "InterfaceIO",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_ENUM,
+ offsetof(DigitalInterfaceState, has_interfaceio),
+ offsetof(DigitalInterfaceState, interfaceio),
+ &interface_ios__descriptor,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Value",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(DigitalInterfaceState, has_value),
+ offsetof(DigitalInterfaceState, value),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned digital_interface_state__field_indices_by_name[] = {
+ 0, /* field[0] = InterfaceIO */
+ 1, /* field[1] = Value */
+};
+static const ProtobufCIntRange digital_interface_state__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 2 }
+};
+const ProtobufCMessageDescriptor digital_interface_state__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "DigitalInterfaceState",
+ "DigitalInterfaceState",
+ "DigitalInterfaceState",
+ "",
+ sizeof(DigitalInterfaceState),
+ 2,
+ digital_interface_state__field_descriptors,
+ digital_interface_state__field_indices_by_name,
+ 1, digital_interface_state__number_ranges,
+ (ProtobufCMessageInit) digital_interface_state__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/DigitalInterfaceState.pb-c.h b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/DigitalInterfaceState.pb-c.h
new file mode 100644
index 000000000..cfdd5d42f
--- /dev/null
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/DigitalInterfaceState.pb-c.h
@@ -0,0 +1,75 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: DigitalInterfaceState.proto */
+
+#ifndef PROTOBUF_C_DigitalInterfaceState_2eproto__INCLUDED
+#define PROTOBUF_C_DigitalInterfaceState_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+#include "InterfaceIOs.pb-c.h"
+
+typedef struct _DigitalInterfaceState DigitalInterfaceState;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _DigitalInterfaceState
+{
+ ProtobufCMessage base;
+ protobuf_c_boolean has_interfaceio;
+ InterfaceIOs interfaceio;
+ protobuf_c_boolean has_value;
+ protobuf_c_boolean value;
+};
+#define DIGITAL_INTERFACE_STATE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&digital_interface_state__descriptor) \
+ , 0, INTERFACE_IOS__ANALOG_MIXCHIP_TEMP, 0, 0 }
+
+
+/* DigitalInterfaceState methods */
+void digital_interface_state__init
+ (DigitalInterfaceState *message);
+size_t digital_interface_state__get_packed_size
+ (const DigitalInterfaceState *message);
+size_t digital_interface_state__pack
+ (const DigitalInterfaceState *message,
+ uint8_t *out);
+size_t digital_interface_state__pack_to_buffer
+ (const DigitalInterfaceState *message,
+ ProtobufCBuffer *buffer);
+DigitalInterfaceState *
+ digital_interface_state__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void digital_interface_state__free_unpacked
+ (DigitalInterfaceState *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*DigitalInterfaceState_Closure)
+ (const DigitalInterfaceState *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor digital_interface_state__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_DigitalInterfaceState_2eproto__INCLUDED */
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/InterfaceIOs.pb-c.c b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/InterfaceIOs.pb-c.c
new file mode 100644
index 000000000..e71fd9af5
--- /dev/null
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/InterfaceIOs.pb-c.c
@@ -0,0 +1,727 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: InterfaceIOs.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "InterfaceIOs.pb-c.h"
+static const ProtobufCEnumValue interface_ios__enum_values_by_number[347] =
+{
+ { "ANALOG_MIXCHIP_TEMP", "INTERFACE_IOS__ANALOG_MIXCHIP_TEMP", 0 },
+ { "AN_DYEINGH_CURSEN_1", "INTERFACE_IOS__AN_DYEINGH_CURSEN_1", 1 },
+ { "AN_DYEINGH_CURSEN_2", "INTERFACE_IOS__AN_DYEINGH_CURSEN_2", 2 },
+ { "AN_DYEINGH_CURSEN_3", "INTERFACE_IOS__AN_DYEINGH_CURSEN_3", 3 },
+ { "AN_DYEINGH_CURSEN_4", "INTERFACE_IOS__AN_DYEINGH_CURSEN_4", 4 },
+ { "AN_DYEINGH_CURSEN_5", "INTERFACE_IOS__AN_DYEINGH_CURSEN_5", 5 },
+ { "ANALOG_DYEINGH_TEMP1", "INTERFACE_IOS__ANALOG_DYEINGH_TEMP1", 6 },
+ { "ANALOG_DYEINGH_TEMP2", "INTERFACE_IOS__ANALOG_DYEINGH_TEMP2", 7 },
+ { "ANALOG_DYEINGH_TEMP3", "INTERFACE_IOS__ANALOG_DYEINGH_TEMP3", 8 },
+ { "ANALOG_DYEINGH_TEMP4", "INTERFACE_IOS__ANALOG_DYEINGH_TEMP4", 9 },
+ { "ANALOG_DYEINGH_TEMP5", "INTERFACE_IOS__ANALOG_DYEINGH_TEMP5", 10 },
+ { "LS_DH_CLEAN_DOWN", "INTERFACE_IOS__LS_DH_CLEAN_DOWN", 11 },
+ { "LS_DH_CLEAN_LEFT", "INTERFACE_IOS__LS_DH_CLEAN_LEFT", 12 },
+ { "LS_DH_CLEAN_RIGHT", "INTERFACE_IOS__LS_DH_CLEAN_RIGHT", 13 },
+ { "LS_DH_CLEAN_UP", "INTERFACE_IOS__LS_DH_CLEAN_UP", 14 },
+ { "LS_DH_LID_CLEANING", "INTERFACE_IOS__LS_DH_LID_CLEANING", 15 },
+ { "LS_DH_LID_CLOSED", "INTERFACE_IOS__LS_DH_LID_CLOSED", 16 },
+ { "LS_DH_LID_OPEN", "INTERFACE_IOS__LS_DH_LID_OPEN", 17 },
+ { "LS_DH_SPARE1", "INTERFACE_IOS__LS_DH_SPARE1", 18 },
+ { "GPO_MIXCHIP_SSR4_CTRL", "INTERFACE_IOS__GPO_MIXCHIP_SSR4_CTRL", 19 },
+ { "GPO_DYEINGH_SSR5_CTRL", "INTERFACE_IOS__GPO_DYEINGH_SSR5_CTRL", 20 },
+ { "GPO_DYEINGH_SSR6_CTRL", "INTERFACE_IOS__GPO_DYEINGH_SSR6_CTRL", 21 },
+ { "GPO_DYEINGH_SSR7_CTRL", "INTERFACE_IOS__GPO_DYEINGH_SSR7_CTRL", 22 },
+ { "GPO_DYEINGH_SSR8_CTRL", "INTERFACE_IOS__GPO_DYEINGH_SSR8_CTRL", 23 },
+ { "DH2", "INTERFACE_IOS__DH2", 24 },
+ { "DH1", "INTERFACE_IOS__DH1", 25 },
+ { "MOTO_DH_CLEANHEAD", "INTERFACE_IOS__MOTO_DH_CLEANHEAD", 26 },
+ { "MOTO_DH_CLEANMECH", "INTERFACE_IOS__MOTO_DH_CLEANMECH", 27 },
+ { "MOTO_DH_LID", "INTERFACE_IOS__MOTO_DH_LID", 28 },
+ { "AN_DRYER_CURSEN1", "INTERFACE_IOS__AN_DRYER_CURSEN1", 29 },
+ { "AN_DRYER_CURSEN2", "INTERFACE_IOS__AN_DRYER_CURSEN2", 30 },
+ { "AN_DRYER_CURSEN3", "INTERFACE_IOS__AN_DRYER_CURSEN3", 31 },
+ { "ANALOG_DRYER_TEMP1", "INTERFACE_IOS__ANALOG_DRYER_TEMP1", 32 },
+ { "ANALOG_DRYER_TEMP2", "INTERFACE_IOS__ANALOG_DRYER_TEMP2", 33 },
+ { "ANALOG_DRYER_TEMP3", "INTERFACE_IOS__ANALOG_DRYER_TEMP3", 34 },
+ { "LS_DRYER_LID_CLOSED", "INTERFACE_IOS__LS_DRYER_LID_CLOSED", 35 },
+ { "LS_DRYER_LID_OPEN", "INTERFACE_IOS__LS_DRYER_LID_OPEN", 36 },
+ { "LS_DRYER_SPARE1", "INTERFACE_IOS__LS_DRYER_SPARE1", 37 },
+ { "LS_DRYER_SPARE2", "INTERFACE_IOS__LS_DRYER_SPARE2", 38 },
+ { "LS_DRYER_SPARE3", "INTERFACE_IOS__LS_DRYER_SPARE3", 39 },
+ { "LS_DRYER_SPARE4", "INTERFACE_IOS__LS_DRYER_SPARE4", 40 },
+ { "LS_LOADARM_LEFT", "INTERFACE_IOS__LS_LOADARM_LEFT", 41 },
+ { "LS_LOADARM_RIGHT", "INTERFACE_IOS__LS_LOADARM_RIGHT", 42 },
+ { "GPO_DRYER_SSR1_CTRL", "INTERFACE_IOS__GPO_DRYER_SSR1_CTRL", 43 },
+ { "GPO_DRYER_SSR2_CTRL", "INTERFACE_IOS__GPO_DRYER_SSR2_CTRL", 44 },
+ { "GPO_DRYER_SSR3_CTRL", "INTERFACE_IOS__GPO_DRYER_SSR3_CTRL", 45 },
+ { "DRYER2", "INTERFACE_IOS__DRYER2", 46 },
+ { "DRYER1", "INTERFACE_IOS__DRYER1", 47 },
+ { "MOTO_DRYER_DRIVING", "INTERFACE_IOS__MOTO_DRYER_DRIVING", 48 },
+ { "MOTO_DRYER_LID", "INTERFACE_IOS__MOTO_DRYER_LID", 49 },
+ { "MOTO_DRYER_LOADARM", "INTERFACE_IOS__MOTO_DRYER_LOADARM", 50 },
+ { "DRYER_LOADARM_ROTENC", "INTERFACE_IOS__DRYER_LOADARM_ROTENC", 51 },
+ { "GPI_PS1_DC_OK", "INTERFACE_IOS__GPI_PS1_DC_OK", 52 },
+ { "GPO_PDOWN_RL1_CTRL", "INTERFACE_IOS__GPO_PDOWN_RL1_CTRL", 53 },
+ { "GPO_SPARE_SSR12_CTRL", "INTERFACE_IOS__GPO_SPARE_SSR12_CTRL", 54 },
+ { "GPO_SPARE_SSR13_CTRL", "INTERFACE_IOS__GPO_SPARE_SSR13_CTRL", 55 },
+ { "ELECTRICALENC", "INTERFACE_IOS__ELECTRICALENC", 56 },
+ { "USERPANEL", "INTERFACE_IOS__USERPANEL", 57 },
+ { "GPI_EXTWINDER_1", "INTERFACE_IOS__GPI_EXTWINDER_1", 58 },
+ { "GPI_EXTWINDER_2", "INTERFACE_IOS__GPI_EXTWINDER_2", 59 },
+ { "GPI_EXTWINDER_3", "INTERFACE_IOS__GPI_EXTWINDER_3", 60 },
+ { "GPO_EXTWINDER_1", "INTERFACE_IOS__GPO_EXTWINDER_1", 61 },
+ { "GPO_EXTWINDER_2", "INTERFACE_IOS__GPO_EXTWINDER_2", 62 },
+ { "GPO_EXTWINDER_3", "INTERFACE_IOS__GPO_EXTWINDER_3", 63 },
+ { "GPO_EXTWINDER_SSR11_CTRL", "INTERFACE_IOS__GPO_EXTWINDER_SSR11_CTRL", 64 },
+ { "EXTWINDER_CTRL", "INTERFACE_IOS__EXTWINDER_CTRL", 65 },
+ { "EXTWINDINGUNIT", "INTERFACE_IOS__EXTWINDINGUNIT", 66 },
+ { "AN_IDS_PRESSENS_1", "INTERFACE_IOS__AN_IDS_PRESSENS_1", 67 },
+ { "AN_IDS_PRESSENS_2", "INTERFACE_IOS__AN_IDS_PRESSENS_2", 68 },
+ { "AN_IDS_PRESSENS_3", "INTERFACE_IOS__AN_IDS_PRESSENS_3", 69 },
+ { "AN_IDS_PRESSENS_4", "INTERFACE_IOS__AN_IDS_PRESSENS_4", 70 },
+ { "AN_IDS_PRESSENS_5", "INTERFACE_IOS__AN_IDS_PRESSENS_5", 71 },
+ { "AN_IDS_PRESSENS_6", "INTERFACE_IOS__AN_IDS_PRESSENS_6", 72 },
+ { "AN_IDS_PRESSENS_7", "INTERFACE_IOS__AN_IDS_PRESSENS_7", 73 },
+ { "AN_IDS_PRESSENS_8", "INTERFACE_IOS__AN_IDS_PRESSENS_8", 74 },
+ { "AN_MIDTANK_PRESSENS1", "INTERFACE_IOS__AN_MIDTANK_PRESSENS1", 75 },
+ { "AN_MIDTANK_PRESSENS2", "INTERFACE_IOS__AN_MIDTANK_PRESSENS2", 76 },
+ { "AN_MIDTANK_PRESSENS3", "INTERFACE_IOS__AN_MIDTANK_PRESSENS3", 77 },
+ { "AN_MIDTANK_PRESSENS4", "INTERFACE_IOS__AN_MIDTANK_PRESSENS4", 78 },
+ { "AN_MIDTANK_PRESSENS5", "INTERFACE_IOS__AN_MIDTANK_PRESSENS5", 79 },
+ { "AN_MIDTANK_PRESSENS6", "INTERFACE_IOS__AN_MIDTANK_PRESSENS6", 80 },
+ { "AN_MIDTANK_PRESSENS7", "INTERFACE_IOS__AN_MIDTANK_PRESSENS7", 81 },
+ { "AN_MIXCHIP_CURSENn", "INTERFACE_IOS__AN_MIXCHIP_CURSENn", 82 },
+ { "LS_DISPENSER_25_1", "INTERFACE_IOS__LS_DISPENSER_25_1", 83 },
+ { "LS_DISPENSER_25_2", "INTERFACE_IOS__LS_DISPENSER_25_2", 84 },
+ { "LS_DISPENSER_25_3", "INTERFACE_IOS__LS_DISPENSER_25_3", 85 },
+ { "LS_DISPENSER_25_4", "INTERFACE_IOS__LS_DISPENSER_25_4", 86 },
+ { "LS_DISPENSER_25_5", "INTERFACE_IOS__LS_DISPENSER_25_5", 87 },
+ { "LS_DISPENSER_25_6", "INTERFACE_IOS__LS_DISPENSER_25_6", 88 },
+ { "LS_DISPENSER_25_7", "INTERFACE_IOS__LS_DISPENSER_25_7", 89 },
+ { "LS_DISPENSER_25_8", "INTERFACE_IOS__LS_DISPENSER_25_8", 90 },
+ { "LS_DISPENSER_50_1", "INTERFACE_IOS__LS_DISPENSER_50_1", 91 },
+ { "LS_DISPENSER_50_2", "INTERFACE_IOS__LS_DISPENSER_50_2", 92 },
+ { "LS_DISPENSER_50_3", "INTERFACE_IOS__LS_DISPENSER_50_3", 93 },
+ { "LS_DISPENSER_50_4", "INTERFACE_IOS__LS_DISPENSER_50_4", 94 },
+ { "LS_DISPENSER_50_5", "INTERFACE_IOS__LS_DISPENSER_50_5", 95 },
+ { "LS_DISPENSER_50_6", "INTERFACE_IOS__LS_DISPENSER_50_6", 96 },
+ { "LS_DISPENSER_50_7", "INTERFACE_IOS__LS_DISPENSER_50_7", 97 },
+ { "LS_DISPENSER_50_8", "INTERFACE_IOS__LS_DISPENSER_50_8", 98 },
+ { "LS_DISPENSER_75_1", "INTERFACE_IOS__LS_DISPENSER_75_1", 99 },
+ { "LS_DISPENSER_75_2", "INTERFACE_IOS__LS_DISPENSER_75_2", 100 },
+ { "LS_DISPENSER_75_3", "INTERFACE_IOS__LS_DISPENSER_75_3", 101 },
+ { "LS_DISPENSER_75_4", "INTERFACE_IOS__LS_DISPENSER_75_4", 102 },
+ { "LS_DISPENSER_75_5", "INTERFACE_IOS__LS_DISPENSER_75_5", 103 },
+ { "LS_DISPENSER_75_6", "INTERFACE_IOS__LS_DISPENSER_75_6", 104 },
+ { "LS_DISPENSER_75_7", "INTERFACE_IOS__LS_DISPENSER_75_7", 105 },
+ { "LS_DISPENSER_75_8", "INTERFACE_IOS__LS_DISPENSER_75_8", 106 },
+ { "LS_DISPENSER_DOWN_1", "INTERFACE_IOS__LS_DISPENSER_DOWN_1", 107 },
+ { "LS_DISPENSER_DOWN_2", "INTERFACE_IOS__LS_DISPENSER_DOWN_2", 108 },
+ { "LS_DISPENSER_DOWN_3", "INTERFACE_IOS__LS_DISPENSER_DOWN_3", 109 },
+ { "LS_DISPENSER_DOWN_4", "INTERFACE_IOS__LS_DISPENSER_DOWN_4", 110 },
+ { "LS_DISPENSER_DOWN_5", "INTERFACE_IOS__LS_DISPENSER_DOWN_5", 111 },
+ { "LS_DISPENSER_DOWN_6", "INTERFACE_IOS__LS_DISPENSER_DOWN_6", 112 },
+ { "LS_DISPENSER_DOWN_7", "INTERFACE_IOS__LS_DISPENSER_DOWN_7", 113 },
+ { "LS_DISPENSER_DOWN_8", "INTERFACE_IOS__LS_DISPENSER_DOWN_8", 114 },
+ { "LS_DISPENSER_SPARE_1", "INTERFACE_IOS__LS_DISPENSER_SPARE_1", 115 },
+ { "LS_DISPENSER_SPARE_2", "INTERFACE_IOS__LS_DISPENSER_SPARE_2", 116 },
+ { "LS_DISPENSER_SPARE_3", "INTERFACE_IOS__LS_DISPENSER_SPARE_3", 117 },
+ { "LS_DISPENSER_SPARE_4", "INTERFACE_IOS__LS_DISPENSER_SPARE_4", 118 },
+ { "LS_DISPENSER_SPARE_5", "INTERFACE_IOS__LS_DISPENSER_SPARE_5", 119 },
+ { "LS_DISPENSER_SPARE_6", "INTERFACE_IOS__LS_DISPENSER_SPARE_6", 120 },
+ { "LS_DISPENSER_SPARE_7", "INTERFACE_IOS__LS_DISPENSER_SPARE_7", 121 },
+ { "LS_DISPENSER_SPARE_8", "INTERFACE_IOS__LS_DISPENSER_SPARE_8", 122 },
+ { "LS_DISPENSER_UP_1", "INTERFACE_IOS__LS_DISPENSER_UP_1", 123 },
+ { "LS_DISPENSER_UP_2", "INTERFACE_IOS__LS_DISPENSER_UP_2", 124 },
+ { "LS_DISPENSER_UP_3", "INTERFACE_IOS__LS_DISPENSER_UP_3", 125 },
+ { "LS_DISPENSER_UP_4", "INTERFACE_IOS__LS_DISPENSER_UP_4", 126 },
+ { "LS_DISPENSER_UP_5", "INTERFACE_IOS__LS_DISPENSER_UP_5", 127 },
+ { "LS_DISPENSER_UP_6", "INTERFACE_IOS__LS_DISPENSER_UP_6", 128 },
+ { "LS_DISPENSER_UP_7", "INTERFACE_IOS__LS_DISPENSER_UP_7", 129 },
+ { "LS_DISPENSER_UP_8", "INTERFACE_IOS__LS_DISPENSER_UP_8", 130 },
+ { "MIDTANK1_LVL1_FLOAT", "INTERFACE_IOS__MIDTANK1_LVL1_FLOAT", 131 },
+ { "MIDTANK1_LVL2_FLOAT", "INTERFACE_IOS__MIDTANK1_LVL2_FLOAT", 132 },
+ { "MIDTANK1_LVL3_FLOAT", "INTERFACE_IOS__MIDTANK1_LVL3_FLOAT", 133 },
+ { "MIDTANK1_LVL4_FLOAT", "INTERFACE_IOS__MIDTANK1_LVL4_FLOAT", 134 },
+ { "MIDTANK2_LVL1_FLOAT", "INTERFACE_IOS__MIDTANK2_LVL1_FLOAT", 135 },
+ { "MIDTANK2_LVL2_FLOAT", "INTERFACE_IOS__MIDTANK2_LVL2_FLOAT", 136 },
+ { "MIDTANK2_LVL3_FLOAT", "INTERFACE_IOS__MIDTANK2_LVL3_FLOAT", 137 },
+ { "MIDTANK2_LVL4_FLOAT", "INTERFACE_IOS__MIDTANK2_LVL4_FLOAT", 138 },
+ { "MIDTANK3_LVL1_FLOAT", "INTERFACE_IOS__MIDTANK3_LVL1_FLOAT", 139 },
+ { "MIDTANK3_LVL2_FLOAT", "INTERFACE_IOS__MIDTANK3_LVL2_FLOAT", 140 },
+ { "MIDTANK3_LVL3_FLOAT", "INTERFACE_IOS__MIDTANK3_LVL3_FLOAT", 141 },
+ { "MIDTANK3_LVL4_FLOAT", "INTERFACE_IOS__MIDTANK3_LVL4_FLOAT", 142 },
+ { "MIDTANK4_LVL1_FLOAT", "INTERFACE_IOS__MIDTANK4_LVL1_FLOAT", 143 },
+ { "MIDTANK4_LVL2_FLOAT", "INTERFACE_IOS__MIDTANK4_LVL2_FLOAT", 144 },
+ { "MIDTANK4_LVL3_FLOAT", "INTERFACE_IOS__MIDTANK4_LVL3_FLOAT", 145 },
+ { "MIDTANK4_LVL4_FLOAT", "INTERFACE_IOS__MIDTANK4_LVL4_FLOAT", 146 },
+ { "MIDTANK5_LVL1_FLOAT", "INTERFACE_IOS__MIDTANK5_LVL1_FLOAT", 147 },
+ { "MIDTANK5_LVL2_FLOAT", "INTERFACE_IOS__MIDTANK5_LVL2_FLOAT", 148 },
+ { "MIDTANK5_LVL3_FLOAT", "INTERFACE_IOS__MIDTANK5_LVL3_FLOAT", 149 },
+ { "MIDTANK5_LVL4_FLOAT", "INTERFACE_IOS__MIDTANK5_LVL4_FLOAT", 150 },
+ { "MIDTANK6_LVL1_FLOAT", "INTERFACE_IOS__MIDTANK6_LVL1_FLOAT", 151 },
+ { "MIDTANK6_LVL2_FLOAT", "INTERFACE_IOS__MIDTANK6_LVL2_FLOAT", 152 },
+ { "MIDTANK6_LVL3_FLOAT", "INTERFACE_IOS__MIDTANK6_LVL3_FLOAT", 153 },
+ { "MIDTANK6_LVL4_FLOAT", "INTERFACE_IOS__MIDTANK6_LVL4_FLOAT", 154 },
+ { "MIDTANK7_LVL1_FLOAT", "INTERFACE_IOS__MIDTANK7_LVL1_FLOAT", 155 },
+ { "MIDTANK7_LVL2_FLOAT", "INTERFACE_IOS__MIDTANK7_LVL2_FLOAT", 156 },
+ { "MIDTANK7_LVL3_FLOAT", "INTERFACE_IOS__MIDTANK7_LVL3_FLOAT", 157 },
+ { "MIDTANK7_LVL4_FLOAT", "INTERFACE_IOS__MIDTANK7_LVL4_FLOAT", 158 },
+ { "MIDTANK8_LVL1_FLOAT", "INTERFACE_IOS__MIDTANK8_LVL1_FLOAT", 159 },
+ { "MIDTANK8_LVL2_FLOAT", "INTERFACE_IOS__MIDTANK8_LVL2_FLOAT", 160 },
+ { "MIDTANK8_LVL3_FLOAT", "INTERFACE_IOS__MIDTANK8_LVL3_FLOAT", 161 },
+ { "MIDTANK8_LVL4_FLOAT", "INTERFACE_IOS__MIDTANK8_LVL4_FLOAT", 162 },
+ { "GPO_DILUTORPUMP_SSR10_CTRL", "INTERFACE_IOS__GPO_DILUTORPUMP_SSR10_CTRL", 163 },
+ { "GPO_WASTECH_PUMP2", "INTERFACE_IOS__GPO_WASTECH_PUMP2", 164 },
+ { "Midtank1Air", "INTERFACE_IOS__Midtank1Air", 165 },
+ { "Midtank2Air", "INTERFACE_IOS__Midtank2Air", 166 },
+ { "Midtank3Air", "INTERFACE_IOS__Midtank3Air", 167 },
+ { "Midtank4Air", "INTERFACE_IOS__Midtank4Air", 168 },
+ { "Midtank5Air", "INTERFACE_IOS__Midtank5Air", 169 },
+ { "Midtank6Air", "INTERFACE_IOS__Midtank6Air", 170 },
+ { "Midtank7Air", "INTERFACE_IOS__Midtank7Air", 171 },
+ { "Midtank8Air", "INTERFACE_IOS__Midtank8Air", 172 },
+ { "Midtank1Cartridge", "INTERFACE_IOS__Midtank1Cartridge", 173 },
+ { "Midtank2Cartridge", "INTERFACE_IOS__Midtank2Cartridge", 174 },
+ { "Midtank3Cartridge", "INTERFACE_IOS__Midtank3Cartridge", 175 },
+ { "Midtank4Cartridge", "INTERFACE_IOS__Midtank4Cartridge", 176 },
+ { "Midtank5Cartridge", "INTERFACE_IOS__Midtank5Cartridge", 177 },
+ { "Midtank6Cartridge", "INTERFACE_IOS__Midtank6Cartridge", 178 },
+ { "Midtank7Cartridge", "INTERFACE_IOS__Midtank7Cartridge", 179 },
+ { "Midtank8Cartridge", "INTERFACE_IOS__Midtank8Cartridge", 180 },
+ { "MOTO_DISPENSER_1", "INTERFACE_IOS__MOTO_DISPENSER_1", 181 },
+ { "MOTO_DISPENSER_2", "INTERFACE_IOS__MOTO_DISPENSER_2", 182 },
+ { "MOTO_DISPENSER_3", "INTERFACE_IOS__MOTO_DISPENSER_3", 183 },
+ { "MOTO_DISPENSER_4", "INTERFACE_IOS__MOTO_DISPENSER_4", 184 },
+ { "MOTO_DISPENSER_5", "INTERFACE_IOS__MOTO_DISPENSER_5", 185 },
+ { "MOTO_DISPENSER_6", "INTERFACE_IOS__MOTO_DISPENSER_6", 186 },
+ { "MOTO_DISPENSER_7", "INTERFACE_IOS__MOTO_DISPENSER_7", 187 },
+ { "MOTO_DISPENSER_8", "INTERFACE_IOS__MOTO_DISPENSER_8", 188 },
+ { "DISPENSER_ROTENC1", "INTERFACE_IOS__DISPENSER_ROTENC1", 189 },
+ { "DISPENSER_ROTENC2", "INTERFACE_IOS__DISPENSER_ROTENC2", 190 },
+ { "DISPENSER_ROTENC3", "INTERFACE_IOS__DISPENSER_ROTENC3", 191 },
+ { "DISPENSER_ROTENC4", "INTERFACE_IOS__DISPENSER_ROTENC4", 192 },
+ { "DISPENSER_ROTENC5", "INTERFACE_IOS__DISPENSER_ROTENC5", 193 },
+ { "DISPENSER_ROTENC6", "INTERFACE_IOS__DISPENSER_ROTENC6", 194 },
+ { "DISPENSER_ROTENC7", "INTERFACE_IOS__DISPENSER_ROTENC7", 195 },
+ { "DISPENSER_ROTENC8", "INTERFACE_IOS__DISPENSER_ROTENC8", 196 },
+ { "DISPENSER_VALVE_1", "INTERFACE_IOS__DISPENSER_VALVE_1", 197 },
+ { "DISPENSER_VALVE_2", "INTERFACE_IOS__DISPENSER_VALVE_2", 198 },
+ { "DISPENSER_VALVE_3", "INTERFACE_IOS__DISPENSER_VALVE_3", 199 },
+ { "DISPENSER_VALVE_4", "INTERFACE_IOS__DISPENSER_VALVE_4", 200 },
+ { "DISPENSER_VALVE_5", "INTERFACE_IOS__DISPENSER_VALVE_5", 201 },
+ { "DISPENSER_VALVE_6", "INTERFACE_IOS__DISPENSER_VALVE_6", 202 },
+ { "DISPENSER_VALVE_7", "INTERFACE_IOS__DISPENSER_VALVE_7", 203 },
+ { "DISPENSER_1", "INTERFACE_IOS__DISPENSER_1", 204 },
+ { "DISPENSER_3", "INTERFACE_IOS__DISPENSER_3", 205 },
+ { "DISPENSER_5", "INTERFACE_IOS__DISPENSER_5", 206 },
+ { "DISPENSER_7", "INTERFACE_IOS__DISPENSER_7", 207 },
+ { "MIDTANK3_1", "INTERFACE_IOS__MIDTANK3_1", 208 },
+ { "DISPENSER_2", "INTERFACE_IOS__DISPENSER_2", 209 },
+ { "DISPENSER_4", "INTERFACE_IOS__DISPENSER_4", 210 },
+ { "DISPENSER_6", "INTERFACE_IOS__DISPENSER_6", 211 },
+ { "DISPENSER_8", "INTERFACE_IOS__DISPENSER_8", 212 },
+ { "MIDTANK3_2", "INTERFACE_IOS__MIDTANK3_2", 213 },
+ { "CART3", "INTERFACE_IOS__CART3", 214 },
+ { "CART1", "INTERFACE_IOS__CART1", 215 },
+ { "CART2", "INTERFACE_IOS__CART2", 216 },
+ { "CART4", "INTERFACE_IOS__CART4", 217 },
+ { "CART7", "INTERFACE_IOS__CART7", 218 },
+ { "CART5", "INTERFACE_IOS__CART5", 219 },
+ { "CART6", "INTERFACE_IOS__CART6", 220 },
+ { "CART8", "INTERFACE_IOS__CART8", 221 },
+ { "LS_SCREW_LEFT", "INTERFACE_IOS__LS_SCREW_LEFT", 222 },
+ { "LS_SCREW_RIGHT", "INTERFACE_IOS__LS_SCREW_RIGHT", 223 },
+ { "SW_SPARE", "INTERFACE_IOS__SW_SPARE", 224 },
+ { "SW_SPOOL_EXISTS", "INTERFACE_IOS__SW_SPOOL_EXISTS", 225 },
+ { "MOTO_SCREW", "INTERFACE_IOS__MOTO_SCREW", 226 },
+ { "MOTO_WINDER", "INTERFACE_IOS__MOTO_WINDER", 227 },
+ { "SCREW_ROTENC", "INTERFACE_IOS__SCREW_ROTENC", 228 },
+ { "INTWINDINGUNIT", "INTERFACE_IOS__INTWINDINGUNIT", 229 },
+ { "AN5V_LDANCER1", "INTERFACE_IOS__AN5V_LDANCER1", 230 },
+ { "AN5V_LDANCER2", "INTERFACE_IOS__AN5V_LDANCER2", 231 },
+ { "LS_LDANCER1_DOWN", "INTERFACE_IOS__LS_LDANCER1_DOWN", 232 },
+ { "LS_LDANCER1_UP", "INTERFACE_IOS__LS_LDANCER1_UP", 233 },
+ { "LS_LDANCER2_DOWN", "INTERFACE_IOS__LS_LDANCER2_DOWN", 234 },
+ { "LS_LDANCER2_UP", "INTERFACE_IOS__LS_LDANCER2_UP", 235 },
+ { "LS_LLOADMOTOR_DOWN", "INTERFACE_IOS__LS_LLOADMOTOR_DOWN", 236 },
+ { "LS_LLOADMOTOR_UP", "INTERFACE_IOS__LS_LLOADMOTOR_UP", 237 },
+ { "LS_LPIVOT_DOWN", "INTERFACE_IOS__LS_LPIVOT_DOWN", 238 },
+ { "LS_LPIVOT_UP", "INTERFACE_IOS__LS_LPIVOT_UP", 239 },
+ { "LS_LSPARE1", "INTERFACE_IOS__LS_LSPARE1", 240 },
+ { "LS_LSPARE2", "INTERFACE_IOS__LS_LSPARE2", 241 },
+ { "LS_PIVOT_SPARE1", "INTERFACE_IOS__LS_PIVOT_SPARE1", 242 },
+ { "LS_PIVOT_SPARE2", "INTERFACE_IOS__LS_PIVOT_SPARE2", 243 },
+ { "MOTO_LDANCER1", "INTERFACE_IOS__MOTO_LDANCER1", 244 },
+ { "MOTO_LDANCER2", "INTERFACE_IOS__MOTO_LDANCER2", 245 },
+ { "MOTO_LDRIVING", "INTERFACE_IOS__MOTO_LDRIVING", 246 },
+ { "MOTO_LLOADING", "INTERFACE_IOS__MOTO_LLOADING", 247 },
+ { "MOTO_LPIVOT1", "INTERFACE_IOS__MOTO_LPIVOT1", 248 },
+ { "LSPARE1_ROTENC", "INTERFACE_IOS__LSPARE1_ROTENC", 249 },
+ { "LSPARE2_ROTENC", "INTERFACE_IOS__LSPARE2_ROTENC", 250 },
+ { "LDANCER1_ROTENC", "INTERFACE_IOS__LDANCER1_ROTENC", 251 },
+ { "LDANCER2_ROTENC", "INTERFACE_IOS__LDANCER2_ROTENC", 252 },
+ { "LSPARE_ROTENC", "INTERFACE_IOS__LSPARE_ROTENC", 253 },
+ { "LTFEEDUNIT2", "INTERFACE_IOS__LTFEEDUNIT2", 254 },
+ { "LTFEEDUNIT1", "INTERFACE_IOS__LTFEEDUNIT1", 255 },
+ { "AN_ENCLOSURETEMP1", "INTERFACE_IOS__AN_ENCLOSURETEMP1", 256 },
+ { "AN_ENCLOSURETEMP2", "INTERFACE_IOS__AN_ENCLOSURETEMP2", 257 },
+ { "AN_ENCLOSURETEMP3", "INTERFACE_IOS__AN_ENCLOSURETEMP3", 258 },
+ { "GPI_PANSW1", "INTERFACE_IOS__GPI_PANSW1", 259 },
+ { "GPI_PANSW2", "INTERFACE_IOS__GPI_PANSW2", 260 },
+ { "GPI_PANSW3", "INTERFACE_IOS__GPI_PANSW3", 261 },
+ { "GPI_PANSW4", "INTERFACE_IOS__GPI_PANSW4", 262 },
+ { "GPI_PANSW5", "INTERFACE_IOS__GPI_PANSW5", 263 },
+ { "GPI_PANSW6", "INTERFACE_IOS__GPI_PANSW6", 264 },
+ { "GPI_PWRBUTTON", "INTERFACE_IOS__GPI_PWRBUTTON", 265 },
+ { "GPI_TACTSW1", "INTERFACE_IOS__GPI_TACTSW1", 266 },
+ { "GPI_TACTSW2", "INTERFACE_IOS__GPI_TACTSW2", 267 },
+ { "GPI_TACTSW3", "INTERFACE_IOS__GPI_TACTSW3", 268 },
+ { "GPI_TACTSW4", "INTERFACE_IOS__GPI_TACTSW4", 269 },
+ { "GPO_BUZZER", "INTERFACE_IOS__GPO_BUZZER", 270 },
+ { "GPO_LED1", "INTERFACE_IOS__GPO_LED1", 271 },
+ { "GPO_LED2", "INTERFACE_IOS__GPO_LED2", 272 },
+ { "GPO_LED3", "INTERFACE_IOS__GPO_LED3", 273 },
+ { "GPO_LED4", "INTERFACE_IOS__GPO_LED4", 274 },
+ { "FAN_TACHO1", "INTERFACE_IOS__FAN_TACHO1", 275 },
+ { "FAN_TACHO2", "INTERFACE_IOS__FAN_TACHO2", 276 },
+ { "FAN_TACHO3", "INTERFACE_IOS__FAN_TACHO3", 277 },
+ { "FAN1_TACH", "INTERFACE_IOS__FAN1_TACH", 278 },
+ { "FAN2_TACH", "INTERFACE_IOS__FAN2_TACH", 279 },
+ { "FAN3_TACH", "INTERFACE_IOS__FAN3_TACH", 280 },
+ { "FAN4_TACH", "INTERFACE_IOS__FAN4_TACH", 281 },
+ { "FAN5_TACH", "INTERFACE_IOS__FAN5_TACH", 282 },
+ { "AN5V_RDANCER", "INTERFACE_IOS__AN5V_RDANCER", 283 },
+ { "LS_RLOADMOTOR_UP", "INTERFACE_IOS__LS_RLOADMOTOR_UP", 284 },
+ { "GPI_TFEED_BREAK_1", "INTERFACE_IOS__GPI_TFEED_BREAK_1", 285 },
+ { "GPI_TFEED_BREAK_2", "INTERFACE_IOS__GPI_TFEED_BREAK_2", 286 },
+ { "LS_RDANCER_DOWN", "INTERFACE_IOS__LS_RDANCER_DOWN", 287 },
+ { "LS_RDANCER_UP", "INTERFACE_IOS__LS_RDANCER_UP", 288 },
+ { "RTFEEDUNIT2", "INTERFACE_IOS__RTFEEDUNIT2", 289 },
+ { "RTFEEDUNIT1", "INTERFACE_IOS__RTFEEDUNIT1", 290 },
+ { "LS_RLOADMOTOR_DOWN", "INTERFACE_IOS__LS_RLOADMOTOR_DOWN", 291 },
+ { "LS_RLOADRAM_DOWN", "INTERFACE_IOS__LS_RLOADRAM_DOWN", 292 },
+ { "LS_RLOADRAM_UP", "INTERFACE_IOS__LS_RLOADRAM_UP", 293 },
+ { "LS_RSPARE1", "INTERFACE_IOS__LS_RSPARE1", 294 },
+ { "LS_RSPARE2", "INTERFACE_IOS__LS_RSPARE2", 295 },
+ { "GPO_TFEED_BREAK_1", "INTERFACE_IOS__GPO_TFEED_BREAK_1", 296 },
+ { "GPO_TFEED_BREAK_2", "INTERFACE_IOS__GPO_TFEED_BREAK_2", 297 },
+ { "MOTO_RDANCER", "INTERFACE_IOS__MOTO_RDANCER", 298 },
+ { "MOTO_RDRIVING", "INTERFACE_IOS__MOTO_RDRIVING", 299 },
+ { "MOTO_RLOADARM", "INTERFACE_IOS__MOTO_RLOADARM", 300 },
+ { "MOTO_RLOADING", "INTERFACE_IOS__MOTO_RLOADING", 301 },
+ { "RSPARE_ROTENC1", "INTERFACE_IOS__RSPARE_ROTENC1", 302 },
+ { "RSPEEDSENS_ROTENC", "INTERFACE_IOS__RSPEEDSENS_ROTENC", 303 },
+ { "RDANCER_ROTENC", "INTERFACE_IOS__RDANCER_ROTENC", 304 },
+ { "RSPARE_ROTENC2", "INTERFACE_IOS__RSPARE_ROTENC2", 305 },
+ { "AN10V_SPARE1", "INTERFACE_IOS__AN10V_SPARE1", 306 },
+ { "AN10V_SPARE2", "INTERFACE_IOS__AN10V_SPARE2", 307 },
+ { "LS_SPARE1_1", "INTERFACE_IOS__LS_SPARE1_1", 308 },
+ { "LS_SPARE1_2", "INTERFACE_IOS__LS_SPARE1_2", 309 },
+ { "LS_SPARE1_3", "INTERFACE_IOS__LS_SPARE1_3", 310 },
+ { "LS_SPARE1_4", "INTERFACE_IOS__LS_SPARE1_4", 311 },
+ { "LS_SPARE2_1", "INTERFACE_IOS__LS_SPARE2_1", 312 },
+ { "SPARE2", "INTERFACE_IOS__SPARE2", 313 },
+ { "SPARE1", "INTERFACE_IOS__SPARE1", 314 },
+ { "LS_SPARE2_2", "INTERFACE_IOS__LS_SPARE2_2", 315 },
+ { "LS_SPARE2_3", "INTERFACE_IOS__LS_SPARE2_3", 316 },
+ { "LS_SPARE2_4", "INTERFACE_IOS__LS_SPARE2_4", 317 },
+ { "GPO_SPARE1_1", "INTERFACE_IOS__GPO_SPARE1_1", 318 },
+ { "GPO_SPARE1_2", "INTERFACE_IOS__GPO_SPARE1_2", 319 },
+ { "GPO_SPARE2_1", "INTERFACE_IOS__GPO_SPARE2_1", 320 },
+ { "GPO_SPARE2_2", "INTERFACE_IOS__GPO_SPARE2_2", 321 },
+ { "MOTO_SPARE1_1", "INTERFACE_IOS__MOTO_SPARE1_1", 322 },
+ { "MOTO_SPARE1_2", "INTERFACE_IOS__MOTO_SPARE1_2", 323 },
+ { "MOTO_SPARE2_1", "INTERFACE_IOS__MOTO_SPARE2_1", 324 },
+ { "MOTO_SPARE2_2", "INTERFACE_IOS__MOTO_SPARE2_2", 325 },
+ { "SPARE1_ROTENC1", "INTERFACE_IOS__SPARE1_ROTENC1", 326 },
+ { "SPARE2_ROTENC2", "INTERFACE_IOS__SPARE2_ROTENC2", 327 },
+ { "SPARE1_ROTENC3", "INTERFACE_IOS__SPARE1_ROTENC3", 328 },
+ { "SPARE2_ROTENC4", "INTERFACE_IOS__SPARE2_ROTENC4", 329 },
+ { "CHILLER_CTRL", "INTERFACE_IOS__CHILLER_CTRL", 330 },
+ { "AN_AIRPRESS_1", "INTERFACE_IOS__AN_AIRPRESS_1", 331 },
+ { "AN_AIRPRESS_2", "INTERFACE_IOS__AN_AIRPRESS_2", 332 },
+ { "AN_VOCSENS", "INTERFACE_IOS__AN_VOCSENS", 333 },
+ { "AN_BLOWERCTRL", "INTERFACE_IOS__AN_BLOWERCTRL", 334 },
+ { "GPI_AIRFLOW_FLAP", "INTERFACE_IOS__GPI_AIRFLOW_FLAP", 335 },
+ { "GPI_BLOWER_TACH", "INTERFACE_IOS__GPI_BLOWER_TACH", 336 },
+ { "GPI_CHILLER_FAULT", "INTERFACE_IOS__GPI_CHILLER_FAULT", 337 },
+ { "GPI_CHILLER_STAT1", "INTERFACE_IOS__GPI_CHILLER_STAT1", 338 },
+ { "WHS_VOCTEMP", "INTERFACE_IOS__WHS_VOCTEMP", 339 },
+ { "GPI_SW_FILTER_PRES", "INTERFACE_IOS__GPI_SW_FILTER_PRES", 340 },
+ { "GPI_WCONTAINER_FULL", "INTERFACE_IOS__GPI_WCONTAINER_FULL", 341 },
+ { "GPI_WCONTAINER_WARN", "INTERFACE_IOS__GPI_WCONTAINER_WARN", 342 },
+ { "GPO_BLOWER_PWM", "INTERFACE_IOS__GPO_BLOWER_PWM", 343 },
+ { "GPO_CHILLER_SSR9_CTRL", "INTERFACE_IOS__GPO_CHILLER_SSR9_CTRL", 344 },
+ { "GPO_WHS_WTANKPUMP2", "INTERFACE_IOS__GPO_WHS_WTANKPUMP2", 345 },
+ { "VALVE_WASTE_TANK", "INTERFACE_IOS__VALVE_WASTE_TANK", 346 },
+};
+static const ProtobufCIntRange interface_ios__value_ranges[] = {
+{0, 0},{0, 347}
+};
+static const ProtobufCEnumValueIndex interface_ios__enum_values_by_name[347] =
+{
+ { "AN10V_SPARE1", 306 },
+ { "AN10V_SPARE2", 307 },
+ { "AN5V_LDANCER1", 230 },
+ { "AN5V_LDANCER2", 231 },
+ { "AN5V_RDANCER", 283 },
+ { "ANALOG_DRYER_TEMP1", 32 },
+ { "ANALOG_DRYER_TEMP2", 33 },
+ { "ANALOG_DRYER_TEMP3", 34 },
+ { "ANALOG_DYEINGH_TEMP1", 6 },
+ { "ANALOG_DYEINGH_TEMP2", 7 },
+ { "ANALOG_DYEINGH_TEMP3", 8 },
+ { "ANALOG_DYEINGH_TEMP4", 9 },
+ { "ANALOG_DYEINGH_TEMP5", 10 },
+ { "ANALOG_MIXCHIP_TEMP", 0 },
+ { "AN_AIRPRESS_1", 331 },
+ { "AN_AIRPRESS_2", 332 },
+ { "AN_BLOWERCTRL", 334 },
+ { "AN_DRYER_CURSEN1", 29 },
+ { "AN_DRYER_CURSEN2", 30 },
+ { "AN_DRYER_CURSEN3", 31 },
+ { "AN_DYEINGH_CURSEN_1", 1 },
+ { "AN_DYEINGH_CURSEN_2", 2 },
+ { "AN_DYEINGH_CURSEN_3", 3 },
+ { "AN_DYEINGH_CURSEN_4", 4 },
+ { "AN_DYEINGH_CURSEN_5", 5 },
+ { "AN_ENCLOSURETEMP1", 256 },
+ { "AN_ENCLOSURETEMP2", 257 },
+ { "AN_ENCLOSURETEMP3", 258 },
+ { "AN_IDS_PRESSENS_1", 67 },
+ { "AN_IDS_PRESSENS_2", 68 },
+ { "AN_IDS_PRESSENS_3", 69 },
+ { "AN_IDS_PRESSENS_4", 70 },
+ { "AN_IDS_PRESSENS_5", 71 },
+ { "AN_IDS_PRESSENS_6", 72 },
+ { "AN_IDS_PRESSENS_7", 73 },
+ { "AN_IDS_PRESSENS_8", 74 },
+ { "AN_MIDTANK_PRESSENS1", 75 },
+ { "AN_MIDTANK_PRESSENS2", 76 },
+ { "AN_MIDTANK_PRESSENS3", 77 },
+ { "AN_MIDTANK_PRESSENS4", 78 },
+ { "AN_MIDTANK_PRESSENS5", 79 },
+ { "AN_MIDTANK_PRESSENS6", 80 },
+ { "AN_MIDTANK_PRESSENS7", 81 },
+ { "AN_MIXCHIP_CURSENn", 82 },
+ { "AN_VOCSENS", 333 },
+ { "CART1", 215 },
+ { "CART2", 216 },
+ { "CART3", 214 },
+ { "CART4", 217 },
+ { "CART5", 219 },
+ { "CART6", 220 },
+ { "CART7", 218 },
+ { "CART8", 221 },
+ { "CHILLER_CTRL", 330 },
+ { "DH1", 25 },
+ { "DH2", 24 },
+ { "DISPENSER_1", 204 },
+ { "DISPENSER_2", 209 },
+ { "DISPENSER_3", 205 },
+ { "DISPENSER_4", 210 },
+ { "DISPENSER_5", 206 },
+ { "DISPENSER_6", 211 },
+ { "DISPENSER_7", 207 },
+ { "DISPENSER_8", 212 },
+ { "DISPENSER_ROTENC1", 189 },
+ { "DISPENSER_ROTENC2", 190 },
+ { "DISPENSER_ROTENC3", 191 },
+ { "DISPENSER_ROTENC4", 192 },
+ { "DISPENSER_ROTENC5", 193 },
+ { "DISPENSER_ROTENC6", 194 },
+ { "DISPENSER_ROTENC7", 195 },
+ { "DISPENSER_ROTENC8", 196 },
+ { "DISPENSER_VALVE_1", 197 },
+ { "DISPENSER_VALVE_2", 198 },
+ { "DISPENSER_VALVE_3", 199 },
+ { "DISPENSER_VALVE_4", 200 },
+ { "DISPENSER_VALVE_5", 201 },
+ { "DISPENSER_VALVE_6", 202 },
+ { "DISPENSER_VALVE_7", 203 },
+ { "DRYER1", 47 },
+ { "DRYER2", 46 },
+ { "DRYER_LOADARM_ROTENC", 51 },
+ { "ELECTRICALENC", 56 },
+ { "EXTWINDER_CTRL", 65 },
+ { "EXTWINDINGUNIT", 66 },
+ { "FAN1_TACH", 278 },
+ { "FAN2_TACH", 279 },
+ { "FAN3_TACH", 280 },
+ { "FAN4_TACH", 281 },
+ { "FAN5_TACH", 282 },
+ { "FAN_TACHO1", 275 },
+ { "FAN_TACHO2", 276 },
+ { "FAN_TACHO3", 277 },
+ { "GPI_AIRFLOW_FLAP", 335 },
+ { "GPI_BLOWER_TACH", 336 },
+ { "GPI_CHILLER_FAULT", 337 },
+ { "GPI_CHILLER_STAT1", 338 },
+ { "GPI_EXTWINDER_1", 58 },
+ { "GPI_EXTWINDER_2", 59 },
+ { "GPI_EXTWINDER_3", 60 },
+ { "GPI_PANSW1", 259 },
+ { "GPI_PANSW2", 260 },
+ { "GPI_PANSW3", 261 },
+ { "GPI_PANSW4", 262 },
+ { "GPI_PANSW5", 263 },
+ { "GPI_PANSW6", 264 },
+ { "GPI_PS1_DC_OK", 52 },
+ { "GPI_PWRBUTTON", 265 },
+ { "GPI_SW_FILTER_PRES", 340 },
+ { "GPI_TACTSW1", 266 },
+ { "GPI_TACTSW2", 267 },
+ { "GPI_TACTSW3", 268 },
+ { "GPI_TACTSW4", 269 },
+ { "GPI_TFEED_BREAK_1", 285 },
+ { "GPI_TFEED_BREAK_2", 286 },
+ { "GPI_WCONTAINER_FULL", 341 },
+ { "GPI_WCONTAINER_WARN", 342 },
+ { "GPO_BLOWER_PWM", 343 },
+ { "GPO_BUZZER", 270 },
+ { "GPO_CHILLER_SSR9_CTRL", 344 },
+ { "GPO_DILUTORPUMP_SSR10_CTRL", 163 },
+ { "GPO_DRYER_SSR1_CTRL", 43 },
+ { "GPO_DRYER_SSR2_CTRL", 44 },
+ { "GPO_DRYER_SSR3_CTRL", 45 },
+ { "GPO_DYEINGH_SSR5_CTRL", 20 },
+ { "GPO_DYEINGH_SSR6_CTRL", 21 },
+ { "GPO_DYEINGH_SSR7_CTRL", 22 },
+ { "GPO_DYEINGH_SSR8_CTRL", 23 },
+ { "GPO_EXTWINDER_1", 61 },
+ { "GPO_EXTWINDER_2", 62 },
+ { "GPO_EXTWINDER_3", 63 },
+ { "GPO_EXTWINDER_SSR11_CTRL", 64 },
+ { "GPO_LED1", 271 },
+ { "GPO_LED2", 272 },
+ { "GPO_LED3", 273 },
+ { "GPO_LED4", 274 },
+ { "GPO_MIXCHIP_SSR4_CTRL", 19 },
+ { "GPO_PDOWN_RL1_CTRL", 53 },
+ { "GPO_SPARE1_1", 318 },
+ { "GPO_SPARE1_2", 319 },
+ { "GPO_SPARE2_1", 320 },
+ { "GPO_SPARE2_2", 321 },
+ { "GPO_SPARE_SSR12_CTRL", 54 },
+ { "GPO_SPARE_SSR13_CTRL", 55 },
+ { "GPO_TFEED_BREAK_1", 296 },
+ { "GPO_TFEED_BREAK_2", 297 },
+ { "GPO_WASTECH_PUMP2", 164 },
+ { "GPO_WHS_WTANKPUMP2", 345 },
+ { "INTWINDINGUNIT", 229 },
+ { "LDANCER1_ROTENC", 251 },
+ { "LDANCER2_ROTENC", 252 },
+ { "LSPARE1_ROTENC", 249 },
+ { "LSPARE2_ROTENC", 250 },
+ { "LSPARE_ROTENC", 253 },
+ { "LS_DH_CLEAN_DOWN", 11 },
+ { "LS_DH_CLEAN_LEFT", 12 },
+ { "LS_DH_CLEAN_RIGHT", 13 },
+ { "LS_DH_CLEAN_UP", 14 },
+ { "LS_DH_LID_CLEANING", 15 },
+ { "LS_DH_LID_CLOSED", 16 },
+ { "LS_DH_LID_OPEN", 17 },
+ { "LS_DH_SPARE1", 18 },
+ { "LS_DISPENSER_25_1", 83 },
+ { "LS_DISPENSER_25_2", 84 },
+ { "LS_DISPENSER_25_3", 85 },
+ { "LS_DISPENSER_25_4", 86 },
+ { "LS_DISPENSER_25_5", 87 },
+ { "LS_DISPENSER_25_6", 88 },
+ { "LS_DISPENSER_25_7", 89 },
+ { "LS_DISPENSER_25_8", 90 },
+ { "LS_DISPENSER_50_1", 91 },
+ { "LS_DISPENSER_50_2", 92 },
+ { "LS_DISPENSER_50_3", 93 },
+ { "LS_DISPENSER_50_4", 94 },
+ { "LS_DISPENSER_50_5", 95 },
+ { "LS_DISPENSER_50_6", 96 },
+ { "LS_DISPENSER_50_7", 97 },
+ { "LS_DISPENSER_50_8", 98 },
+ { "LS_DISPENSER_75_1", 99 },
+ { "LS_DISPENSER_75_2", 100 },
+ { "LS_DISPENSER_75_3", 101 },
+ { "LS_DISPENSER_75_4", 102 },
+ { "LS_DISPENSER_75_5", 103 },
+ { "LS_DISPENSER_75_6", 104 },
+ { "LS_DISPENSER_75_7", 105 },
+ { "LS_DISPENSER_75_8", 106 },
+ { "LS_DISPENSER_DOWN_1", 107 },
+ { "LS_DISPENSER_DOWN_2", 108 },
+ { "LS_DISPENSER_DOWN_3", 109 },
+ { "LS_DISPENSER_DOWN_4", 110 },
+ { "LS_DISPENSER_DOWN_5", 111 },
+ { "LS_DISPENSER_DOWN_6", 112 },
+ { "LS_DISPENSER_DOWN_7", 113 },
+ { "LS_DISPENSER_DOWN_8", 114 },
+ { "LS_DISPENSER_SPARE_1", 115 },
+ { "LS_DISPENSER_SPARE_2", 116 },
+ { "LS_DISPENSER_SPARE_3", 117 },
+ { "LS_DISPENSER_SPARE_4", 118 },
+ { "LS_DISPENSER_SPARE_5", 119 },
+ { "LS_DISPENSER_SPARE_6", 120 },
+ { "LS_DISPENSER_SPARE_7", 121 },
+ { "LS_DISPENSER_SPARE_8", 122 },
+ { "LS_DISPENSER_UP_1", 123 },
+ { "LS_DISPENSER_UP_2", 124 },
+ { "LS_DISPENSER_UP_3", 125 },
+ { "LS_DISPENSER_UP_4", 126 },
+ { "LS_DISPENSER_UP_5", 127 },
+ { "LS_DISPENSER_UP_6", 128 },
+ { "LS_DISPENSER_UP_7", 129 },
+ { "LS_DISPENSER_UP_8", 130 },
+ { "LS_DRYER_LID_CLOSED", 35 },
+ { "LS_DRYER_LID_OPEN", 36 },
+ { "LS_DRYER_SPARE1", 37 },
+ { "LS_DRYER_SPARE2", 38 },
+ { "LS_DRYER_SPARE3", 39 },
+ { "LS_DRYER_SPARE4", 40 },
+ { "LS_LDANCER1_DOWN", 232 },
+ { "LS_LDANCER1_UP", 233 },
+ { "LS_LDANCER2_DOWN", 234 },
+ { "LS_LDANCER2_UP", 235 },
+ { "LS_LLOADMOTOR_DOWN", 236 },
+ { "LS_LLOADMOTOR_UP", 237 },
+ { "LS_LOADARM_LEFT", 41 },
+ { "LS_LOADARM_RIGHT", 42 },
+ { "LS_LPIVOT_DOWN", 238 },
+ { "LS_LPIVOT_UP", 239 },
+ { "LS_LSPARE1", 240 },
+ { "LS_LSPARE2", 241 },
+ { "LS_PIVOT_SPARE1", 242 },
+ { "LS_PIVOT_SPARE2", 243 },
+ { "LS_RDANCER_DOWN", 287 },
+ { "LS_RDANCER_UP", 288 },
+ { "LS_RLOADMOTOR_DOWN", 291 },
+ { "LS_RLOADMOTOR_UP", 284 },
+ { "LS_RLOADRAM_DOWN", 292 },
+ { "LS_RLOADRAM_UP", 293 },
+ { "LS_RSPARE1", 294 },
+ { "LS_RSPARE2", 295 },
+ { "LS_SCREW_LEFT", 222 },
+ { "LS_SCREW_RIGHT", 223 },
+ { "LS_SPARE1_1", 308 },
+ { "LS_SPARE1_2", 309 },
+ { "LS_SPARE1_3", 310 },
+ { "LS_SPARE1_4", 311 },
+ { "LS_SPARE2_1", 312 },
+ { "LS_SPARE2_2", 315 },
+ { "LS_SPARE2_3", 316 },
+ { "LS_SPARE2_4", 317 },
+ { "LTFEEDUNIT1", 255 },
+ { "LTFEEDUNIT2", 254 },
+ { "MIDTANK1_LVL1_FLOAT", 131 },
+ { "MIDTANK1_LVL2_FLOAT", 132 },
+ { "MIDTANK1_LVL3_FLOAT", 133 },
+ { "MIDTANK1_LVL4_FLOAT", 134 },
+ { "MIDTANK2_LVL1_FLOAT", 135 },
+ { "MIDTANK2_LVL2_FLOAT", 136 },
+ { "MIDTANK2_LVL3_FLOAT", 137 },
+ { "MIDTANK2_LVL4_FLOAT", 138 },
+ { "MIDTANK3_1", 208 },
+ { "MIDTANK3_2", 213 },
+ { "MIDTANK3_LVL1_FLOAT", 139 },
+ { "MIDTANK3_LVL2_FLOAT", 140 },
+ { "MIDTANK3_LVL3_FLOAT", 141 },
+ { "MIDTANK3_LVL4_FLOAT", 142 },
+ { "MIDTANK4_LVL1_FLOAT", 143 },
+ { "MIDTANK4_LVL2_FLOAT", 144 },
+ { "MIDTANK4_LVL3_FLOAT", 145 },
+ { "MIDTANK4_LVL4_FLOAT", 146 },
+ { "MIDTANK5_LVL1_FLOAT", 147 },
+ { "MIDTANK5_LVL2_FLOAT", 148 },
+ { "MIDTANK5_LVL3_FLOAT", 149 },
+ { "MIDTANK5_LVL4_FLOAT", 150 },
+ { "MIDTANK6_LVL1_FLOAT", 151 },
+ { "MIDTANK6_LVL2_FLOAT", 152 },
+ { "MIDTANK6_LVL3_FLOAT", 153 },
+ { "MIDTANK6_LVL4_FLOAT", 154 },
+ { "MIDTANK7_LVL1_FLOAT", 155 },
+ { "MIDTANK7_LVL2_FLOAT", 156 },
+ { "MIDTANK7_LVL3_FLOAT", 157 },
+ { "MIDTANK7_LVL4_FLOAT", 158 },
+ { "MIDTANK8_LVL1_FLOAT", 159 },
+ { "MIDTANK8_LVL2_FLOAT", 160 },
+ { "MIDTANK8_LVL3_FLOAT", 161 },
+ { "MIDTANK8_LVL4_FLOAT", 162 },
+ { "MOTO_DH_CLEANHEAD", 26 },
+ { "MOTO_DH_CLEANMECH", 27 },
+ { "MOTO_DH_LID", 28 },
+ { "MOTO_DISPENSER_1", 181 },
+ { "MOTO_DISPENSER_2", 182 },
+ { "MOTO_DISPENSER_3", 183 },
+ { "MOTO_DISPENSER_4", 184 },
+ { "MOTO_DISPENSER_5", 185 },
+ { "MOTO_DISPENSER_6", 186 },
+ { "MOTO_DISPENSER_7", 187 },
+ { "MOTO_DISPENSER_8", 188 },
+ { "MOTO_DRYER_DRIVING", 48 },
+ { "MOTO_DRYER_LID", 49 },
+ { "MOTO_DRYER_LOADARM", 50 },
+ { "MOTO_LDANCER1", 244 },
+ { "MOTO_LDANCER2", 245 },
+ { "MOTO_LDRIVING", 246 },
+ { "MOTO_LLOADING", 247 },
+ { "MOTO_LPIVOT1", 248 },
+ { "MOTO_RDANCER", 298 },
+ { "MOTO_RDRIVING", 299 },
+ { "MOTO_RLOADARM", 300 },
+ { "MOTO_RLOADING", 301 },
+ { "MOTO_SCREW", 226 },
+ { "MOTO_SPARE1_1", 322 },
+ { "MOTO_SPARE1_2", 323 },
+ { "MOTO_SPARE2_1", 324 },
+ { "MOTO_SPARE2_2", 325 },
+ { "MOTO_WINDER", 227 },
+ { "Midtank1Air", 165 },
+ { "Midtank1Cartridge", 173 },
+ { "Midtank2Air", 166 },
+ { "Midtank2Cartridge", 174 },
+ { "Midtank3Air", 167 },
+ { "Midtank3Cartridge", 175 },
+ { "Midtank4Air", 168 },
+ { "Midtank4Cartridge", 176 },
+ { "Midtank5Air", 169 },
+ { "Midtank5Cartridge", 177 },
+ { "Midtank6Air", 170 },
+ { "Midtank6Cartridge", 178 },
+ { "Midtank7Air", 171 },
+ { "Midtank7Cartridge", 179 },
+ { "Midtank8Air", 172 },
+ { "Midtank8Cartridge", 180 },
+ { "RDANCER_ROTENC", 304 },
+ { "RSPARE_ROTENC1", 302 },
+ { "RSPARE_ROTENC2", 305 },
+ { "RSPEEDSENS_ROTENC", 303 },
+ { "RTFEEDUNIT1", 290 },
+ { "RTFEEDUNIT2", 289 },
+ { "SCREW_ROTENC", 228 },
+ { "SPARE1", 314 },
+ { "SPARE1_ROTENC1", 326 },
+ { "SPARE1_ROTENC3", 328 },
+ { "SPARE2", 313 },
+ { "SPARE2_ROTENC2", 327 },
+ { "SPARE2_ROTENC4", 329 },
+ { "SW_SPARE", 224 },
+ { "SW_SPOOL_EXISTS", 225 },
+ { "USERPANEL", 57 },
+ { "VALVE_WASTE_TANK", 346 },
+ { "WHS_VOCTEMP", 339 },
+};
+const ProtobufCEnumDescriptor interface_ios__descriptor =
+{
+ PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
+ "InterfaceIOs",
+ "InterfaceIOs",
+ "InterfaceIOs",
+ "",
+ 347,
+ interface_ios__enum_values_by_number,
+ 347,
+ interface_ios__enum_values_by_name,
+ 1,
+ interface_ios__value_ranges,
+ NULL,NULL,NULL,NULL /* reserved[1234] */
+};
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/InterfaceIOs.pb-c.h b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/InterfaceIOs.pb-c.h
new file mode 100644
index 000000000..006eab1d7
--- /dev/null
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/InterfaceIOs.pb-c.h
@@ -0,0 +1,388 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: InterfaceIOs.proto */
+
+#ifndef PROTOBUF_C_InterfaceIOs_2eproto__INCLUDED
+#define PROTOBUF_C_InterfaceIOs_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+
+
+/* --- enums --- */
+
+typedef enum _InterfaceIOs {
+ INTERFACE_IOS__ANALOG_MIXCHIP_TEMP = 0,
+ INTERFACE_IOS__AN_DYEINGH_CURSEN_1 = 1,
+ INTERFACE_IOS__AN_DYEINGH_CURSEN_2 = 2,
+ INTERFACE_IOS__AN_DYEINGH_CURSEN_3 = 3,
+ INTERFACE_IOS__AN_DYEINGH_CURSEN_4 = 4,
+ INTERFACE_IOS__AN_DYEINGH_CURSEN_5 = 5,
+ INTERFACE_IOS__ANALOG_DYEINGH_TEMP1 = 6,
+ INTERFACE_IOS__ANALOG_DYEINGH_TEMP2 = 7,
+ INTERFACE_IOS__ANALOG_DYEINGH_TEMP3 = 8,
+ INTERFACE_IOS__ANALOG_DYEINGH_TEMP4 = 9,
+ INTERFACE_IOS__ANALOG_DYEINGH_TEMP5 = 10,
+ INTERFACE_IOS__LS_DH_CLEAN_DOWN = 11,
+ INTERFACE_IOS__LS_DH_CLEAN_LEFT = 12,
+ INTERFACE_IOS__LS_DH_CLEAN_RIGHT = 13,
+ INTERFACE_IOS__LS_DH_CLEAN_UP = 14,
+ INTERFACE_IOS__LS_DH_LID_CLEANING = 15,
+ INTERFACE_IOS__LS_DH_LID_CLOSED = 16,
+ INTERFACE_IOS__LS_DH_LID_OPEN = 17,
+ INTERFACE_IOS__LS_DH_SPARE1 = 18,
+ INTERFACE_IOS__GPO_MIXCHIP_SSR4_CTRL = 19,
+ INTERFACE_IOS__GPO_DYEINGH_SSR5_CTRL = 20,
+ INTERFACE_IOS__GPO_DYEINGH_SSR6_CTRL = 21,
+ INTERFACE_IOS__GPO_DYEINGH_SSR7_CTRL = 22,
+ INTERFACE_IOS__GPO_DYEINGH_SSR8_CTRL = 23,
+ INTERFACE_IOS__DH2 = 24,
+ INTERFACE_IOS__DH1 = 25,
+ INTERFACE_IOS__MOTO_DH_CLEANHEAD = 26,
+ INTERFACE_IOS__MOTO_DH_CLEANMECH = 27,
+ INTERFACE_IOS__MOTO_DH_LID = 28,
+ INTERFACE_IOS__AN_DRYER_CURSEN1 = 29,
+ INTERFACE_IOS__AN_DRYER_CURSEN2 = 30,
+ INTERFACE_IOS__AN_DRYER_CURSEN3 = 31,
+ INTERFACE_IOS__ANALOG_DRYER_TEMP1 = 32,
+ INTERFACE_IOS__ANALOG_DRYER_TEMP2 = 33,
+ INTERFACE_IOS__ANALOG_DRYER_TEMP3 = 34,
+ INTERFACE_IOS__LS_DRYER_LID_CLOSED = 35,
+ INTERFACE_IOS__LS_DRYER_LID_OPEN = 36,
+ INTERFACE_IOS__LS_DRYER_SPARE1 = 37,
+ INTERFACE_IOS__LS_DRYER_SPARE2 = 38,
+ INTERFACE_IOS__LS_DRYER_SPARE3 = 39,
+ INTERFACE_IOS__LS_DRYER_SPARE4 = 40,
+ INTERFACE_IOS__LS_LOADARM_LEFT = 41,
+ INTERFACE_IOS__LS_LOADARM_RIGHT = 42,
+ INTERFACE_IOS__GPO_DRYER_SSR1_CTRL = 43,
+ INTERFACE_IOS__GPO_DRYER_SSR2_CTRL = 44,
+ INTERFACE_IOS__GPO_DRYER_SSR3_CTRL = 45,
+ INTERFACE_IOS__DRYER2 = 46,
+ INTERFACE_IOS__DRYER1 = 47,
+ INTERFACE_IOS__MOTO_DRYER_DRIVING = 48,
+ INTERFACE_IOS__MOTO_DRYER_LID = 49,
+ INTERFACE_IOS__MOTO_DRYER_LOADARM = 50,
+ INTERFACE_IOS__DRYER_LOADARM_ROTENC = 51,
+ INTERFACE_IOS__GPI_PS1_DC_OK = 52,
+ INTERFACE_IOS__GPO_PDOWN_RL1_CTRL = 53,
+ INTERFACE_IOS__GPO_SPARE_SSR12_CTRL = 54,
+ INTERFACE_IOS__GPO_SPARE_SSR13_CTRL = 55,
+ INTERFACE_IOS__ELECTRICALENC = 56,
+ INTERFACE_IOS__USERPANEL = 57,
+ INTERFACE_IOS__GPI_EXTWINDER_1 = 58,
+ INTERFACE_IOS__GPI_EXTWINDER_2 = 59,
+ INTERFACE_IOS__GPI_EXTWINDER_3 = 60,
+ INTERFACE_IOS__GPO_EXTWINDER_1 = 61,
+ INTERFACE_IOS__GPO_EXTWINDER_2 = 62,
+ INTERFACE_IOS__GPO_EXTWINDER_3 = 63,
+ INTERFACE_IOS__GPO_EXTWINDER_SSR11_CTRL = 64,
+ INTERFACE_IOS__EXTWINDER_CTRL = 65,
+ INTERFACE_IOS__EXTWINDINGUNIT = 66,
+ INTERFACE_IOS__AN_IDS_PRESSENS_1 = 67,
+ INTERFACE_IOS__AN_IDS_PRESSENS_2 = 68,
+ INTERFACE_IOS__AN_IDS_PRESSENS_3 = 69,
+ INTERFACE_IOS__AN_IDS_PRESSENS_4 = 70,
+ INTERFACE_IOS__AN_IDS_PRESSENS_5 = 71,
+ INTERFACE_IOS__AN_IDS_PRESSENS_6 = 72,
+ INTERFACE_IOS__AN_IDS_PRESSENS_7 = 73,
+ INTERFACE_IOS__AN_IDS_PRESSENS_8 = 74,
+ INTERFACE_IOS__AN_MIDTANK_PRESSENS1 = 75,
+ INTERFACE_IOS__AN_MIDTANK_PRESSENS2 = 76,
+ INTERFACE_IOS__AN_MIDTANK_PRESSENS3 = 77,
+ INTERFACE_IOS__AN_MIDTANK_PRESSENS4 = 78,
+ INTERFACE_IOS__AN_MIDTANK_PRESSENS5 = 79,
+ INTERFACE_IOS__AN_MIDTANK_PRESSENS6 = 80,
+ INTERFACE_IOS__AN_MIDTANK_PRESSENS7 = 81,
+ INTERFACE_IOS__AN_MIXCHIP_CURSENn = 82,
+ INTERFACE_IOS__LS_DISPENSER_25_1 = 83,
+ INTERFACE_IOS__LS_DISPENSER_25_2 = 84,
+ INTERFACE_IOS__LS_DISPENSER_25_3 = 85,
+ INTERFACE_IOS__LS_DISPENSER_25_4 = 86,
+ INTERFACE_IOS__LS_DISPENSER_25_5 = 87,
+ INTERFACE_IOS__LS_DISPENSER_25_6 = 88,
+ INTERFACE_IOS__LS_DISPENSER_25_7 = 89,
+ INTERFACE_IOS__LS_DISPENSER_25_8 = 90,
+ INTERFACE_IOS__LS_DISPENSER_50_1 = 91,
+ INTERFACE_IOS__LS_DISPENSER_50_2 = 92,
+ INTERFACE_IOS__LS_DISPENSER_50_3 = 93,
+ INTERFACE_IOS__LS_DISPENSER_50_4 = 94,
+ INTERFACE_IOS__LS_DISPENSER_50_5 = 95,
+ INTERFACE_IOS__LS_DISPENSER_50_6 = 96,
+ INTERFACE_IOS__LS_DISPENSER_50_7 = 97,
+ INTERFACE_IOS__LS_DISPENSER_50_8 = 98,
+ INTERFACE_IOS__LS_DISPENSER_75_1 = 99,
+ INTERFACE_IOS__LS_DISPENSER_75_2 = 100,
+ INTERFACE_IOS__LS_DISPENSER_75_3 = 101,
+ INTERFACE_IOS__LS_DISPENSER_75_4 = 102,
+ INTERFACE_IOS__LS_DISPENSER_75_5 = 103,
+ INTERFACE_IOS__LS_DISPENSER_75_6 = 104,
+ INTERFACE_IOS__LS_DISPENSER_75_7 = 105,
+ INTERFACE_IOS__LS_DISPENSER_75_8 = 106,
+ INTERFACE_IOS__LS_DISPENSER_DOWN_1 = 107,
+ INTERFACE_IOS__LS_DISPENSER_DOWN_2 = 108,
+ INTERFACE_IOS__LS_DISPENSER_DOWN_3 = 109,
+ INTERFACE_IOS__LS_DISPENSER_DOWN_4 = 110,
+ INTERFACE_IOS__LS_DISPENSER_DOWN_5 = 111,
+ INTERFACE_IOS__LS_DISPENSER_DOWN_6 = 112,
+ INTERFACE_IOS__LS_DISPENSER_DOWN_7 = 113,
+ INTERFACE_IOS__LS_DISPENSER_DOWN_8 = 114,
+ INTERFACE_IOS__LS_DISPENSER_SPARE_1 = 115,
+ INTERFACE_IOS__LS_DISPENSER_SPARE_2 = 116,
+ INTERFACE_IOS__LS_DISPENSER_SPARE_3 = 117,
+ INTERFACE_IOS__LS_DISPENSER_SPARE_4 = 118,
+ INTERFACE_IOS__LS_DISPENSER_SPARE_5 = 119,
+ INTERFACE_IOS__LS_DISPENSER_SPARE_6 = 120,
+ INTERFACE_IOS__LS_DISPENSER_SPARE_7 = 121,
+ INTERFACE_IOS__LS_DISPENSER_SPARE_8 = 122,
+ INTERFACE_IOS__LS_DISPENSER_UP_1 = 123,
+ INTERFACE_IOS__LS_DISPENSER_UP_2 = 124,
+ INTERFACE_IOS__LS_DISPENSER_UP_3 = 125,
+ INTERFACE_IOS__LS_DISPENSER_UP_4 = 126,
+ INTERFACE_IOS__LS_DISPENSER_UP_5 = 127,
+ INTERFACE_IOS__LS_DISPENSER_UP_6 = 128,
+ INTERFACE_IOS__LS_DISPENSER_UP_7 = 129,
+ INTERFACE_IOS__LS_DISPENSER_UP_8 = 130,
+ INTERFACE_IOS__MIDTANK1_LVL1_FLOAT = 131,
+ INTERFACE_IOS__MIDTANK1_LVL2_FLOAT = 132,
+ INTERFACE_IOS__MIDTANK1_LVL3_FLOAT = 133,
+ INTERFACE_IOS__MIDTANK1_LVL4_FLOAT = 134,
+ INTERFACE_IOS__MIDTANK2_LVL1_FLOAT = 135,
+ INTERFACE_IOS__MIDTANK2_LVL2_FLOAT = 136,
+ INTERFACE_IOS__MIDTANK2_LVL3_FLOAT = 137,
+ INTERFACE_IOS__MIDTANK2_LVL4_FLOAT = 138,
+ INTERFACE_IOS__MIDTANK3_LVL1_FLOAT = 139,
+ INTERFACE_IOS__MIDTANK3_LVL2_FLOAT = 140,
+ INTERFACE_IOS__MIDTANK3_LVL3_FLOAT = 141,
+ INTERFACE_IOS__MIDTANK3_LVL4_FLOAT = 142,
+ INTERFACE_IOS__MIDTANK4_LVL1_FLOAT = 143,
+ INTERFACE_IOS__MIDTANK4_LVL2_FLOAT = 144,
+ INTERFACE_IOS__MIDTANK4_LVL3_FLOAT = 145,
+ INTERFACE_IOS__MIDTANK4_LVL4_FLOAT = 146,
+ INTERFACE_IOS__MIDTANK5_LVL1_FLOAT = 147,
+ INTERFACE_IOS__MIDTANK5_LVL2_FLOAT = 148,
+ INTERFACE_IOS__MIDTANK5_LVL3_FLOAT = 149,
+ INTERFACE_IOS__MIDTANK5_LVL4_FLOAT = 150,
+ INTERFACE_IOS__MIDTANK6_LVL1_FLOAT = 151,
+ INTERFACE_IOS__MIDTANK6_LVL2_FLOAT = 152,
+ INTERFACE_IOS__MIDTANK6_LVL3_FLOAT = 153,
+ INTERFACE_IOS__MIDTANK6_LVL4_FLOAT = 154,
+ INTERFACE_IOS__MIDTANK7_LVL1_FLOAT = 155,
+ INTERFACE_IOS__MIDTANK7_LVL2_FLOAT = 156,
+ INTERFACE_IOS__MIDTANK7_LVL3_FLOAT = 157,
+ INTERFACE_IOS__MIDTANK7_LVL4_FLOAT = 158,
+ INTERFACE_IOS__MIDTANK8_LVL1_FLOAT = 159,
+ INTERFACE_IOS__MIDTANK8_LVL2_FLOAT = 160,
+ INTERFACE_IOS__MIDTANK8_LVL3_FLOAT = 161,
+ INTERFACE_IOS__MIDTANK8_LVL4_FLOAT = 162,
+ INTERFACE_IOS__GPO_DILUTORPUMP_SSR10_CTRL = 163,
+ INTERFACE_IOS__GPO_WASTECH_PUMP2 = 164,
+ INTERFACE_IOS__Midtank1Air = 165,
+ INTERFACE_IOS__Midtank2Air = 166,
+ INTERFACE_IOS__Midtank3Air = 167,
+ INTERFACE_IOS__Midtank4Air = 168,
+ INTERFACE_IOS__Midtank5Air = 169,
+ INTERFACE_IOS__Midtank6Air = 170,
+ INTERFACE_IOS__Midtank7Air = 171,
+ INTERFACE_IOS__Midtank8Air = 172,
+ INTERFACE_IOS__Midtank1Cartridge = 173,
+ INTERFACE_IOS__Midtank2Cartridge = 174,
+ INTERFACE_IOS__Midtank3Cartridge = 175,
+ INTERFACE_IOS__Midtank4Cartridge = 176,
+ INTERFACE_IOS__Midtank5Cartridge = 177,
+ INTERFACE_IOS__Midtank6Cartridge = 178,
+ INTERFACE_IOS__Midtank7Cartridge = 179,
+ INTERFACE_IOS__Midtank8Cartridge = 180,
+ INTERFACE_IOS__MOTO_DISPENSER_1 = 181,
+ INTERFACE_IOS__MOTO_DISPENSER_2 = 182,
+ INTERFACE_IOS__MOTO_DISPENSER_3 = 183,
+ INTERFACE_IOS__MOTO_DISPENSER_4 = 184,
+ INTERFACE_IOS__MOTO_DISPENSER_5 = 185,
+ INTERFACE_IOS__MOTO_DISPENSER_6 = 186,
+ INTERFACE_IOS__MOTO_DISPENSER_7 = 187,
+ INTERFACE_IOS__MOTO_DISPENSER_8 = 188,
+ INTERFACE_IOS__DISPENSER_ROTENC1 = 189,
+ INTERFACE_IOS__DISPENSER_ROTENC2 = 190,
+ INTERFACE_IOS__DISPENSER_ROTENC3 = 191,
+ INTERFACE_IOS__DISPENSER_ROTENC4 = 192,
+ INTERFACE_IOS__DISPENSER_ROTENC5 = 193,
+ INTERFACE_IOS__DISPENSER_ROTENC6 = 194,
+ INTERFACE_IOS__DISPENSER_ROTENC7 = 195,
+ INTERFACE_IOS__DISPENSER_ROTENC8 = 196,
+ INTERFACE_IOS__DISPENSER_VALVE_1 = 197,
+ INTERFACE_IOS__DISPENSER_VALVE_2 = 198,
+ INTERFACE_IOS__DISPENSER_VALVE_3 = 199,
+ INTERFACE_IOS__DISPENSER_VALVE_4 = 200,
+ INTERFACE_IOS__DISPENSER_VALVE_5 = 201,
+ INTERFACE_IOS__DISPENSER_VALVE_6 = 202,
+ INTERFACE_IOS__DISPENSER_VALVE_7 = 203,
+ INTERFACE_IOS__DISPENSER_1 = 204,
+ INTERFACE_IOS__DISPENSER_3 = 205,
+ INTERFACE_IOS__DISPENSER_5 = 206,
+ INTERFACE_IOS__DISPENSER_7 = 207,
+ INTERFACE_IOS__MIDTANK3_1 = 208,
+ INTERFACE_IOS__DISPENSER_2 = 209,
+ INTERFACE_IOS__DISPENSER_4 = 210,
+ INTERFACE_IOS__DISPENSER_6 = 211,
+ INTERFACE_IOS__DISPENSER_8 = 212,
+ INTERFACE_IOS__MIDTANK3_2 = 213,
+ INTERFACE_IOS__CART3 = 214,
+ INTERFACE_IOS__CART1 = 215,
+ INTERFACE_IOS__CART2 = 216,
+ INTERFACE_IOS__CART4 = 217,
+ INTERFACE_IOS__CART7 = 218,
+ INTERFACE_IOS__CART5 = 219,
+ INTERFACE_IOS__CART6 = 220,
+ INTERFACE_IOS__CART8 = 221,
+ INTERFACE_IOS__LS_SCREW_LEFT = 222,
+ INTERFACE_IOS__LS_SCREW_RIGHT = 223,
+ INTERFACE_IOS__SW_SPARE = 224,
+ INTERFACE_IOS__SW_SPOOL_EXISTS = 225,
+ INTERFACE_IOS__MOTO_SCREW = 226,
+ INTERFACE_IOS__MOTO_WINDER = 227,
+ INTERFACE_IOS__SCREW_ROTENC = 228,
+ INTERFACE_IOS__INTWINDINGUNIT = 229,
+ INTERFACE_IOS__AN5V_LDANCER1 = 230,
+ INTERFACE_IOS__AN5V_LDANCER2 = 231,
+ INTERFACE_IOS__LS_LDANCER1_DOWN = 232,
+ INTERFACE_IOS__LS_LDANCER1_UP = 233,
+ INTERFACE_IOS__LS_LDANCER2_DOWN = 234,
+ INTERFACE_IOS__LS_LDANCER2_UP = 235,
+ INTERFACE_IOS__LS_LLOADMOTOR_DOWN = 236,
+ INTERFACE_IOS__LS_LLOADMOTOR_UP = 237,
+ INTERFACE_IOS__LS_LPIVOT_DOWN = 238,
+ INTERFACE_IOS__LS_LPIVOT_UP = 239,
+ INTERFACE_IOS__LS_LSPARE1 = 240,
+ INTERFACE_IOS__LS_LSPARE2 = 241,
+ INTERFACE_IOS__LS_PIVOT_SPARE1 = 242,
+ INTERFACE_IOS__LS_PIVOT_SPARE2 = 243,
+ INTERFACE_IOS__MOTO_LDANCER1 = 244,
+ INTERFACE_IOS__MOTO_LDANCER2 = 245,
+ INTERFACE_IOS__MOTO_LDRIVING = 246,
+ INTERFACE_IOS__MOTO_LLOADING = 247,
+ INTERFACE_IOS__MOTO_LPIVOT1 = 248,
+ INTERFACE_IOS__LSPARE1_ROTENC = 249,
+ INTERFACE_IOS__LSPARE2_ROTENC = 250,
+ INTERFACE_IOS__LDANCER1_ROTENC = 251,
+ INTERFACE_IOS__LDANCER2_ROTENC = 252,
+ INTERFACE_IOS__LSPARE_ROTENC = 253,
+ INTERFACE_IOS__LTFEEDUNIT2 = 254,
+ INTERFACE_IOS__LTFEEDUNIT1 = 255,
+ INTERFACE_IOS__AN_ENCLOSURETEMP1 = 256,
+ INTERFACE_IOS__AN_ENCLOSURETEMP2 = 257,
+ INTERFACE_IOS__AN_ENCLOSURETEMP3 = 258,
+ INTERFACE_IOS__GPI_PANSW1 = 259,
+ INTERFACE_IOS__GPI_PANSW2 = 260,
+ INTERFACE_IOS__GPI_PANSW3 = 261,
+ INTERFACE_IOS__GPI_PANSW4 = 262,
+ INTERFACE_IOS__GPI_PANSW5 = 263,
+ INTERFACE_IOS__GPI_PANSW6 = 264,
+ INTERFACE_IOS__GPI_PWRBUTTON = 265,
+ INTERFACE_IOS__GPI_TACTSW1 = 266,
+ INTERFACE_IOS__GPI_TACTSW2 = 267,
+ INTERFACE_IOS__GPI_TACTSW3 = 268,
+ INTERFACE_IOS__GPI_TACTSW4 = 269,
+ INTERFACE_IOS__GPO_BUZZER = 270,
+ INTERFACE_IOS__GPO_LED1 = 271,
+ INTERFACE_IOS__GPO_LED2 = 272,
+ INTERFACE_IOS__GPO_LED3 = 273,
+ INTERFACE_IOS__GPO_LED4 = 274,
+ INTERFACE_IOS__FAN_TACHO1 = 275,
+ INTERFACE_IOS__FAN_TACHO2 = 276,
+ INTERFACE_IOS__FAN_TACHO3 = 277,
+ INTERFACE_IOS__FAN1_TACH = 278,
+ INTERFACE_IOS__FAN2_TACH = 279,
+ INTERFACE_IOS__FAN3_TACH = 280,
+ INTERFACE_IOS__FAN4_TACH = 281,
+ INTERFACE_IOS__FAN5_TACH = 282,
+ INTERFACE_IOS__AN5V_RDANCER = 283,
+ INTERFACE_IOS__LS_RLOADMOTOR_UP = 284,
+ INTERFACE_IOS__GPI_TFEED_BREAK_1 = 285,
+ INTERFACE_IOS__GPI_TFEED_BREAK_2 = 286,
+ INTERFACE_IOS__LS_RDANCER_DOWN = 287,
+ INTERFACE_IOS__LS_RDANCER_UP = 288,
+ INTERFACE_IOS__RTFEEDUNIT2 = 289,
+ INTERFACE_IOS__RTFEEDUNIT1 = 290,
+ INTERFACE_IOS__LS_RLOADMOTOR_DOWN = 291,
+ INTERFACE_IOS__LS_RLOADRAM_DOWN = 292,
+ INTERFACE_IOS__LS_RLOADRAM_UP = 293,
+ INTERFACE_IOS__LS_RSPARE1 = 294,
+ INTERFACE_IOS__LS_RSPARE2 = 295,
+ INTERFACE_IOS__GPO_TFEED_BREAK_1 = 296,
+ INTERFACE_IOS__GPO_TFEED_BREAK_2 = 297,
+ INTERFACE_IOS__MOTO_RDANCER = 298,
+ INTERFACE_IOS__MOTO_RDRIVING = 299,
+ INTERFACE_IOS__MOTO_RLOADARM = 300,
+ INTERFACE_IOS__MOTO_RLOADING = 301,
+ INTERFACE_IOS__RSPARE_ROTENC1 = 302,
+ INTERFACE_IOS__RSPEEDSENS_ROTENC = 303,
+ INTERFACE_IOS__RDANCER_ROTENC = 304,
+ INTERFACE_IOS__RSPARE_ROTENC2 = 305,
+ INTERFACE_IOS__AN10V_SPARE1 = 306,
+ INTERFACE_IOS__AN10V_SPARE2 = 307,
+ INTERFACE_IOS__LS_SPARE1_1 = 308,
+ INTERFACE_IOS__LS_SPARE1_2 = 309,
+ INTERFACE_IOS__LS_SPARE1_3 = 310,
+ INTERFACE_IOS__LS_SPARE1_4 = 311,
+ INTERFACE_IOS__LS_SPARE2_1 = 312,
+ INTERFACE_IOS__SPARE2 = 313,
+ INTERFACE_IOS__SPARE1 = 314,
+ INTERFACE_IOS__LS_SPARE2_2 = 315,
+ INTERFACE_IOS__LS_SPARE2_3 = 316,
+ INTERFACE_IOS__LS_SPARE2_4 = 317,
+ INTERFACE_IOS__GPO_SPARE1_1 = 318,
+ INTERFACE_IOS__GPO_SPARE1_2 = 319,
+ INTERFACE_IOS__GPO_SPARE2_1 = 320,
+ INTERFACE_IOS__GPO_SPARE2_2 = 321,
+ INTERFACE_IOS__MOTO_SPARE1_1 = 322,
+ INTERFACE_IOS__MOTO_SPARE1_2 = 323,
+ INTERFACE_IOS__MOTO_SPARE2_1 = 324,
+ INTERFACE_IOS__MOTO_SPARE2_2 = 325,
+ INTERFACE_IOS__SPARE1_ROTENC1 = 326,
+ INTERFACE_IOS__SPARE2_ROTENC2 = 327,
+ INTERFACE_IOS__SPARE1_ROTENC3 = 328,
+ INTERFACE_IOS__SPARE2_ROTENC4 = 329,
+ INTERFACE_IOS__CHILLER_CTRL = 330,
+ INTERFACE_IOS__AN_AIRPRESS_1 = 331,
+ INTERFACE_IOS__AN_AIRPRESS_2 = 332,
+ INTERFACE_IOS__AN_VOCSENS = 333,
+ INTERFACE_IOS__AN_BLOWERCTRL = 334,
+ INTERFACE_IOS__GPI_AIRFLOW_FLAP = 335,
+ INTERFACE_IOS__GPI_BLOWER_TACH = 336,
+ INTERFACE_IOS__GPI_CHILLER_FAULT = 337,
+ INTERFACE_IOS__GPI_CHILLER_STAT1 = 338,
+ INTERFACE_IOS__WHS_VOCTEMP = 339,
+ INTERFACE_IOS__GPI_SW_FILTER_PRES = 340,
+ INTERFACE_IOS__GPI_WCONTAINER_FULL = 341,
+ INTERFACE_IOS__GPI_WCONTAINER_WARN = 342,
+ INTERFACE_IOS__GPO_BLOWER_PWM = 343,
+ INTERFACE_IOS__GPO_CHILLER_SSR9_CTRL = 344,
+ INTERFACE_IOS__GPO_WHS_WTANKPUMP2 = 345,
+ INTERFACE_IOS__VALVE_WASTE_TANK = 346
+ PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(INTERFACE_IOS)
+} InterfaceIOs;
+
+/* --- messages --- */
+
+/* --- per-message closures --- */
+
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCEnumDescriptor interface_ios__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_InterfaceIOs_2eproto__INCLUDED */
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/SetDigitalOutRequest.pb-c.c b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/SetDigitalOutRequest.pb-c.c
index 060449149..3f9211629 100644
--- a/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/SetDigitalOutRequest.pb-c.c
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/SetDigitalOutRequest.pb-c.c
@@ -55,13 +55,13 @@ void set_digital_out_request__free_unpacked
static const ProtobufCFieldDescriptor set_digital_out_request__field_descriptors[2] =
{
{
- "Port",
+ "InterfaceIO",
1,
PROTOBUF_C_LABEL_OPTIONAL,
- PROTOBUF_C_TYPE_INT32,
- offsetof(SetDigitalOutRequest, has_port),
- offsetof(SetDigitalOutRequest, port),
- NULL,
+ PROTOBUF_C_TYPE_ENUM,
+ offsetof(SetDigitalOutRequest, has_interfaceio),
+ offsetof(SetDigitalOutRequest, interfaceio),
+ &interface_ios__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
@@ -80,7 +80,7 @@ static const ProtobufCFieldDescriptor set_digital_out_request__field_descriptors
},
};
static const unsigned set_digital_out_request__field_indices_by_name[] = {
- 0, /* field[0] = Port */
+ 0, /* field[0] = InterfaceIO */
1, /* field[1] = Value */
};
static const ProtobufCIntRange set_digital_out_request__number_ranges[1 + 1] =
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/SetDigitalOutRequest.pb-c.h b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/SetDigitalOutRequest.pb-c.h
index 302b41749..cb2178171 100644
--- a/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/SetDigitalOutRequest.pb-c.h
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/SetDigitalOutRequest.pb-c.h
@@ -14,6 +14,7 @@ PROTOBUF_C__BEGIN_DECLS
# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
#endif
+#include "InterfaceIOs.pb-c.h"
typedef struct _SetDigitalOutRequest SetDigitalOutRequest;
@@ -26,14 +27,14 @@ typedef struct _SetDigitalOutRequest SetDigitalOutRequest;
struct _SetDigitalOutRequest
{
ProtobufCMessage base;
- protobuf_c_boolean has_port;
- int32_t port;
+ protobuf_c_boolean has_interfaceio;
+ InterfaceIOs interfaceio;
protobuf_c_boolean has_value;
protobuf_c_boolean value;
};
#define SET_DIGITAL_OUT_REQUEST__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&set_digital_out_request__descriptor) \
- , 0, 0, 0, 0 }
+ , 0, INTERFACE_IOS__ANALOG_MIXCHIP_TEMP, 0, 0 }
/* SetDigitalOutRequest methods */
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/StartDiagnosticsResponse.pb-c.c b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/StartDiagnosticsResponse.pb-c.c
index 9da91e211..e6e049662 100644
--- a/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/StartDiagnosticsResponse.pb-c.c
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/StartDiagnosticsResponse.pb-c.c
@@ -67,13 +67,13 @@ static const ProtobufCFieldDescriptor start_diagnostics_response__field_descript
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
- "DigitalPins",
+ "DigitalInterfaceStates",
2,
PROTOBUF_C_LABEL_REPEATED,
PROTOBUF_C_TYPE_MESSAGE,
- offsetof(StartDiagnosticsResponse, n_digitalpins),
- offsetof(StartDiagnosticsResponse, digitalpins),
- &digital_pin__descriptor,
+ offsetof(StartDiagnosticsResponse, n_digitalinterfacestates),
+ offsetof(StartDiagnosticsResponse, digitalinterfacestates),
+ &digital_interface_state__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
@@ -93,7 +93,7 @@ static const ProtobufCFieldDescriptor start_diagnostics_response__field_descript
};
static const unsigned start_diagnostics_response__field_indices_by_name[] = {
2, /* field[2] = ComponentsStates */
- 1, /* field[1] = DigitalPins */
+ 1, /* field[1] = DigitalInterfaceStates */
0, /* field[0] = Monitors */
};
static const ProtobufCIntRange start_diagnostics_response__number_ranges[1 + 1] =
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/StartDiagnosticsResponse.pb-c.h b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/StartDiagnosticsResponse.pb-c.h
index cd1afd411..fbdbc8c8d 100644
--- a/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/StartDiagnosticsResponse.pb-c.h
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/StartDiagnosticsResponse.pb-c.h
@@ -14,7 +14,7 @@ PROTOBUF_C__BEGIN_DECLS
# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
#endif
-#include "DigitalPin.pb-c.h"
+#include "DigitalInterfaceState.pb-c.h"
#include "ValueComponentState.pb-c.h"
#include "DiagnosticsMonitors.pb-c.h"
@@ -30,8 +30,8 @@ struct _StartDiagnosticsResponse
{
ProtobufCMessage base;
DiagnosticsMonitors *monitors;
- size_t n_digitalpins;
- DigitalPin **digitalpins;
+ size_t n_digitalinterfacestates;
+ DigitalInterfaceState **digitalinterfacestates;
size_t n_componentsstates;
ValueComponentState **componentsstates;
};
diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_Comm.h b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_Comm.h
index 1ecedf00c..bc740449e 100644
--- a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_Comm.h
+++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_Comm.h
@@ -1030,29 +1030,29 @@ typedef union
//F3_VALVE_OUT
typedef union
-{ //--------------------------//
- struct // A - Air //
- { // C - Cartridge //
- //Dry air Valves // L - Left //
- bool VALVE_2W_MID_AIR_LF : 1; //0 MIDTANK2MANIF4_VALVE_2 // R - Right //
- bool VALVE_2W_MID_AIR_RF : 1; //1 MIDTANK2MANIF4_VALVE_1 // F - Front //
- bool VALVE_2W_MID_AIR_LMF : 1; //2 MIDTANK2MANIF3_VALVE_2 // B - Back //
- bool VALVE_2W_MID_AIR_RMF : 1; //3 MIDTANK2MANIF3_VALVE_1 // M - Middle //
- bool VALVE_2W_MID_AIR_LMB : 1; //4 MIDTANK2MANIF2_VALVE_2 // -------------------- //
- bool VALVE_2W_MID_AIR_RMB : 1; //5 MIDTANK2MANIF2_VALVE_1 // A [LB] A [RB] //
- bool VALVE_2W_MID_AIR_LB : 1; //6 MIDTANK2MANIF1_VALVE_2 // C [LB] C [RB] //
- bool VALVE_2W_MID_AIR_RB : 1; //7 MIDTANK2MANIF1_VALVE_1 // //
- // A [LMB] A [RMB] //
- bool VALVE_2W_CART_MID_LF : 1; //8 CART2MIDTANK4_VALVE_2 // C [LMB] C [RMB] //
- bool VALVE_2W_CART_MID_RF : 1; //9 CART2MIDTANK4_VALVE_1 // //
- bool VALVE_2W_CART_MID_LMF : 1; //10 CART2MIDTANK3_VALVE_2 // A [LMF] A [RMF] //
- bool VALVE_2W_CART_MID_RMF : 1; //11 CART2MIDTANK3_VALVE_1 // C [LMF] C [RMF] //
- bool VALVE_2W_CART_MID_LMB : 1; //12 CART2MIDTANK2_VALVE_2 // //
- bool VALVE_2W_CART_MID_RMB : 1; //13 CART2MIDTANK2_VALVE_1 // A [LF] A [RF] //
- bool VALVE_2W_CART_MID_LB : 1; //14 CART2MIDTANK1_VALVE_2 // C [LF] C [RF] //
- bool VALVE_2W_CART_MID_RB : 1; //15 CART2MIDTANK1_VALVE_1 // //
- }bits; // FRONT //
- unsigned short ushort; //--------------------------//
+{ //--------------------------//
+ struct // A - Air //
+ { // C - Cartridge //
+ //Dry air Valves // L - Left //
+ bool VALVE_2W_MID_AIR_8 : 1; //0 MIDTANK2MANIF4_VALVE_2 // R - Right //
+ bool VALVE_2W_MID_AIR_4 : 1; //1 MIDTANK2MANIF4_VALVE_1 // F - Front //
+ bool VALVE_2W_MID_AIR_7 : 1; //2 MIDTANK2MANIF3_VALVE_2 // B - Back //
+ bool VALVE_2W_MID_AIR_3 : 1; //3 MIDTANK2MANIF3_VALVE_1 // M - Middle //
+ bool VALVE_2W_MID_AIR_6 : 1; //4 MIDTANK2MANIF2_VALVE_2 // -------------------- //
+ bool VALVE_2W_MID_AIR_2 : 1; //5 MIDTANK2MANIF2_VALVE_1 // A [7] A [8] //
+ bool VALVE_2W_MID_AIR_5 : 1; //6 MIDTANK2MANIF1_VALVE_2 // C [7] C [8] //
+ bool VALVE_2W_MID_AIR_1 : 1; //7 MIDTANK2MANIF1_VALVE_1 // //
+ // A [5] A [6] //
+ bool VALVE_2W_CART_MID_8 : 1; //8 CART2MIDTANK4_VALVE_2 // C [5] C [6] //
+ bool VALVE_2W_CART_MID_4 : 1; //9 CART2MIDTANK4_VALVE_1 // //
+ bool VALVE_2W_CART_MID_7 : 1; //10 CART2MIDTANK3_VALVE_2 // A [3] A [4] //
+ bool VALVE_2W_CART_MID_3 : 1; //11 CART2MIDTANK3_VALVE_1 // C [3] C [4] //
+ bool VALVE_2W_CART_MID_6 : 1; //12 CART2MIDTANK2_VALVE_2 // //
+ bool VALVE_2W_CART_MID_2 : 1; //13 CART2MIDTANK2_VALVE_1 // A [1] A [2] //
+ bool VALVE_2W_CART_MID_5 : 1; //14 CART2MIDTANK1_VALVE_2 // C [1] C [2] //
+ bool VALVE_2W_CART_MID_1 : 1; //15 CART2MIDTANK1_VALVE_1 // //
+ }bits; // FRONT //
+ unsigned short ushort; //--------------------------//
}VALVE_GPO_REG;
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c
index 7d27ec2db..330ffb2a8 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c
@@ -120,35 +120,35 @@ uint32_t Read_MidTank_Pressure_Sensor(MidTank_t MidTank_ID) //0-7
switch(MidTank_ID)
{
- case MIDTANK_RB:
+ case MIDTANK_1:
I2C_Slave_Add = 0x44;
Channel = 0x20;
break;
- case MIDTANK_RMB:
+ case MIDTANK_2:
I2C_Slave_Add = 0x44;
Channel = 0x10;
break;
- case MIDTANK_RMF:
+ case MIDTANK_3:
I2C_Slave_Add = 0x44;
Channel = 0x08;
break;
- case MIDTANK_RF:
+ case MIDTANK_4:
I2C_Slave_Add = 0x44;
Channel = 0x04;
break;
- case MIDTANK_LB:
+ case MIDTANK_5:
I2C_Slave_Add = 0x46;
Channel = 0x80;
break;
- case MIDTANK_LMB:
+ case MIDTANK_6:
I2C_Slave_Add = 0x46;
Channel = 0x40;
break;
- case MIDTANK_LMF:
+ case MIDTANK_7:
I2C_Slave_Add = 0x46;
Channel = 0x20;
break;
- case MIDTANK_LF:
+ case MIDTANK_8:
I2C_Slave_Add = 0x46;
Channel = 0x10;
break;
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.h
index fb50a2a73..974628f6a 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.h
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.h
@@ -12,14 +12,14 @@
typedef enum
{
- MIDTANK_RB,
- MIDTANK_RMB,
- MIDTANK_RMF,
- MIDTANK_RF,
- MIDTANK_LB,
- MIDTANK_LMB,
- MIDTANK_LMF,
- MIDTANK_LF,
+ MIDTANK_1,
+ MIDTANK_2,
+ MIDTANK_3,
+ MIDTANK_4,
+ MIDTANK_5,
+ MIDTANK_6,
+ MIDTANK_7,
+ MIDTANK_8,
NUM_OF_MIDTANKS,
} MidTank_t;
diff --git a/Software/Embedded_SW/Embedded/Drivers/USB_Communication/USBCDCD.c b/Software/Embedded_SW/Embedded/Drivers/USB_Communication/USBCDCD.c
index b4da9afa9..e7828de1c 100644
--- a/Software/Embedded_SW/Embedded/Drivers/USB_Communication/USBCDCD.c
+++ b/Software/Embedded_SW/Embedded/Drivers/USB_Communication/USBCDCD.c
@@ -78,7 +78,7 @@ typedef volatile enum {
/* Static variables and handles */
static volatile USBCDCD_USBState state;
-extern unsigned char CommRxBuffer[COMM_MAX_BUFFER_SIZE];
+static unsigned char UsbRxBuffer[COMM_MAX_BUFFER_SIZE];
//static unsigned char receiveBuffer[COMM_MAX_BUFFER_SIZE];
static unsigned char transmitBuffer[COMM_MAX_BUFFER_SIZE];
@@ -214,7 +214,7 @@ tUSBBuffer rxBuffer =
USBDCDCPacketRead, /* pfnTransfer */
USBDCDCRxPacketAvailable, /* pfnAvailable */
(void *)&g_sCDCDevice, /* pvHandle */
- CommRxBuffer, /* pcBuffer */
+ UsbRxBuffer, /* pcBuffer */
COMM_MAX_BUFFER_SIZE, /* ulBufferSize */
{{0, 0, 0, 0}, 0, 0} /* private data workspace */
};
diff --git a/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c b/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c
index 3c7b9847a..51446df69 100644
--- a/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c
+++ b/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c
@@ -24,6 +24,9 @@ VALVE_GPO_REG Valve_GPO_Reg;
F1_GPO_REG F1_GPO_Reg;
DISPENSER_VALVE_GPO_REG Dispenser_Valve_GPO_Reg;
+Valves_t IDS_Id_to_AirValve[MAX_IDS_UNITS] = {VALVE_2W_MID_AIR_1,VALVE_2W_MID_AIR_2,VALVE_2W_MID_AIR_3,VALVE_2W_MID_AIR_4,VALVE_2W_MID_AIR_5,VALVE_2W_MID_AIR_6,VALVE_2W_MID_AIR_7,VALVE_2W_MID_AIR_8};
+Valves_t IDS_Id_to_CartrideValve[MAX_IDS_UNITS] = {VALVE_2W_CART_MID_1,VALVE_2W_CART_MID_2,VALVE_2W_CART_MID_3,VALVE_2W_CART_MID_4,VALVE_2W_CART_MID_5,VALVE_2W_CART_MID_6,VALVE_2W_CART_MID_7,VALVE_2W_CART_MID_8};
+
typedef struct
{
//bool EnableDisable; //TODO - to check if needed
@@ -64,55 +67,55 @@ void Valve_Command(Valves_t Valve_Id) //1 - OPEN, 0 - CLOSE
switch(Valve_Id)
{
//Dry air Valves
- case VALVE_2W_MID_AIR_LF:
- Valve_GPO_Reg.bits.VALVE_2W_MID_AIR_LF = ValveRequest[Valve_Id].Direction;
+ case VALVE_2W_MID_AIR_8:
+ Valve_GPO_Reg.bits.VALVE_2W_MID_AIR_8 = ValveRequest[Valve_Id].Direction;
break;
- case VALVE_2W_MID_AIR_RF:
- Valve_GPO_Reg.bits.VALVE_2W_MID_AIR_RF = ValveRequest[Valve_Id].Direction;
+ case VALVE_2W_MID_AIR_4:
+ Valve_GPO_Reg.bits.VALVE_2W_MID_AIR_4 = ValveRequest[Valve_Id].Direction;
break;
- case VALVE_2W_MID_AIR_LMF:
- Valve_GPO_Reg.bits.VALVE_2W_MID_AIR_LMF = ValveRequest[Valve_Id].Direction;
+ case VALVE_2W_MID_AIR_7:
+ Valve_GPO_Reg.bits.VALVE_2W_MID_AIR_7 = ValveRequest[Valve_Id].Direction;
break;
- case VALVE_2W_MID_AIR_RMF:
- Valve_GPO_Reg.bits.VALVE_2W_MID_AIR_RMF = ValveRequest[Valve_Id].Direction;
+ case VALVE_2W_MID_AIR_3:
+ Valve_GPO_Reg.bits.VALVE_2W_MID_AIR_3 = ValveRequest[Valve_Id].Direction;
break;
- case VALVE_2W_MID_AIR_LMB:
- Valve_GPO_Reg.bits.VALVE_2W_MID_AIR_LMB = ValveRequest[Valve_Id].Direction;
+ case VALVE_2W_MID_AIR_6:
+ Valve_GPO_Reg.bits.VALVE_2W_MID_AIR_6 = ValveRequest[Valve_Id].Direction;
break;
- case VALVE_2W_MID_AIR_RMB:
- Valve_GPO_Reg.bits.VALVE_2W_MID_AIR_RMB = ValveRequest[Valve_Id].Direction;
+ case VALVE_2W_MID_AIR_2:
+ Valve_GPO_Reg.bits.VALVE_2W_MID_AIR_2 = ValveRequest[Valve_Id].Direction;
break;
- case VALVE_2W_MID_AIR_LB:
- Valve_GPO_Reg.bits.VALVE_2W_MID_AIR_LB = ValveRequest[Valve_Id].Direction;
+ case VALVE_2W_MID_AIR_5:
+ Valve_GPO_Reg.bits.VALVE_2W_MID_AIR_5 = ValveRequest[Valve_Id].Direction;
break;
- case VALVE_2W_MID_AIR_RB:
- Valve_GPO_Reg.bits.VALVE_2W_MID_AIR_RB = ValveRequest[Valve_Id].Direction;
+ case VALVE_2W_MID_AIR_1:
+ Valve_GPO_Reg.bits.VALVE_2W_MID_AIR_1 = ValveRequest[Valve_Id].Direction;
break;
//Dispenser Valves
- case VALVE_2W_CART_MID_LF:
- Valve_GPO_Reg.bits.VALVE_2W_CART_MID_LF = ValveRequest[Valve_Id].Direction;
+ case VALVE_2W_CART_MID_8:
+ Valve_GPO_Reg.bits.VALVE_2W_CART_MID_8 = ValveRequest[Valve_Id].Direction;
break;
- case VALVE_2W_CART_MID_RF:
- Valve_GPO_Reg.bits.VALVE_2W_CART_MID_RF = ValveRequest[Valve_Id].Direction;
+ case VALVE_2W_CART_MID_4:
+ Valve_GPO_Reg.bits.VALVE_2W_CART_MID_4 = ValveRequest[Valve_Id].Direction;
break;
- case VALVE_2W_CART_MID_LMF:
- Valve_GPO_Reg.bits.VALVE_2W_CART_MID_LMF = ValveRequest[Valve_Id].Direction;
+ case VALVE_2W_CART_MID_7:
+ Valve_GPO_Reg.bits.VALVE_2W_CART_MID_7 = ValveRequest[Valve_Id].Direction;
break;
- case VALVE_2W_CART_MID_RMF:
- Valve_GPO_Reg.bits.VALVE_2W_CART_MID_RMF = ValveRequest[Valve_Id].Direction;
+ case VALVE_2W_CART_MID_3:
+ Valve_GPO_Reg.bits.VALVE_2W_CART_MID_3 = ValveRequest[Valve_Id].Direction;
break;
- case VALVE_2W_CART_MID_LMB:
- Valve_GPO_Reg.bits.VALVE_2W_CART_MID_LMB = ValveRequest[Valve_Id].Direction;
+ case VALVE_2W_CART_MID_6:
+ Valve_GPO_Reg.bits.VALVE_2W_CART_MID_6 = ValveRequest[Valve_Id].Direction;
break;
- case VALVE_2W_CART_MID_RMB:
- Valve_GPO_Reg.bits.VALVE_2W_CART_MID_RMB = ValveRequest[Valve_Id].Direction;
+ case VALVE_2W_CART_MID_2:
+ Valve_GPO_Reg.bits.VALVE_2W_CART_MID_2 = ValveRequest[Valve_Id].Direction;
break;
- case VALVE_2W_CART_MID_LB:
- Valve_GPO_Reg.bits.VALVE_2W_CART_MID_LB = ValveRequest[Valve_Id].Direction;
+ case VALVE_2W_CART_MID_5:
+ Valve_GPO_Reg.bits.VALVE_2W_CART_MID_5 = ValveRequest[Valve_Id].Direction;
break;
- case VALVE_2W_CART_MID_RB:
- Valve_GPO_Reg.bits.VALVE_2W_CART_MID_RB = ValveRequest[Valve_Id].Direction;
+ case VALVE_2W_CART_MID_1:
+ Valve_GPO_Reg.bits.VALVE_2W_CART_MID_1 = ValveRequest[Valve_Id].Direction;
break;
// Waste Valves
diff --git a/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.h b/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.h
index 364314928..df20d05ff 100644
--- a/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.h
+++ b/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.h
@@ -8,7 +8,7 @@
#ifndef DRIVERS_VALVES_VALVE_H_
#define DRIVERS_VALVES_VALVE_H_
-
+#define MAX_IDS_UNITS 8
typedef enum
{
//Dispenser Valves
@@ -21,29 +21,28 @@ typedef enum
VALVE_DISPENSER_6,
VALVE_DISPENSER_7,
VALVE_DISPENSER_8,
-
//---------------------------------------------------------------------------//
//Dry Air - Middle Tank // A - Air //
- VALVE_2W_MID_AIR_LF, //MIDTANK2MANIF4_VALVE_2 // C - Cartridge //
- VALVE_2W_MID_AIR_RF, //MIDTANK2MANIF4_VALVE_1 // L - Left //
- VALVE_2W_MID_AIR_LMF, //MIDTANK2MANIF3_VALVE_2 // R - Right //
- VALVE_2W_MID_AIR_RMF, //MIDTANK2MANIF3_VALVE_1 // F - Front //
- VALVE_2W_MID_AIR_LMB, //MIDTANK2MANIF2_VALVE_2 // B - Back //
- VALVE_2W_MID_AIR_RMB, //MIDTANK2MANIF2_VALVE_1 // M - Middle //
- VALVE_2W_MID_AIR_LB, //MIDTANK2MANIF1_VALVE_2 // -------------------- //
- VALVE_2W_MID_AIR_RB, //MIDTANK2MANIF1_VALVE_1 // A [LB] A [RB] //
- // C [LB] C [RB] //
+ VALVE_2W_MID_AIR_8, //MIDTANK2MANIF4_VALVE_2 // C - Cartridge //
+ VALVE_2W_MID_AIR_4, //MIDTANK2MANIF4_VALVE_1 // L - Left //
+ VALVE_2W_MID_AIR_7, //MIDTANK2MANIF3_VALVE_2 // R - Right //
+ VALVE_2W_MID_AIR_3, //MIDTANK2MANIF3_VALVE_1 // F - Front //
+ VALVE_2W_MID_AIR_6, //MIDTANK2MANIF2_VALVE_2 // B - Back //
+ VALVE_2W_MID_AIR_2, //MIDTANK2MANIF2_VALVE_1 // M - Middle //
+ VALVE_2W_MID_AIR_5, //MIDTANK2MANIF1_VALVE_2 // -------------------- //
+ VALVE_2W_MID_AIR_1, //MIDTANK2MANIF1_VALVE_1 // A [7] A [8] //
+ // C [7] C [8] //
// //
- // A [LMB] A [RMB] //
- //Cartridge - Middle Tank // C [LMB] C [RMB] //
- VALVE_2W_CART_MID_LF, //CART2MIDTANK4_VALVE_2 // //
- VALVE_2W_CART_MID_RF, //CART2MIDTANK4_VALVE_1 // A [LMF] A [RMF] //
- VALVE_2W_CART_MID_LMF, //CART2MIDTANK3_VALVE_2 // C [LMF] C [RMF] //
- VALVE_2W_CART_MID_RMF, //CART2MIDTANK3_VALVE_1 // //
- VALVE_2W_CART_MID_LMB, //CART2MIDTANK2_VALVE_2 // A [LF] A [RF] //
- VALVE_2W_CART_MID_RMB, //CART2MIDTANK2_VALVE_1 // C [LF] C [RF] //
- VALVE_2W_CART_MID_LB, //CART2MIDTANK1_VALVE_2 // //
- VALVE_2W_CART_MID_RB, //CART2MIDTANK1_VALVE_1 // FRONT //
+ // A [5] A [6] //
+ //Cartridge - Middle Tank // C [5] C [6] //
+ VALVE_2W_CART_MID_8, //CART2MIDTANK4_VALVE_2 // //
+ VALVE_2W_CART_MID_4, //CART2MIDTANK4_VALVE_1 // A [3] A [4] //
+ VALVE_2W_CART_MID_7, //CART2MIDTANK3_VALVE_2 // C [3] C [4] //
+ VALVE_2W_CART_MID_3, //CART2MIDTANK3_VALVE_1 // //
+ VALVE_2W_CART_MID_6, //CART2MIDTANK2_VALVE_2 // A [1] A [2] //
+ VALVE_2W_CART_MID_2, //CART2MIDTANK2_VALVE_1 // C [1] C [2] //
+ VALVE_2W_CART_MID_5, //CART2MIDTANK1_VALVE_2 // //
+ VALVE_2W_CART_MID_1, //CART2MIDTANK1_VALVE_1 // FRONT //
//---------------------------------------------------------------------------//
// Waste Valves
@@ -53,6 +52,8 @@ typedef enum
NUM_OF_VALVES,
} Valves_t;
+extern Valves_t IDS_Id_to_AirValve[MAX_IDS_UNITS];
+extern Valves_t IDS_Id_to_CartrideValve[MAX_IDS_UNITS];
void Valve_Command(Valves_t Valve_Id);
void Valve_Set(Valves_t Valve_Id, bool Direction);
diff --git a/Software/Embedded_SW/Embedded/Embedded.cfg b/Software/Embedded_SW/Embedded/Embedded.cfg
index 47710100f..473250338 100644
--- a/Software/Embedded_SW/Embedded/Embedded.cfg
+++ b/Software/Embedded_SW/Embedded/Embedded.cfg
@@ -15,7 +15,7 @@ var GIO = xdc.useModule('ti.sysbios.io.GIO');
var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
var Task = xdc.useModule('ti.sysbios.knl.Task');
-BIOS.heapSize = 30767; // bios heapmem
+//BIOS.heapSize = 30767; // bios heapmem
//Memory.defaultHeapSize = 48767;
Program.heap = 30767; //sysmem
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
index 7ffba4d69..261b9e049 100644
--- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
+++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
@@ -104,14 +104,14 @@ AlarmHandlingItem AlarmItem[MAX_SYSTEM_ALARMS]={
{100,LimitSwitchAlarm,GPI_LS_DISPENSER_UP_6,false,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__Dispenser6Empty,NULL},
{100,LimitSwitchAlarm,GPI_LS_DISPENSER_UP_7,false,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__Dispenser7Empty,NULL},
{100,LimitSwitchAlarm,GPI_LS_DISPENSER_UP_8,false,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__Dispenser8Empty,NULL},
-{100,LimitSwitchAlarm,GPI_LS_DISPENSER_25_1,false,true,DEBUG_LOG_CATEGORY__Warning,0,0,0,false,EVENT_TYPE__Dispenser1LowLevel,NULL},
+/*{100,LimitSwitchAlarm,GPI_LS_DISPENSER_25_1,false,true,DEBUG_LOG_CATEGORY__Warning,0,0,0,false,EVENT_TYPE__Dispenser1LowLevel,NULL},
{100,LimitSwitchAlarm,GPI_LS_DISPENSER_25_2,false,true,DEBUG_LOG_CATEGORY__Warning,1,0,0,false,EVENT_TYPE__Dispenser2LowLevel,NULL},
{100,LimitSwitchAlarm,GPI_LS_DISPENSER_25_3,false,true,DEBUG_LOG_CATEGORY__Warning,2,0,0,false,EVENT_TYPE__Dispenser3LowLevel,NULL},
{100,LimitSwitchAlarm,GPI_LS_DISPENSER_25_4,false,true,DEBUG_LOG_CATEGORY__Warning,3,0,0,false,EVENT_TYPE__Dispenser4LowLevel,NULL},
{100,LimitSwitchAlarm,GPI_LS_DISPENSER_25_5,false,true,DEBUG_LOG_CATEGORY__Warning,4,0,0,false,EVENT_TYPE__Dispenser5LowLevel,NULL},
{100,LimitSwitchAlarm,GPI_LS_DISPENSER_25_6,false,true,DEBUG_LOG_CATEGORY__Warning,5,0,0,false,EVENT_TYPE__Dispenser6LowLevel,NULL},
{100,LimitSwitchAlarm,GPI_LS_DISPENSER_25_7,false,true,DEBUG_LOG_CATEGORY__Warning,6,0,0,false,EVENT_TYPE__Dispenser7LowLevel,NULL},
-{100,LimitSwitchAlarm,GPI_LS_DISPENSER_25_8,false,true,DEBUG_LOG_CATEGORY__Warning,7,0,0,false,EVENT_TYPE__Dispenser8LowLevel,NULL},
+{100,LimitSwitchAlarm,GPI_LS_DISPENSER_25_8,false,true,DEBUG_LOG_CATEGORY__Warning,7,0,0,false,EVENT_TYPE__Dispenser8LowLevel,NULL},*/
{100,TemperatureAlarm,TEMP_SENSE_ANALOG_MIXCHIP_TEMP,250,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__GeneralInternalOverTemperature,NULL},
{100,TemperatureAlarm,TEMP_SENSE_AN_ENCLOSURETEMP1,250,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__GeneralInternalOverTemperature,NULL},
{100,TemperatureAlarm,TEMP_SENSE_AN_ENCLOSURETEMP2,80,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__GeneralInternalOverTemperature,NULL},
@@ -539,7 +539,7 @@ uint32_t StartEventsNotificationRequestFunc(MessageContainer* requestContainer)
// ReportInitParams InitParams;
//ControlStart();
EventsNotificationRequestAccepted = true;
- //AlarmHandlingStart();
+ AlarmHandlingStart();
StartEventsNotificationRequest* request = start_events_notification_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
ustrncpy (AlarmHandlingToken, requestContainer->token,36);
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c
index 0f36a803b..1e674d323 100644
--- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c
+++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c
@@ -20,43 +20,8 @@
#include "drivers/FPGA/FPGA_GPIO/FPGA_GPIO.h"
#include "Drivers/I2C_Communication/DAC/blower.h"
#include "drivers/Valves/Valve.h"
+#include "Drivers/Heater/Heater.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
********************************************************************************/
@@ -121,23 +86,95 @@ uint32_t SetDigitalOutRequestRequestFunc(MessageContainer* requestContainer)
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))
+ switch (request->interfaceio)
{
- 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;
+ case INTERFACE_IOS__Midtank1Air:
+ case INTERFACE_IOS__Midtank2Air:
+ case INTERFACE_IOS__Midtank3Air:
+ case INTERFACE_IOS__Midtank4Air:
+ case INTERFACE_IOS__Midtank5Air:
+ case INTERFACE_IOS__Midtank6Air:
+ case INTERFACE_IOS__Midtank7Air:
+ case INTERFACE_IOS__Midtank8Air:
+ portId = (request->interfaceio - INTERFACE_IOS__Midtank1Air) ; //0-7
+ Valve_Set(IDS_Id_to_AirValve[portId], request->value ); //Atm_MidTank_OFF/ON
+ break;
+ case INTERFACE_IOS__Midtank1Cartridge:
+ case INTERFACE_IOS__Midtank2Cartridge:
+ case INTERFACE_IOS__Midtank3Cartridge:
+ case INTERFACE_IOS__Midtank4Cartridge:
+ case INTERFACE_IOS__Midtank5Cartridge:
+ case INTERFACE_IOS__Midtank6Cartridge:
+ case INTERFACE_IOS__Midtank7Cartridge:
+ case INTERFACE_IOS__Midtank8Cartridge:
+ portId = (request->interfaceio - INTERFACE_IOS__Midtank1Cartridge) ; //0-7
+ Valve_Set(IDS_Id_to_CartrideValve[portId], request->value ); //Atm_MidTank_OFF/ON
+ break;
+ case INTERFACE_IOS__GPO_DRYER_SSR3_CTRL:
+ if (request->value == true)
+ ActivateHeater(0);
+ else
+ DeActivateHeater(0);
+ break;
+ case INTERFACE_IOS__GPO_DRYER_SSR1_CTRL:
+ if (request->value == true)
+ ActivateHeater(1);
+ else
+ DeActivateHeater(1);
+ break;
+ case INTERFACE_IOS__GPO_DRYER_SSR2_CTRL:
+ if (request->value == true)
+ ActivateHeater(2);
+ else
+ DeActivateHeater(2);
+ break;
+ case INTERFACE_IOS__GPO_DYEINGH_SSR8_CTRL:
+ if (request->value == true)
+ ActivateHeater(3);
+ else
+ DeActivateHeater(3);
+ break;
+ case INTERFACE_IOS__GPO_DYEINGH_SSR7_CTRL:
+ if (request->value == true)
+ ActivateHeater(4);
+ else
+ DeActivateHeater(4);
+ break;
+ case INTERFACE_IOS__GPO_DYEINGH_SSR6_CTRL:
+ if (request->value == true)
+ ActivateHeater(5);
+ else
+ DeActivateHeater(5);
+ break;
+ case INTERFACE_IOS__GPO_DYEINGH_SSR5_CTRL:
+ if (request->value == true)
+ ActivateHeater(6);
+ else
+ DeActivateHeater(6);
+ break;
+ case INTERFACE_IOS__GPO_DILUTORPUMP_SSR10_CTRL:
+ if (request->value == true)
+ ActivateHeater(7);
+ else
+ DeActivateHeater(7);
+ break;
+ case INTERFACE_IOS__GPO_EXTWINDER_SSR11_CTRL:
+ if (request->value == true)
+ ActivateHeater(8);
+ else
+ DeActivateHeater(8);
+ break;
+ case INTERFACE_IOS__GPO_MIXCHIP_SSR4_CTRL:
+ if (request->value == true)
+ ActivateHeater(9);
+ else
+ DeActivateHeater(9);
+ break;
+ default:
+ status = ERROR;
+ responseContainer.has_error = true;
+ responseContainer.error = ERROR_CODE__GENERAL_ERROR;
+ break;
}
size_t container_size = message_container__pack(&responseContainer, container_buffer);
@@ -150,5 +187,30 @@ uint32_t SetDigitalOutRequestRequestFunc(MessageContainer* requestContainer)
return OK;
}
+/* case:
+ break;
+ INTERFACE_IOS__GPO_MIXCHIP_SSR4_CTRL
+ INTERFACE_IOS__GPO_DYEINGH_SSR5_CTRL
+ INTERFACE_IOS__GPO_DYEINGH_SSR6_CTRL
+ INTERFACE_IOS__GPO_DYEINGH_SSR7_CTRL
+ INTERFACE_IOS__GPO_DYEINGH_SSR8_CTRL
+ INTERFACE_IOS__GPO_DRYER_SSR1_CTRL
+ INTERFACE_IOS__GPO_DRYER_SSR2_CTRL
+ INTERFACE_IOS__GPO_DRYER_SSR3_CTRL
+ INTERFACE_IOS__GPO_PDOWN_RL1_CTRL
+ INTERFACE_IOS__GPO_SPARE_SSR12_CTRL
+ INTERFACE_IOS__GPO_SPARE_SSR13_CTRL
+ INTERFACE_IOS__GPO_DILUTORPUMP_SSR10_CTRL
+ INTERFACE_IOS__GPO_WASTECH_PUMP2
+ INTERFACE_IOS__GPO_BUZZER
+ INTERFACE_IOS__GPO_LED1
+ INTERFACE_IOS__GPO_LED2
+ INTERFACE_IOS__GPO_LED3
+ INTERFACE_IOS__GPO_LED4
+ INTERFACE_IOS__GPO_TFEED_BREAK_1
+ INTERFACE_IOS__GPO_BLOWER_PWM
+ INTERFACE_IOS__GPO_CHILLER_SSR9_CTRL
+ INTERFACE_IOS__GPO_WHS_WTANKPUMP2
+ */
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
index 495b7bded..27e02710a 100644
--- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
+++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
@@ -35,7 +35,9 @@
#include <PMR/Diagnostics/StopDiagnosticsResponse.pb-c.h>
#include <PMR/Diagnostics/Event.pb-c.h>
#include <PMR/Diagnostics/EventType.pb-c.h>
-#include "PMR/debugging/DebugLogCategory.pb-c.h"
+#include <PMR/Diagnostics/DigitalInterfaceState.pb-c.h>
+#include <PMR/Diagnostics/InterfaceIOs.pb-c.h>
+#include <PMR/debugging/DebugLogCategory.pb-c.h>
#include "StateMachines/Printing/PrintingSTM.h"
@@ -51,7 +53,7 @@ uint32_t Diagnostics_TenMiliControlTrigger(uint32_t IfIndex, uint32_t ReadValue)
DiagnosticsMonitors DiagnosticsMonitor = DIAGNOSTICS_MONITORS__INIT;
-
+DigitalInterfaceState DigitalOutputState[MAX_HEATERS_NUM];
#define DIAGNOSTICS_LIMIT 10
#define DIAGNOSTICS_DANCER_LIMIT 100
int DiagnosticsIndex = 0;
@@ -165,7 +167,46 @@ void DiagnosticLoadMotor(int MotorId, int frequency)
if (MotorCounterIndex[MotorId]>=DIAGNOSTICS_LIMIT )
MotorCounterIndex[MotorId] = 0;
}
+void DiagnosticsLoadDigitalValues(void)
+{
+ int i;
+ for (i = 0;i<MAX_HEATERS_NUM;i++ )
+ {
+ digital_interface_state__init(&DigitalOutputState[i]);
+ DigitalOutputState[i].has_interfaceio = true;
+ DigitalOutputState[i].has_value = true;
+ }
+ DigitalOutputState[0].interfaceio = INTERFACE_IOS__GPO_DRYER_SSR3_CTRL;
+ DigitalOutputState[0].value = GetHeaterState(0);
+
+ DigitalOutputState[1].interfaceio = INTERFACE_IOS__GPO_DRYER_SSR1_CTRL;
+ DigitalOutputState[1].value = GetHeaterState(1);
+
+ DigitalOutputState[2].interfaceio = INTERFACE_IOS__GPO_DRYER_SSR2_CTRL;
+ DigitalOutputState[2].value = GetHeaterState(2);
+
+ DigitalOutputState[3].interfaceio = INTERFACE_IOS__GPO_DYEINGH_SSR8_CTRL;
+ DigitalOutputState[3].value = GetHeaterState(3);
+
+ DigitalOutputState[4].interfaceio = INTERFACE_IOS__GPO_DYEINGH_SSR7_CTRL;
+ DigitalOutputState[4].value = GetHeaterState(4);
+
+ DigitalOutputState[5].interfaceio = INTERFACE_IOS__GPO_DYEINGH_SSR6_CTRL;
+ DigitalOutputState[5].value = GetHeaterState(5);
+
+ DigitalOutputState[6].interfaceio = INTERFACE_IOS__GPO_DYEINGH_SSR5_CTRL;
+ DigitalOutputState[6].value = GetHeaterState(6);
+ DigitalOutputState[7].interfaceio = INTERFACE_IOS__GPO_DILUTORPUMP_SSR10_CTRL;
+ DigitalOutputState[7].value = GetHeaterState(7);
+
+ DigitalOutputState[8].interfaceio = INTERFACE_IOS__GPO_EXTWINDER_SSR11_CTRL;
+ DigitalOutputState[8].value = GetHeaterState(8);
+
+ DigitalOutputState[9].interfaceio = INTERFACE_IOS__GPO_MIXCHIP_SSR4_CTRL;
+ DigitalOutputState[9].value = GetHeaterState(9);
+
+}
void DiagnosticLoadTemperature(int HeaterId, int temperature)
{
if (HeaterId >= MAX_HEATERS_NUM)
@@ -286,15 +327,6 @@ void Diagnostic100msecCollection(void)
dispenser7motorfrequency[DiagnosticsIndex] = MotorGetSpeed(HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_7);
dispenser8motorfrequency[DiagnosticsIndex] = MotorGetSpeed(HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_8);
*/
-/* for (i=0;i<1;i++)
- {
- DigitalPinArray[i][DiagnosticsIndex] = DIGITAL_PIN__INIT;
- DigitalPinArray[i][DiagnosticsIndex].has_port = true;
- DigitalPinArray[i][DiagnosticsIndex].port = i;
- DigitalPinArray[i][DiagnosticsIndex].has_value = true;
- DigitalPinArray[i][DiagnosticsIndex].value = FPGA_Read_limit_Switches(i);
- }
-*/
DiagnosticsIndex++;
if (DiagnosticsIndex >= DIAGNOSTICS_LIMIT) DiagnosticsIndex = DIAGNOSTICS_LIMIT;
if (DiagnosticsIndex >= DiagnosticCollectionLimit)
@@ -455,7 +487,17 @@ void SendDiagnostics(void)
DiagnosticsMonitor.dispenser8pressure = dispenserspressure[7];
response.monitors = &DiagnosticsMonitor;
- response.n_digitalpins = 0/**MAX_GPI*/;
+ //DigitalInterfaceState DigitalOutputState[MAX_HEATERS_NUM];
+ response.n_digitalinterfacestates = 0;
+ /*
+ response.n_digitalinterfacestates = MAX_HEATERS_NUM;
+ response.digitalinterfacestates = (DigitalInterfaceState**)malloc(sizeof(DigitalInterfaceState)*MAX_HEATERS_NUM);
+ DiagnosticsLoadDigitalValues();
+ for (i=0;i<MAX_HEATERS_NUM;i++)
+ {
+ response.digitalinterfacestates[i] = &DigitalOutputState[i];
+ }
+ */
//response.digitalpins = DigitalPinArray;
response.n_componentsstates = 0;
/* if (blowervolatgedisplay == true)
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c
index 70ede0916..0583f6caa 100644
--- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c
+++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c
@@ -139,7 +139,7 @@ uint32_t MotorHomingRequestFunc(MessageContainer* requestContainer)
}
}
responseContainer.error = ERROR_CODE__INVALID_PROCESS_ID;
- responseContainer.errormessage = "JOb Active or incorrect motor ID";
+ responseContainer.errormessage = "Job Active or incorrect motor ID";
responseContainer = createContainer(MESSAGE_TYPE__MotorHomingResponse, requestContainer->token, true, &response, &motor_homing_response__pack, &motor_homing_response__get_packed_size);
responseContainer.continuous = true;
uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
@@ -179,11 +179,11 @@ uint32_t DispenserHomingRequestCallback(uint32_t deviceID, uint32_t ReadValue)
MessageContainer responseContainer;
MotorHomingResponse response = MOTOR_HOMING_RESPONSE__INIT;
- uint8_t DispenserId = deviceID-HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_1;
+ //uint8_t DispenserId = deviceID-HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_1;
//close dry air valve in the dispenser
- Valve_Set((Valves_t) (DispenserId+VALVE_2W_MID_AIR_LF), Atm_MidTank_OFF);
- MotorSetMicroStep(deviceID, MotorsCfg[deviceID].microstep);
+ //Valve_Set((Valves_t) (DispenserId+VALVE_2W_MID_AIR_8), Atm_MidTank_OFF);
+ //MotorSetMicroStep(deviceID, MotorsCfg[deviceID].microstep);
responseContainer = createContainer(MESSAGE_TYPE__DispenserHomingResponse, HomingToken[deviceID], true, &response, &motor_homing_response__pack, &motor_homing_response__get_packed_size);
responseContainer.continuous = true;
@@ -223,19 +223,20 @@ uint32_t DispenserHomingRequestFunc(MessageContainer* requestContainer)
{
if ((JobIsActive() == false)&&(isMotorConfigured(MotorId) == true))
{
- if ( Motor_Id_to_LS_Id[MotorId] != MAX_GPI)
+ IDS_HomeDispenser(request->index,speed,DispenserHomingRequestCallback);
+ /*if ( Motor_Id_to_LS_Id[MotorId] != MAX_GPI)
{
//open dispenser valve dispenser to midtank direction
Control3WayValvesWithCallback ((Valves_t) request->index, MidTank_Dispenser, NULL); //direction: MidTank_Dispenser or Dispenser_Mixer
//Valve_Set((Valves_t) request->index, MidTank_Dispenser);
//open dry air valve in the dispenser
- Valve_Set((Valves_t) (request->index+VALVE_2W_MID_AIR_LF), Atm_MidTank_ON);
+ Valve_Set((Valves_t) (request->index+VALVE_2W_MID_AIR_8), Atm_MidTank_ON);
MotorSetMicroStep(MotorId, 1);
MotorMovetoLimitSwitch (MotorId,1-MotorsCfg[MotorId].directionthreadwize, speed, Motor_Id_to_LS_Id[MotorId], DispenserHomingRequestCallback);
return OK;
- }
+ }*/
}
}
@@ -250,11 +251,13 @@ uint32_t DispenserAbortHomingRequestFunc(MessageContainer* requestContainer)
DispenserAbortHomingResponse response = DISPENSER_ABORT_HOMING_RESPONSE__INIT;
+ IDS_StopHomeDispenser(request->index);
+/*
TimerMotors_t MotorId = (request->index)+HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_1;
MotorAbortMovetoLimitSwitch(MotorId);
//close dry air valve in the dispenser
- Valve_Set((Valves_t) ((request->index)+VALVE_2W_MID_AIR_LF), Atm_MidTank_OFF);
-
+ Valve_Set((Valves_t) ((request->index)+VALVE_2W_MID_AIR_8), Atm_MidTank_OFF);
+*/
responseContainer = createContainer(MESSAGE_TYPE__DispenserAbortHomingResponse, requestContainer->token, false, &response, &dispenser_abort_homing_response__pack, &dispenser_abort_homing_response__get_packed_size);
responseContainer.continuous = false;
uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
index c40d018c3..924bd9e86 100644
--- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
@@ -444,7 +444,8 @@ uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue)
}
if (HeaterCmd[index].targettemperatue == 0)
{
- LOG_ERROR (0, "unconfigured");
+ DeActivateHeater(index);
+ //LOG_ERROR (0, "unconfigured");
return ERROR;
}
// check if the read value is within the proportional band
@@ -523,7 +524,7 @@ uint32_t DCHeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue)
if (HeaterCmd[index].targettemperatue == 0)
{
DeActivateHeater(index);
- LOG_ERROR (index, "unconfigured");
+ //LOG_ERROR (index, "unconfigured");
return ERROR;
}
/*
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_ex.h b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_ex.h
index ea5505642..75d86fdd7 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_ex.h
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_ex.h
@@ -21,6 +21,10 @@ uint32_t IDSEndState(void *JobDetails);
uint32_t IDS_DispenserPidRequestMessage(HardwarePidControl* request);
+uint32_t IDS_HomeDispenser (uint32_t deviceID, uint32_t speed , callback_fptr callback);
+uint32_t IDS_StopHomeDispenser (uint32_t deviceID);
+
+
float CalculateDispenserPressure (int DispenserId);
float GetDispenserPressure(int DispenserId);
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
index e69de29bb..6e31199f6 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
@@ -0,0 +1,93 @@
+/************************************************************************************************************************
+ * Ids_maint.c
+ * Printing module is responsible for :
+ * operating the dispensers according to predefined dispensing rate from the UI
+ **************************************************************************************************************************/
+#include "include.h"
+#include "ids.h"
+#include "ids_ex.h"
+#include "../control/control.h"
+#include "../control/pidalgo.h"
+#include "../thread/thread.h"
+#include "PMR/Hardware/Hardwaremotor.pb-c.h"
+#include "PMR/Hardware/HardwareDispenser.pb-c.h"
+#include "StateMachines/Printing/printingSTM.h"
+
+#include "drivers/FPGA/FPGA_GPIO/FPGA_GPIO.h"
+#include "drivers/Motors/Motor.h"
+#include "drivers/Valves/Valve.h"
+
+FPGA_GPI_ENUM Dispenser_Id_to_LS_Id[MAX_SYSTEM_DISPENSERS] = {
+ GPI_LS_DISPENSER_DOWN_1, //MOTO_DISPENSER_1 = 6,
+ GPI_LS_DISPENSER_DOWN_2, //MOTO_DISPENSER_2 = 7,
+ GPI_LS_DISPENSER_DOWN_3, //MOTO_DISPENSER_3 = 8,
+ GPI_LS_DISPENSER_DOWN_4, //MOTO_DISPENSER_4 = 9,
+ GPI_LS_DISPENSER_DOWN_5, //MOTO_DISPENSER_5 = 10,
+ GPI_LS_DISPENSER_DOWN_6, //MOTO_DISPENSER_6 = 11,
+ GPI_LS_DISPENSER_DOWN_7, //MOTO_DISPENSER_7 = 12,
+ GPI_LS_DISPENSER_DOWN_8, //MOTO_DISPENSER_8 = 13,
+};
+callback_fptr HomingRequestCallback[MAX_SYSTEM_DISPENSERS]={0,0,0,0,0,0,0,0};
+bool HomingActive[MAX_SYSTEM_DISPENSERS] = {false,false,false,false,false,false,false,false};
+
+uint32_t IDS_HomeDispenserCallback(uint32_t deviceID, uint32_t ReadValue)
+{
+ uint8_t DispenserId = deviceID-HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_1;
+
+ //close dry air valve in the dispenser
+ Valve_Set(IDS_Id_to_AirValve[deviceID], Atm_MidTank_OFF);
+ MotorSetMicroStep(deviceID, MotorsCfg[deviceID].microstep);
+ if (HomingRequestCallback[deviceID])
+ {
+ HomingRequestCallback[deviceID](deviceID,0);
+ HomingRequestCallback[deviceID] = NULL;
+ }
+ HomingActive[deviceID]= false;
+
+return OK;
+
+}
+
+uint32_t IDS_HomeDispenser (uint32_t deviceID, uint32_t speed , callback_fptr callback)
+{
+ assert(deviceID < MAX_SYSTEM_DISPENSERS);
+
+ if (HomingActive[deviceID] == true)
+ return ERROR;
+ else
+ HomingActive[deviceID] = true;
+
+ HomingRequestCallback[deviceID] = callback;
+
+ TimerMotors_t MotorId = HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_1 + deviceID;
+ if ( Dispenser_Id_to_LS_Id[MotorId] != MAX_GPI)
+ {
+ //open dispenser valve dispenser to midtank direction
+ Control3WayValvesWithCallback ((Valves_t)deviceID, MidTank_Dispenser, NULL); //direction: MidTank_Dispenser or Dispenser_Mixer
+ //Valve_Set((Valves_t) request->index, MidTank_Dispenser);
+ MotorSetMicroStep(deviceID, 1);
+ //open dry air valve in the dispenser
+ Valve_Set(IDS_Id_to_AirValve[deviceID], Atm_MidTank_ON);
+
+
+ MotorMovetoLimitSwitch (MotorId,1-MotorsCfg[MotorId].directionthreadwize, speed, Dispenser_Id_to_LS_Id[MotorId], IDS_HomeDispenserCallback);
+ return OK;
+ }
+}
+
+uint32_t IDS_StopHomeDispenser (uint32_t deviceID)
+{
+ assert(deviceID < MAX_SYSTEM_DISPENSERS);
+
+ if (HomingActive[deviceID] != true)
+ return ERROR;
+ else
+ HomingActive[deviceID] = false;
+
+ TimerMotors_t MotorId = (deviceID)+HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_1;
+ MotorAbortMovetoLimitSwitch(MotorId);
+ //close dry air valve in the dispenser
+ Valve_Set(IDS_Id_to_AirValve[deviceID], Atm_MidTank_OFF);
+ MotorSetMicroStep(deviceID, MotorsCfg[deviceID].microstep);
+ return OK;
+}
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
index bb552211c..ff9ff3795 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
@@ -1,8 +1,7 @@
/************************************************************************************************************************
* Ids_print.c
* Printing module is responsible for :
- * operating diffrent winding algorithms with predefined parameters from the UI
- * operating the dispensers according to predefined dispensing rate from the UI
+ * operating the dispensers according to predefined dispensing rate from the UI
**************************************************************************************************************************/
#include "include.h"
#include "ids.h"
@@ -284,7 +283,7 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId)
DispenserSegmentReady[DispenserId] = false;
Control3WayValvesWithCallback (DispenserId, Dispenser_Mixer, NULL); //direction: MidTank_Dispenser or Dispenser_Mixer
MotorSetSpeed(HW_Motor_Id, segmentfirst_speed);
- usnprintf(Message, 80, "Dispenser %d nl/sec %f nl/pulse %f speed %d",Dispenser_i,JobTicket->segments[CurrentSegment]->brushstops[JobBrushStopId]->dispensers[Dispenser_i]->nanolitterpersecond,
+ usnprintf(Message, 80, "Dispenser %d nl/sec %d nl/pulse %d speed %d",Dispenser_i,JobTicket->segments[CurrentSegment]->brushstops[JobBrushStopId]->dispensers[Dispenser_i]->nanolitterpersecond,
JobTicket->segments[CurrentSegment]->brushstops[JobBrushStopId]->dispensers[Dispenser_i]->nanoliterperpulse,segmentfirst_speed);
//LOG_ERROR(segmentfirst_speed,Message);
//Report(Message,__FILE__,__LINE__,Dispenser_i,RpWarning,segmentfirst_speed,0);
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_HW_Version.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_HW_Version.c
index 09244364a..e2f2013c9 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_HW_Version.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_HW_Version.c
@@ -27,9 +27,9 @@ char Read_HW_Version(unsigned char *Brd_ID, unsigned char *Assy_ID)
//TODO Move in GPIO Initialisation
// ----------- Set HW Version GPIO as Input -----------
- MAP_GPIOPinTypeGPIOInput(GPIO_PORTS_BASE, GPIO_PIN_3 | GPIO_PIN_2 | GPIO_PIN_1);
- MAP_GPIOPinTypeGPIOInput(GPIO_PORTJ_BASE, GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_7);
- MAP_GPIOPinTypeGPIOInput(GPIO_PORTP_BASE, GPIO_PIN_3 | GPIO_PIN_5);
+ //MAP_GPIOPinTypeGPIOInput(GPIO_PORTS_BASE, GPIO_PIN_3 | GPIO_PIN_2 | GPIO_PIN_1);
+ //MAP_GPIOPinTypeGPIOInput(GPIO_PORTJ_BASE, GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_7);
+ //MAP_GPIOPinTypeGPIOInput(GPIO_PORTP_BASE, GPIO_PIN_3 | GPIO_PIN_5);
//Set HW Version GPIO to Pull down
GPIOPadConfigSet(GPIO_PORTS_BASE, GPIO_PIN_3 | GPIO_PIN_2 | GPIO_PIN_1, GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD_WPD );
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_HW_Version.h b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_HW_Version.h
index b1bc504a3..299240651 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_HW_Version.h
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_HW_Version.h
@@ -2,5 +2,6 @@
#define STUB_HWVER_H
void Stub_HWVersionRequest(MessageContainer* requestContainer);
+char Read_HW_Version(unsigned char *Brd_ID, unsigned char *Assy_ID);
#endif //STUB_HWVER_H
diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c
index 7a3771de9..f1e2629aa 100644
--- a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c
+++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c
@@ -407,16 +407,19 @@ void SendJobProgress(double ProcessedLength, int SegmentId, bool done, char *Mes
uint8_t* container_buffer;
//
- strcpy (infomsg,Message);
int len;
static msdid = 0;
- int length = (int)ProcessedLength;
- len = usnprintf(logmsg, 254, "MSG: Job Progress Length %f, Seg %d Done %d ",ProcessedLength, SegmentId, done);
+ int length = (int)(ProcessedLength*100);
+ len = usnprintf(logmsg, 254, "MSG: Job Progress Length %d, Seg %d Done %d ",length, SegmentId, done);
//REPORT_MSG(msdid++,logmsg);
Report(logmsg,__FILE__,__LINE__,SegmentId,RpWarning,SegmentId, done);
- Report(infomsg,__FILE__,__LINE__,55,RpWarning,33, 44);
+ if (Message)
+ {
+ strcpy (infomsg,Message);
+ Report(infomsg,__FILE__,__LINE__,55,RpWarning,33, 44);
+ }
if (JobToken[0] == 0)
return;