diff options
| author | Avi Levkovich <avi@twine-s.com> | 2020-05-26 17:03:25 +0300 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2020-05-26 17:03:25 +0300 |
| commit | fd326204404ee0932ea465efcdd41e21fd7f2b49 (patch) | |
| tree | ffb38ac74dc86490a8581539cba7094452cb6ed6 /Software/Embedded_SW | |
| parent | f0fc1abe6628c903d2e58dcd1b1a88ef43d45057 (diff) | |
| parent | 7102ed21905bc52c6aee506e919992ce1f98f641 (diff) | |
| download | Tango-fd326204404ee0932ea465efcdd41e21fd7f2b49.tar.gz Tango-fd326204404ee0932ea465efcdd41e21fd7f2b49.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Embedded_SW')
23 files changed, 1300 insertions, 125 deletions
diff --git a/Software/Embedded_SW/Embedded/Common/Utilities/idle_task.c b/Software/Embedded_SW/Embedded/Common/Utilities/idle_task.c index 86c030dc0..54e186b28 100644 --- a/Software/Embedded_SW/Embedded/Common/Utilities/idle_task.c +++ b/Software/Embedded_SW/Embedded/Common/Utilities/idle_task.c @@ -51,7 +51,7 @@ static uint32_t idle_counter; static long next_interval; /*by ticks*/ static bool first_time_after_init; static int system_load; -static int load; +static int Load; static int max_system_load; static int max_load; static uint32_t idle_load_table[101]; @@ -188,14 +188,14 @@ uint32_t unload_max_count=0; calculate_system_load(current_load); old_idle_counter = idle_counter; time_interval = next_interval; - load=current_load; + Load=current_load; prev_load = current_load / 10; - idle_load_table[load]++; - if(load > max_load) max_load = load; - //REPORT_MSG(load,"Real time load"); + idle_load_table[Load]++; + if(Load > max_load) max_load = Load; + //REPORT_MSG(Load,"Real time load"); #ifdef DEBUG - printf("c_ld=%d\n",load); + printf("c_ld=%d\n",Load); #endif } } @@ -239,7 +239,7 @@ static uint32_t number_of_load_samples; first_time_after_init = FALSE; system_load = current_load; max_system_load = system_load; - max_load = load; + max_load = Load; number_of_load_samples = 1; sum_of_previous_load = current_load; } @@ -299,7 +299,7 @@ extern int IDLE_TASK_get_load(void) /***********************************************************/ extern int IDLE_TASK_get_current_load(void) { - return load; + return Load; } /***********************************************************/ @@ -320,7 +320,7 @@ extern int IDLE_TASK_get_load(void) /***********************************************************/ /*export MN_uint32_t mn_get_curent_load(char *pParams) { - MN_printf("\n\rload=%d,max load=%d", load, max_load); + MN_printf("\n\rload=%d,max Load=%d", Load, max_load); return(RET_OK); } */ 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 index a35a4f23e..555e4fe12 100644 --- a/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/InterfaceIOs.pb-c.c +++ b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/InterfaceIOs.pb-c.c @@ -7,7 +7,7 @@ #endif #include "InterfaceIOs.pb-c.h" -static const ProtobufCEnumValue interface_ios__enum_values_by_number[45] = +static const ProtobufCEnumValue interface_ios__enum_values_by_number[48] = { { "", "", 0 }, { "", "", 19 }, @@ -39,6 +39,9 @@ static const ProtobufCEnumValue interface_ios__enum_values_by_number[45] = { "", "", 178 }, { "", "", 179 }, { "", "", 180 }, + { "", "", 214 }, + { "", "", 215 }, + { "", "", 216 }, { "", "", 224 }, { "", "", 270 }, { "", "", 271 }, @@ -56,16 +59,19 @@ static const ProtobufCEnumValue interface_ios__enum_values_by_number[45] = { "", "", 346 }, }; static const ProtobufCIntRange interface_ios__value_ranges[] = { -{0, 0},{19, 1},{43, 6},{54, 9},{64, 11},{163, 12},{224, 30},{270, 31},{296, 36},{318, 37},{341, 39},{0, 45} +{0, 0},{19, 1},{43, 6},{54, 9},{64, 11},{163, 12},{214, 30},{224, 33},{270, 34},{296, 39},{318, 40},{341, 42},{0, 48} }; -static const ProtobufCEnumValueIndex interface_ios__enum_values_by_name[45] = +static const ProtobufCEnumValueIndex interface_ios__enum_values_by_name[48] = { { "", 0 }, - { "", 39 }, - { "", 40 }, - { "", 41 }, { "", 31 }, + { "", 32 }, + { "", 30 }, { "", 42 }, + { "", 43 }, + { "", 44 }, + { "", 34 }, + { "", 45 }, { "", 12 }, { "", 6 }, { "", 7 }, @@ -75,18 +81,18 @@ static const ProtobufCEnumValueIndex interface_ios__enum_values_by_name[45] = { "", 4 }, { "", 5 }, { "", 11 }, - { "", 32 }, - { "", 33 }, - { "", 34 }, { "", 35 }, - { "", 1 }, + { "", 36 }, { "", 37 }, { "", 38 }, + { "", 1 }, + { "", 40 }, + { "", 41 }, { "", 9 }, { "", 10 }, - { "", 36 }, + { "", 39 }, { "", 13 }, - { "", 43 }, + { "", 46 }, { "", 14 }, { "", 22 }, { "", 15 }, @@ -103,8 +109,8 @@ static const ProtobufCEnumValueIndex interface_ios__enum_values_by_name[45] = { "", 28 }, { "", 21 }, { "", 29 }, - { "", 30 }, - { "", 44 }, + { "", 33 }, + { "", 47 }, }; const ProtobufCEnumDescriptor interface_ios__descriptor = { @@ -113,11 +119,11 @@ const ProtobufCEnumDescriptor interface_ios__descriptor = "", "", "", - 45, + 48, interface_ios__enum_values_by_number, - 45, + 48, interface_ios__enum_values_by_name, - 11, + 12, 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 index 4f0545389..8f2631c75 100644 --- a/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/InterfaceIOs.pb-c.h +++ b/Software/Embedded_SW/Embedded/Communication/PMR/Diagnostics/InterfaceIOs.pb-c.h @@ -50,6 +50,9 @@ typedef enum _InterfaceIOs { INTERFACE_IOS__Midtank6Cartridge = 178, INTERFACE_IOS__Midtank7Cartridge = 179, INTERFACE_IOS__Midtank8Cartridge = 180, + INTERFACE_IOS__CART3 = 214, + INTERFACE_IOS__CART1 = 215, + INTERFACE_IOS__CART2 = 216, INTERFACE_IOS__SW_SPARE = 224, INTERFACE_IOS__GPO_BUZZER = 270, INTERFACE_IOS__GPO_LED1 = 271, diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/MachineStatus/MachineStatus.pb-c.c b/Software/Embedded_SW/Embedded/Communication/PMR/MachineStatus/MachineStatus.pb-c.c index 0bc8dbde8..ad257ca79 100644 --- a/Software/Embedded_SW/Embedded/Communication/PMR/MachineStatus/MachineStatus.pb-c.c +++ b/Software/Embedded_SW/Embedded/Communication/PMR/MachineStatus/MachineStatus.pb-c.c @@ -52,7 +52,7 @@ void machine_status__free_unpacked assert(message->base.descriptor == &machine_status__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -static const ProtobufCFieldDescriptor machine_status__field_descriptors[3] = +static const ProtobufCFieldDescriptor machine_status__field_descriptors[4] = { { "", @@ -90,16 +90,29 @@ static const ProtobufCFieldDescriptor machine_status__field_descriptors[3] = 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, + { + "", + 4, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_ENUM, + offsetof(MachineStatus, has_spoolstate), + offsetof(MachineStatus, spoolstate), + &spool_state__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, }; static const unsigned machine_status__field_indices_by_name[] = { 1, /* field[1] = IDSPacksLevels */ 2, /* field[2] = OverallTemperature */ + 3, /* field[3] = SpoolState */ 0, /* field[0] = State */ }; static const ProtobufCIntRange machine_status__number_ranges[1 + 1] = { { 1, 0 }, - { 0, 3 } + { 0, 4 } }; const ProtobufCMessageDescriptor machine_status__descriptor = { @@ -109,7 +122,7 @@ const ProtobufCMessageDescriptor machine_status__descriptor = "", "", sizeof(MachineStatus), - 3, + 4, machine_status__field_descriptors, machine_status__field_indices_by_name, 1, machine_status__number_ranges, diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/MachineStatus/MachineStatus.pb-c.h b/Software/Embedded_SW/Embedded/Communication/PMR/MachineStatus/MachineStatus.pb-c.h index a8a54eb13..003fcd09c 100644 --- a/Software/Embedded_SW/Embedded/Communication/PMR/MachineStatus/MachineStatus.pb-c.h +++ b/Software/Embedded_SW/Embedded/Communication/PMR/MachineStatus/MachineStatus.pb-c.h @@ -16,6 +16,7 @@ PROTOBUF_C__BEGIN_DECLS #include "MachineState.pb-c.h" #include "IDSPackLevel.pb-c.h" +#include "SpoolState.pb-c.h" typedef struct _MachineStatus MachineStatus; @@ -34,10 +35,12 @@ struct _MachineStatus IDSPackLevel **idspackslevels; protobuf_c_boolean has_overalltemperature; double overalltemperature; + protobuf_c_boolean has_spoolstate; + SpoolState spoolstate; }; #define MACHINE_STATUS__INIT \ { PROTOBUF_C_MESSAGE_INIT (&machine_status__descriptor) \ - , 0, MACHINE_STATE__PowerUp, 0,NULL, 0, 0 } + , 0, MACHINE_STATE__PowerUp, 0,NULL, 0, 0, 0, SPOOL_STATE__Absent } /* MachineStatus methods */ diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/MachineStatus/SpoolState.pb-c.c b/Software/Embedded_SW/Embedded/Communication/PMR/MachineStatus/SpoolState.pb-c.c new file mode 100644 index 000000000..d88277e97 --- /dev/null +++ b/Software/Embedded_SW/Embedded/Communication/PMR/MachineStatus/SpoolState.pb-c.c @@ -0,0 +1,37 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: SpoolState.proto */ + +/* Do not generate deprecated warnings for self */ +#ifndef PROTOBUF_C__NO_DEPRECATED +#define PROTOBUF_C__NO_DEPRECATED +#endif + +#include "SpoolState.pb-c.h" +static const ProtobufCEnumValue spool_state__enum_values_by_number[2] = +{ + { "", "", 0 }, + { "", "", 1 }, +}; +static const ProtobufCIntRange spool_state__value_ranges[] = { +{0, 0},{0, 2} +}; +static const ProtobufCEnumValueIndex spool_state__enum_values_by_name[2] = +{ + { "", 0 }, + { "", 1 }, +}; +const ProtobufCEnumDescriptor spool_state__descriptor = +{ + PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, + "", + "", + "", + "", + 2, + spool_state__enum_values_by_number, + 2, + spool_state__enum_values_by_name, + 1, + spool_state__value_ranges, + NULL,NULL,NULL,NULL /* reserved[1234] */ +}; diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/MachineStatus/SpoolState.pb-c.h b/Software/Embedded_SW/Embedded/Communication/PMR/MachineStatus/SpoolState.pb-c.h new file mode 100644 index 000000000..037c9a18e --- /dev/null +++ b/Software/Embedded_SW/Embedded/Communication/PMR/MachineStatus/SpoolState.pb-c.h @@ -0,0 +1,43 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: SpoolState.proto */ + +#ifndef PROTOBUF_C_SpoolState_2eproto__INCLUDED +#define PROTOBUF_C_SpoolState_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 _SpoolState { + SPOOL_STATE__Absent = 0, + SPOOL_STATE__Present = 1 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SPOOL_STATE) +} SpoolState; + +/* --- messages --- */ + +/* --- per-message closures --- */ + + +/* --- services --- */ + + +/* --- descriptors --- */ + +extern const ProtobufCEnumDescriptor spool_state__descriptor; + +PROTOBUF_C__END_DECLS + + +#endif /* PROTOBUF_C_SpoolState_2eproto__INCLUDED */ diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubWhsEEpromData.pb-c.c b/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubWhsEEpromData.pb-c.c index 3a27bf9bf..aa5eff57b 100644 --- a/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubWhsEEpromData.pb-c.c +++ b/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubWhsEEpromData.pb-c.c @@ -52,7 +52,7 @@ void stub_whs_eeprom_data__free_unpacked assert(message->base.descriptor == &stub_whs_eeprom_data__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[19] = +static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[84] = { { "", @@ -71,8 +71,8 @@ static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[19 2, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_UINT32, - offsetof(StubWhsEEpromData, has_tablelength), - offsetof(StubWhsEEpromData, tablelength), + offsetof(StubWhsEEpromData, has_table_length), + offsetof(StubWhsEEpromData, table_length), NULL, NULL, 0, /* flags */ @@ -83,8 +83,8 @@ static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[19 3, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_UINT32, - offsetof(StubWhsEEpromData, has_tableversion), - offsetof(StubWhsEEpromData, tableversion), + offsetof(StubWhsEEpromData, has_table_version), + offsetof(StubWhsEEpromData, table_version), NULL, NULL, 0, /* flags */ @@ -96,7 +96,7 @@ static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[19 PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(StubWhsEEpromData, whsp_n), + offsetof(StubWhsEEpromData, whs_sn), NULL, NULL, 0, /* flags */ @@ -108,7 +108,7 @@ static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[19 PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(StubWhsEEpromData, pcbs_n), + offsetof(StubWhsEEpromData, pcb_sn), NULL, NULL, 0, /* flags */ @@ -120,7 +120,7 @@ static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[19 PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(StubWhsEEpromData, pcbpartnumber), + offsetof(StubWhsEEpromData, whs_part_number), NULL, NULL, 0, /* flags */ @@ -132,7 +132,7 @@ static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[19 PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ - offsetof(StubWhsEEpromData, whss_n), + offsetof(StubWhsEEpromData, pcb_part_number), NULL, NULL, 0, /* flags */ @@ -142,6 +142,90 @@ static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[19 "", 8, PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_UINT32, + offsetof(StubWhsEEpromData, has_runninghours), + offsetof(StubWhsEEpromData, runninghours), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 9, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_UINT32, + offsetof(StubWhsEEpromData, has_sw_reserve), + offsetof(StubWhsEEpromData, sw_reserve), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 10, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(StubWhsEEpromData, production_test_date), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 11, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(StubWhsEEpromData, testpassfail), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 12, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_UINT32, + offsetof(StubWhsEEpromData, has_ats_location), + offsetof(StubWhsEEpromData, ats_location), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 13, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_orifice_waste_level_v0_ml), + offsetof(StubWhsEEpromData, orifice_waste_level_v0_ml), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 14, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_flow_calc_coefficient_c), + offsetof(StubWhsEEpromData, flow_calc_coefficient_c), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 15, + PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_DOUBLE, offsetof(StubWhsEEpromData, has_orifice1flow), offsetof(StubWhsEEpromData, orifice1flow), @@ -152,7 +236,7 @@ static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[19 }, { "", - 9, + 16, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_DOUBLE, offsetof(StubWhsEEpromData, has_orifice1slope), @@ -164,7 +248,31 @@ static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[19 }, { "", - 10, + 17, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_orifice1maxpressure), + offsetof(StubWhsEEpromData, orifice1maxpressure), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 18, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_orifice1calibrationfactor), + offsetof(StubWhsEEpromData, orifice1calibrationfactor), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 19, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_DOUBLE, offsetof(StubWhsEEpromData, has_orifice2flow), @@ -176,7 +284,7 @@ static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[19 }, { "", - 11, + 20, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_DOUBLE, offsetof(StubWhsEEpromData, has_orifice2slope), @@ -188,7 +296,31 @@ static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[19 }, { "", - 12, + 21, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_orifice2maxpressure), + offsetof(StubWhsEEpromData, orifice2maxpressure), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 22, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_orifice2calibrationfactor), + offsetof(StubWhsEEpromData, orifice2calibrationfactor), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 23, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_DOUBLE, offsetof(StubWhsEEpromData, has_orifice3flow), @@ -200,7 +332,7 @@ static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[19 }, { "", - 13, + 24, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_DOUBLE, offsetof(StubWhsEEpromData, has_orifice3slope), @@ -212,7 +344,31 @@ static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[19 }, { "", - 14, + 25, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_orifice3maxpressure), + offsetof(StubWhsEEpromData, orifice3maxpressure), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 26, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_orifice3calibrationfactor), + offsetof(StubWhsEEpromData, orifice3calibrationfactor), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 27, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_DOUBLE, offsetof(StubWhsEEpromData, has_orificevalveflow), @@ -224,7 +380,7 @@ static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[19 }, { "", - 15, + 28, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_DOUBLE, offsetof(StubWhsEEpromData, has_orificevalveslope), @@ -236,7 +392,631 @@ static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[19 }, { "", - 16, + 29, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_orificevalvemaxpressure), + offsetof(StubWhsEEpromData, orificevalvemaxpressure), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 30, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_orificevalvecalibrationfactor), + offsetof(StubWhsEEpromData, orificevalvecalibrationfactor), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 31, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_fans_1_4_pwm_min_pct), + offsetof(StubWhsEEpromData, fans_1_4_pwm_min_pct), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 32, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_fans_1_4_rpm_pwm_min), + offsetof(StubWhsEEpromData, fans_1_4_rpm_pwm_min), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 33, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_fans_1_4_pwm_max_pct), + offsetof(StubWhsEEpromData, fans_1_4_pwm_max_pct), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 34, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_fans_1_4_rpm_pwm_max), + offsetof(StubWhsEEpromData, fans_1_4_rpm_pwm_max), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 35, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_fans_1_4_nom_pwm_pct), + offsetof(StubWhsEEpromData, fans_1_4_nom_pwm_pct), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 36, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_fans_1_4_nom_rpm), + offsetof(StubWhsEEpromData, fans_1_4_nom_rpm), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 37, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_fans_1_4_rpm_limit_pct_below_nom), + offsetof(StubWhsEEpromData, fans_1_4_rpm_limit_pct_below_nom), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 38, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_fans_1_4_pulse_per_revolution), + offsetof(StubWhsEEpromData, fans_1_4_pulse_per_revolution), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 39, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_fans_1_4_spare1), + offsetof(StubWhsEEpromData, fans_1_4_spare1), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 40, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_fans_1_4_spare2), + offsetof(StubWhsEEpromData, fans_1_4_spare2), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 41, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_fans_5_6_nom_rpm), + offsetof(StubWhsEEpromData, fans_5_6_nom_rpm), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 42, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_fans_5_6_rpm_limit_pct_below_nom), + offsetof(StubWhsEEpromData, fans_5_6_rpm_limit_pct_below_nom), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 43, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_fans_5_6_pulse_per_revolution), + offsetof(StubWhsEEpromData, fans_5_6_pulse_per_revolution), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 44, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_fans_5_6_spare1), + offsetof(StubWhsEEpromData, fans_5_6_spare1), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 45, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_fans_5_6_spare2), + offsetof(StubWhsEEpromData, fans_5_6_spare2), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 46, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_blower_p_gain), + offsetof(StubWhsEEpromData, blower_p_gain), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 47, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_blower_cfmrpm_min), + offsetof(StubWhsEEpromData, blower_cfmrpm_min), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 48, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_blower_rpm_cfm_max), + offsetof(StubWhsEEpromData, blower_rpm_cfm_max), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 49, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_blower_calibration_factor), + offsetof(StubWhsEEpromData, blower_calibration_factor), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 50, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_blower_spare1), + offsetof(StubWhsEEpromData, blower_spare1), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 51, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_blower_spare2), + offsetof(StubWhsEEpromData, blower_spare2), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 52, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_voc_limit), + offsetof(StubWhsEEpromData, voc_limit), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 53, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_voc_spare1), + offsetof(StubWhsEEpromData, voc_spare1), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 54, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_voc_spare2), + offsetof(StubWhsEEpromData, voc_spare2), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 55, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_controller_comm_type), + offsetof(StubWhsEEpromData, controller_comm_type), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 56, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_controller_type), + offsetof(StubWhsEEpromData, controller_type), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 57, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_sensor_type), + offsetof(StubWhsEEpromData, sensor_type), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 58, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_cooler_c_f), + offsetof(StubWhsEEpromData, cooler_c_f), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 59, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_cooler_sv), + offsetof(StubWhsEEpromData, cooler_sv), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 60, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_cooler_p), + offsetof(StubWhsEEpromData, cooler_p), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 61, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_cooler_i), + offsetof(StubWhsEEpromData, cooler_i), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 62, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_cooler_d), + offsetof(StubWhsEEpromData, cooler_d), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 63, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_warning_configuration_par1), + offsetof(StubWhsEEpromData, warning_configuration_par1), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 64, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_warning_configuration_par2), + offsetof(StubWhsEEpromData, warning_configuration_par2), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 65, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_warning_configuration_par3), + offsetof(StubWhsEEpromData, warning_configuration_par3), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 66, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_warning_configuration_par4), + offsetof(StubWhsEEpromData, warning_configuration_par4), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 67, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_warning_configuration_par5), + offsetof(StubWhsEEpromData, warning_configuration_par5), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 68, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_warning_configuration_par6), + offsetof(StubWhsEEpromData, warning_configuration_par6), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 69, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_warning_threshold), + offsetof(StubWhsEEpromData, warning_threshold), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 70, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_controller_spare1), + offsetof(StubWhsEEpromData, controller_spare1), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 71, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_controller_spare2), + offsetof(StubWhsEEpromData, controller_spare2), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 72, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_controller_spare3), + offsetof(StubWhsEEpromData, controller_spare3), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 73, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_controller_spare4), + offsetof(StubWhsEEpromData, controller_spare4), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 74, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_controller_spare5), + offsetof(StubWhsEEpromData, controller_spare5), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 75, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_test_date), + offsetof(StubWhsEEpromData, test_date), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 76, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(StubWhsEEpromData, test), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 77, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_waste_pump_flow_volume_per_sec), + offsetof(StubWhsEEpromData, waste_pump_flow_volume_per_sec), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 78, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_waste_pump_flow_v_per_sec_limit), + offsetof(StubWhsEEpromData, waste_pump_flow_v_per_sec_limit), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 79, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_filter_max_life_span), + offsetof(StubWhsEEpromData, filter_max_life_span), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 80, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(StubWhsEEpromData, has_filter_usage_hours), + offsetof(StubWhsEEpromData, filter_usage_hours), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "", + 81, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ @@ -248,7 +1028,7 @@ static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[19 }, { "", - 17, + 82, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ @@ -260,7 +1040,7 @@ static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[19 }, { "", - 18, + 83, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ @@ -272,7 +1052,7 @@ static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[19 }, { "", - 19, + 84, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_UINT32, offsetof(StubWhsEEpromData, has_checksum), @@ -284,30 +1064,95 @@ static const ProtobufCFieldDescriptor stub_whs_eeprom_data__field_descriptors[19 }, }; static const unsigned stub_whs_eeprom_data__field_indices_by_name[] = { - 18, /* field[18] = CheckSum */ - 16, /* field[16] = FilterInstallationDate */ + 11, /* field[11] = ATS_Location */ + 46, /* field[46] = Blower_CFMRPM_min */ + 48, /* field[48] = Blower_Calibration_factor */ + 45, /* field[45] = Blower_P_Gain */ + 47, /* field[47] = Blower_RPM_CFM_max */ + 49, /* field[49] = Blower_Spare1 */ + 50, /* field[50] = Blower_Spare2 */ + 83, /* field[83] = CheckSum */ + 54, /* field[54] = Controller_Comm_Type */ + 69, /* field[69] = Controller_Spare1 */ + 70, /* field[70] = Controller_Spare2 */ + 71, /* field[71] = Controller_Spare3 */ + 72, /* field[72] = Controller_Spare4 */ + 73, /* field[73] = Controller_Spare5 */ + 55, /* field[55] = Controller_Type */ + 57, /* field[57] = Cooler_C_F */ + 61, /* field[61] = Cooler_D */ + 60, /* field[60] = Cooler_I */ + 59, /* field[59] = Cooler_P */ + 58, /* field[58] = Cooler_SV */ + 34, /* field[34] = Fans_1_4_Nom_PWM_Pct */ + 35, /* field[35] = Fans_1_4_Nom_RPM */ + 32, /* field[32] = Fans_1_4_PWM_max_Pct */ + 30, /* field[30] = Fans_1_4_PWM_min_Pct */ + 37, /* field[37] = Fans_1_4_Pulse_Per_Revolution */ + 36, /* field[36] = Fans_1_4_RPM_Limit_Pct_below_Nom */ + 33, /* field[33] = Fans_1_4_RPM_PWM_max */ + 31, /* field[31] = Fans_1_4_RPM_PWM_min */ + 38, /* field[38] = Fans_1_4_Spare1 */ + 39, /* field[39] = Fans_1_4_Spare2 */ + 40, /* field[40] = Fans_5_6_Nom_RPM */ + 42, /* field[42] = Fans_5_6_Pulse_Per_Revolution */ + 41, /* field[41] = Fans_5_6_RPM_Limit_Pct_below_Nom */ + 43, /* field[43] = Fans_5_6_Spare1 */ + 44, /* field[44] = Fans_5_6_Spare2 */ + 81, /* field[81] = FilterInstallationDate */ + 78, /* field[78] = Filter_max_life_span */ + 79, /* field[79] = Filter_usage_hours */ 0, /* field[0] = Header */ - 7, /* field[7] = Orifice1Flow */ - 8, /* field[8] = Orifice1Slope */ - 9, /* field[9] = Orifice2Flow */ - 10, /* field[10] = Orifice2Slope */ - 11, /* field[11] = Orifice3Flow */ - 12, /* field[12] = Orifice3Slope */ - 13, /* field[13] = OrificeValveFlow */ - 14, /* field[14] = OrificeValveSlope */ - 5, /* field[5] = PCBPartNumber */ - 4, /* field[4] = PCBS_N */ - 17, /* field[17] = ProductionDate */ - 1, /* field[1] = TableLength */ - 2, /* field[2] = Tableversion */ - 15, /* field[15] = VOCInstallationDate */ - 3, /* field[3] = WhsP_N */ - 6, /* field[6] = WhsS_N */ + 17, /* field[17] = Orifice1CalibrationFactor */ + 14, /* field[14] = Orifice1Flow */ + 16, /* field[16] = Orifice1MaxPressure */ + 15, /* field[15] = Orifice1Slope */ + 21, /* field[21] = Orifice2CalibrationFactor */ + 18, /* field[18] = Orifice2Flow */ + 20, /* field[20] = Orifice2MaxPressure */ + 19, /* field[19] = Orifice2Slope */ + 25, /* field[25] = Orifice3CalibrationFactor */ + 22, /* field[22] = Orifice3Flow */ + 24, /* field[24] = Orifice3MaxPressure */ + 23, /* field[23] = Orifice3Slope */ + 29, /* field[29] = OrificeValveCalibrationFactor */ + 26, /* field[26] = OrificeValveFlow */ + 28, /* field[28] = OrificeValveMaxPressure */ + 27, /* field[27] = OrificeValveSlope */ + 12, /* field[12] = Orifice_Waste_Level_V0_ml */ + 6, /* field[6] = PCB_Part_Number */ + 4, /* field[4] = PCB_SN */ + 82, /* field[82] = ProductionDate */ + 9, /* field[9] = Production_Test_Date */ + 7, /* field[7] = RunningHours */ + 8, /* field[8] = SW_Reserve */ + 56, /* field[56] = Sensor_type */ + 1, /* field[1] = Table_Length */ + 2, /* field[2] = Table_version */ + 75, /* field[75] = Test */ + 10, /* field[10] = TestPassFail */ + 74, /* field[74] = Test_Date */ + 80, /* field[80] = VOCInstallationDate */ + 52, /* field[52] = VOC_Spare1 */ + 53, /* field[53] = VOC_Spare2 */ + 51, /* field[51] = VOC_limit */ + 5, /* field[5] = WHS_Part_Number */ + 3, /* field[3] = WHS_SN */ + 62, /* field[62] = Warning_configuration_Par1 */ + 63, /* field[63] = Warning_configuration_Par2 */ + 64, /* field[64] = Warning_configuration_Par3 */ + 65, /* field[65] = Warning_configuration_Par4 */ + 66, /* field[66] = Warning_configuration_Par5 */ + 67, /* field[67] = Warning_configuration_Par6 */ + 68, /* field[68] = Warning_threshold */ + 77, /* field[77] = Waste_Pump_Flow_V_per_sec_Limit */ + 76, /* field[76] = Waste_Pump_Flow_volume_per_sec */ + 13, /* field[13] = flow_calc_coefficient_C */ }; static const ProtobufCIntRange stub_whs_eeprom_data__number_ranges[1 + 1] = { { 1, 0 }, - { 0, 19 } + { 0, 84 } }; const ProtobufCMessageDescriptor stub_whs_eeprom_data__descriptor = { @@ -317,7 +1162,7 @@ const ProtobufCMessageDescriptor stub_whs_eeprom_data__descriptor = "", "", sizeof(StubWhsEEpromData), - 19, + 84, stub_whs_eeprom_data__field_descriptors, stub_whs_eeprom_data__field_indices_by_name, 1, stub_whs_eeprom_data__number_ranges, diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubWhsEEpromData.pb-c.h b/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubWhsEEpromData.pb-c.h index 61db1cc92..873abbfb2 100644 --- a/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubWhsEEpromData.pb-c.h +++ b/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubWhsEEpromData.pb-c.h @@ -28,30 +28,157 @@ struct _StubWhsEEpromData ProtobufCMessage base; protobuf_c_boolean has_header; uint32_t header; - protobuf_c_boolean has_tablelength; - uint32_t tablelength; - protobuf_c_boolean has_tableversion; - uint32_t tableversion; - char *whsp_n; - char *pcbs_n; - char *pcbpartnumber; - char *whss_n; + protobuf_c_boolean has_table_length; + uint32_t table_length; + protobuf_c_boolean has_table_version; + uint32_t table_version; + char *whs_sn; + char *pcb_sn; + char *whs_part_number; + char *pcb_part_number; + protobuf_c_boolean has_runninghours; + uint32_t runninghours; + protobuf_c_boolean has_sw_reserve; + uint32_t sw_reserve; + char *production_test_date; + char *testpassfail; + protobuf_c_boolean has_ats_location; + uint32_t ats_location; + protobuf_c_boolean has_orifice_waste_level_v0_ml; + double orifice_waste_level_v0_ml; + protobuf_c_boolean has_flow_calc_coefficient_c; + double flow_calc_coefficient_c; protobuf_c_boolean has_orifice1flow; double orifice1flow; protobuf_c_boolean has_orifice1slope; double orifice1slope; + protobuf_c_boolean has_orifice1maxpressure; + double orifice1maxpressure; + protobuf_c_boolean has_orifice1calibrationfactor; + double orifice1calibrationfactor; protobuf_c_boolean has_orifice2flow; double orifice2flow; protobuf_c_boolean has_orifice2slope; double orifice2slope; + protobuf_c_boolean has_orifice2maxpressure; + double orifice2maxpressure; + protobuf_c_boolean has_orifice2calibrationfactor; + double orifice2calibrationfactor; protobuf_c_boolean has_orifice3flow; double orifice3flow; protobuf_c_boolean has_orifice3slope; double orifice3slope; + protobuf_c_boolean has_orifice3maxpressure; + double orifice3maxpressure; + protobuf_c_boolean has_orifice3calibrationfactor; + double orifice3calibrationfactor; protobuf_c_boolean has_orificevalveflow; double orificevalveflow; protobuf_c_boolean has_orificevalveslope; double orificevalveslope; + protobuf_c_boolean has_orificevalvemaxpressure; + double orificevalvemaxpressure; + protobuf_c_boolean has_orificevalvecalibrationfactor; + double orificevalvecalibrationfactor; + protobuf_c_boolean has_fans_1_4_pwm_min_pct; + double fans_1_4_pwm_min_pct; + protobuf_c_boolean has_fans_1_4_rpm_pwm_min; + double fans_1_4_rpm_pwm_min; + protobuf_c_boolean has_fans_1_4_pwm_max_pct; + double fans_1_4_pwm_max_pct; + protobuf_c_boolean has_fans_1_4_rpm_pwm_max; + double fans_1_4_rpm_pwm_max; + protobuf_c_boolean has_fans_1_4_nom_pwm_pct; + double fans_1_4_nom_pwm_pct; + protobuf_c_boolean has_fans_1_4_nom_rpm; + double fans_1_4_nom_rpm; + protobuf_c_boolean has_fans_1_4_rpm_limit_pct_below_nom; + double fans_1_4_rpm_limit_pct_below_nom; + protobuf_c_boolean has_fans_1_4_pulse_per_revolution; + double fans_1_4_pulse_per_revolution; + protobuf_c_boolean has_fans_1_4_spare1; + double fans_1_4_spare1; + protobuf_c_boolean has_fans_1_4_spare2; + double fans_1_4_spare2; + protobuf_c_boolean has_fans_5_6_nom_rpm; + double fans_5_6_nom_rpm; + protobuf_c_boolean has_fans_5_6_rpm_limit_pct_below_nom; + double fans_5_6_rpm_limit_pct_below_nom; + protobuf_c_boolean has_fans_5_6_pulse_per_revolution; + double fans_5_6_pulse_per_revolution; + protobuf_c_boolean has_fans_5_6_spare1; + double fans_5_6_spare1; + protobuf_c_boolean has_fans_5_6_spare2; + double fans_5_6_spare2; + protobuf_c_boolean has_blower_p_gain; + double blower_p_gain; + protobuf_c_boolean has_blower_cfmrpm_min; + double blower_cfmrpm_min; + protobuf_c_boolean has_blower_rpm_cfm_max; + double blower_rpm_cfm_max; + protobuf_c_boolean has_blower_calibration_factor; + double blower_calibration_factor; + protobuf_c_boolean has_blower_spare1; + double blower_spare1; + protobuf_c_boolean has_blower_spare2; + double blower_spare2; + protobuf_c_boolean has_voc_limit; + double voc_limit; + protobuf_c_boolean has_voc_spare1; + double voc_spare1; + protobuf_c_boolean has_voc_spare2; + double voc_spare2; + protobuf_c_boolean has_controller_comm_type; + double controller_comm_type; + protobuf_c_boolean has_controller_type; + double controller_type; + protobuf_c_boolean has_sensor_type; + double sensor_type; + protobuf_c_boolean has_cooler_c_f; + double cooler_c_f; + protobuf_c_boolean has_cooler_sv; + double cooler_sv; + protobuf_c_boolean has_cooler_p; + double cooler_p; + protobuf_c_boolean has_cooler_i; + double cooler_i; + protobuf_c_boolean has_cooler_d; + double cooler_d; + protobuf_c_boolean has_warning_configuration_par1; + double warning_configuration_par1; + protobuf_c_boolean has_warning_configuration_par2; + double warning_configuration_par2; + protobuf_c_boolean has_warning_configuration_par3; + double warning_configuration_par3; + protobuf_c_boolean has_warning_configuration_par4; + double warning_configuration_par4; + protobuf_c_boolean has_warning_configuration_par5; + double warning_configuration_par5; + protobuf_c_boolean has_warning_configuration_par6; + double warning_configuration_par6; + protobuf_c_boolean has_warning_threshold; + double warning_threshold; + protobuf_c_boolean has_controller_spare1; + double controller_spare1; + protobuf_c_boolean has_controller_spare2; + double controller_spare2; + protobuf_c_boolean has_controller_spare3; + double controller_spare3; + protobuf_c_boolean has_controller_spare4; + double controller_spare4; + protobuf_c_boolean has_controller_spare5; + double controller_spare5; + protobuf_c_boolean has_test_date; + double test_date; + char *test; + protobuf_c_boolean has_waste_pump_flow_volume_per_sec; + double waste_pump_flow_volume_per_sec; + protobuf_c_boolean has_waste_pump_flow_v_per_sec_limit; + double waste_pump_flow_v_per_sec_limit; + protobuf_c_boolean has_filter_max_life_span; + double filter_max_life_span; + protobuf_c_boolean has_filter_usage_hours; + double filter_usage_hours; char *vocinstallationdate; char *filterinstallationdate; char *productiondate; @@ -60,7 +187,7 @@ struct _StubWhsEEpromData }; #define STUB_WHS_EEPROM_DATA__INIT \ { PROTOBUF_C_MESSAGE_INIT (&stub_whs_eeprom_data__descriptor) \ - , 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 0, 0 } + , 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 0, 0 } /* StubWhsEEpromData methods */ diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.c index 78dc866da..27e2dd038 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.c @@ -682,8 +682,10 @@ bool waste_seq_cont_stop(void) Report("------------ stop waste_seq_step1_cont -----------------", __FILE__, __LINE__, WasteControlId, RpMessage, 0, 0); Trigger_SetWHS_VOC_Valve(CLOSE); - RemoveControlCallback(WasteControlId, Trigger_ReadWHS_WasteContinouos ); - WasteControlId = 0xFF; + if (RemoveControlCallback(WasteControlId, Trigger_ReadWHS_WasteContinouos )==OK) + WasteControlId = 0xFF; + //else + // Report("Remove control callback failed",__FILE__,__LINE__,(int)WasteControlId,RpWarning,(int)waste_seq_step2,0); return OK; } diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/EEPROM/WHS_EEPROM.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/EEPROM/WHS_EEPROM.c index 40d987039..0f5c0074d 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/EEPROM/WHS_EEPROM.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/EEPROM/WHS_EEPROM.c @@ -290,10 +290,10 @@ uint32_t Get_EEPROM_DATA_From_WHS(StubWhsEEpromData *Whseeprom) { Whseeprom->has_header = true; Whseeprom->header = WHS_Eeprom.bytes.Header; - Whseeprom->has_tablelength = true; - Whseeprom->tablelength = WHS_Eeprom.bytes.Table_Length; - Whseeprom->has_tableversion = true; - Whseeprom->tableversion = WHS_Eeprom.bytes.Table_version; + Whseeprom->has_table_length = true; + Whseeprom->table_length = WHS_Eeprom.bytes.Table_Length; + Whseeprom->has_table_version = true; + Whseeprom->table_version = WHS_Eeprom.bytes.Table_version; Whseeprom->orifice1flow = WHS_Eeprom.bytes.Orifice_Waste_Level_V0_ml; Whseeprom->has_orifice1flow = true; /*Whseeprom->Whsp_n = my_malloc(sizeof(WHS_Eeprom.bytes.Whs_Part_Number)); @@ -369,8 +369,8 @@ uint32_t Prepare_WHS_DATA_For_Burning(StubWhsEEpromData *Whseeprom) uint32_t status = OK; WHS_Eeprom.bytes.Header = Whseeprom->header; - WHS_Eeprom.bytes.Table_Length = Whseeprom->tablelength; - WHS_Eeprom.bytes.Table_version = Whseeprom->tableversion; + WHS_Eeprom.bytes.Table_Length = Whseeprom->table_length; + WHS_Eeprom.bytes.Table_version = Whseeprom->table_version; WHS_Eeprom.bytes.Orifice_Waste_Level_V0_ml = Whseeprom->orifice1flow; /* WHS_Eeprom.bytes.Maximal_Pressure = Whseeprom->maximalpressure; WHS_Eeprom.bytes.Minimal_MV = Whseeprom->minimalmv; diff --git a/Software/Embedded_SW/Embedded/Drivers/USB_Communication/USBCDCD.c b/Software/Embedded_SW/Embedded/Drivers/USB_Communication/USBCDCD.c index 4fe623e5a..8b4445146 100644 --- a/Software/Embedded_SW/Embedded/Drivers/USB_Communication/USBCDCD.c +++ b/Software/Embedded_SW/Embedded/Drivers/USB_Communication/USBCDCD.c @@ -990,13 +990,20 @@ unsigned int USBCDCD_sendData(const unsigned char *_pBuff, unsigned int _length, unsigned int _timeout) { + int len = 0; uint8_t size[4]; size[3] = (_length>>24) & 0xFF; size[2] = (_length>>16) & 0xFF; size[1] = (_length>>8) & 0xFF; size[0] = _length & 0xFF; - USBBufferWrite((tUSBBuffer *)&txBuffer, size, 4); + len = USBBufferWrite((tUSBBuffer *)&txBuffer, size, 4); + /*if (len == 0) + { + USBRingBufFlush(&(txBuffer.sPrivateData.sRingBuf)); + len = USBBufferWrite((tUSBBuffer *)&txBuffer, size, 4); + }*/ + return USBBufferWrite((tUSBBuffer *)&txBuffer, (uint8_t*)_pBuff, _length); } diff --git a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h index d0505e650..3ad399159 100644 --- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h +++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h @@ -41,6 +41,7 @@ typedef enum { EEPROM_WASTE_TANK_ZERO_VALUE, EEPROM_PULLER_TENSION_POSITION, EEPROM_WINDER_TENSION_POSITION, + EEPROM_INIT_FAILURE_COUNTER, MAX_EEPROM_STORAGE }EEPROM_STORAGE_USAGE_ENUM; #define MAX_SERIAL_NUM_LEN 5 //5*4 bytes diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c index e2e006ba6..d334c9001 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c +++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c @@ -779,10 +779,6 @@ uint32_t MillisecLowLoop(uint32_t tick) midtankDisplay = 1-midtankDisplay; /*if (WHS_Type == WHS_TYPE_UNKNOWN) Gas_PPM_Info = Calculate_Gas_Power_Consumption();*/ - if (WHS_Type == WHS_TYPE_NEW) - { - waste_seq_step1();// include 1Sec delay <- to open !!!! - } // ReportWithPackageFilter(ThreadFilter,"waste tank calculate level",__FILE__,__LINE__,(int)(GetWHSWasteTankLevelMiliLiter()*1000),RpWarning,(int) msec_millisecondCounter,0); //Trigger_WHS_MAX11614_Read_allADC(); #ifdef CONTROL_DEBUG @@ -799,6 +795,10 @@ uint32_t MillisecLowLoop(uint32_t tick) PumpCounter = 0; } MidTankReading(); + if (WHS_Type == WHS_TYPE_NEW) + { + waste_seq_step1();// include 1Sec delay <- to open !!!! + } } //ROM_IntMasterEnable(); diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c index 71475ca41..3f9811636 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c @@ -47,6 +47,7 @@ #include <PMR/debugging/DebugLogCategory.pb-c.h> #include "StateMachines/Printing/PrintingSTM.h" +#include "StateMachines/Initialization/InitSequence.h" #include <drivers/FPGA/FPGA_Comm.h> @@ -129,7 +130,7 @@ DoubleArray DiagnosticsMidTankInkLevel[MAX_SYSTEM_DISPENSERS]; HeaterState **heatersstates; HeaterState HeaterInfo[HEATER_TYPE_MAX_HEATERS]; -#define NUM_OF_INTERFACE_IOS 23 +#define NUM_OF_INTERFACE_IOS 26 DigitalInterfaceState **digitalinterfacestates; DigitalInterfaceState DigitalOutputState[NUM_OF_INTERFACE_IOS]; /*double dispenser1motorfrequency[DIAGNOSTICS_LIMIT+1]; @@ -339,6 +340,15 @@ uint32_t DiagnosticsLoadDigitalValues(void) DigitalOutputState[index].interfaceio = INTERFACE_IOS__GPO_TFEED_BREAK_1; /*Secondary Pump Active*/ DigitalOutputState[index++].value = SecondaryPumpActive; + DigitalOutputState[index].interfaceio = INTERFACE_IOS__CART1; /*Secondary Pump Active*/ + DigitalOutputState[index++].value = IFS_CartridgeLowerPresent(); + + DigitalOutputState[index].interfaceio = INTERFACE_IOS__CART2; /*Secondary Pump Active*/ + DigitalOutputState[index++].value = WHS_WasteCartridgeMiddlePresent(); + + DigitalOutputState[index].interfaceio = INTERFACE_IOS__CART3; /*Secondary Pump Active*/ + DigitalOutputState[index++].value = WHS_WasteCartridgeLowerPresent(); + return index; } void DiagnosticLoadTemperature(int HeaterId, int temperature) @@ -724,8 +734,18 @@ void DiagnosticOneSecCollection(void) tempFlow = HeadFlowMeter; } WasteLevel = GetWHSWasteTankLevelMiliLiter(); + static double InitCounter = 0; + if (GetMachineState()<MACHINE_STATE_NO_PROCESS_PARAMS) + { + InitCounter+=1.0; + DiagnosticsMonitor.chillertemperature = &InitCounter; + + } + else + { + DiagnosticsMonitor.chillertemperature = &WasteLevel; + } DiagnosticsMonitor.n_chillertemperature = 1; - DiagnosticsMonitor.chillertemperature = &WasteLevel; DiagnosticsMonitor.n_wastelevel = 1; DiagnosticsMonitor.wastelevel = &WasteLevel; } diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c index 6782a8ecb..49058c359 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c @@ -150,7 +150,7 @@ uint32_t MotorHomingRequestFunc(MessageContainer* requestContainer) direction = DRIER_LID_OPEN; } Report("MotorHomingRequestFunc Dryer lid open",__FILE__,MotorDriverResponse[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID].DriverType,DRIER_LID_OPEN,RpMessage,GPI_LS_DRYER_LID_OPEN,0); - MotorGotoWithCallback(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID, direction, GPI_LS_DRYER_LID_OPEN, MotorHomingRequestCallback,4000); + MotorGotoWithCallback(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID, direction, GPI_LS_DRYER_LID_OPEN, MotorHomingRequestCallback,10000); status = OK; } else @@ -198,7 +198,7 @@ uint32_t MotorHomingRequestFunc(MessageContainer* requestContainer) direction = DRIER_LID_CLOSE; } Report("MotorHomingRequestFunc Dryer lid close",__FILE__,MotorDriverResponse[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID].DriverType,DRIER_LID_CLOSE,RpMessage,GPI_LS_DRYER_LID_CLOSED,0); - MotorGotoWithCallback(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID, direction, GPI_LS_DRYER_LID_CLOSED, MotorHomingRequestCallback,4000); + MotorGotoWithCallback(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID, direction, GPI_LS_DRYER_LID_CLOSED, MotorHomingRequestCallback,10000); status = OK; } else diff --git a/Software/Embedded_SW/Embedded/Modules/General/MachineStatus.c b/Software/Embedded_SW/Embedded/Modules/General/MachineStatus.c index 146c62bb6..28ad81a6c 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/MachineStatus.c +++ b/Software/Embedded_SW/Embedded/Modules/General/MachineStatus.c @@ -56,6 +56,16 @@ int MachineUpdateResponseFunc(void) MachineStatus.state = StoredMachineStatus; MachineStatus.n_idspackslevels = 0; MachineStatus.idspackslevels = (IDSPackLevel**)my_malloc(sizeof(IDSPackLevel *)*8); + MachineStatus.has_spoolstate = true; + if (FPGA_Read_limit_Switches(GPI_SW_SPOOL_EXISTS)==LIMIT) + { + MachineStatus.spoolstate = SPOOL_STATE__Absent; + } + else + { + MachineStatus.spoolstate = SPOOL_STATE__Present; + + } if (MachineStatus.idspackslevels) { for (i = 0; i<MAX_SYSTEM_DISPENSERS;i++) diff --git a/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c b/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c index 6c7bb087f..5af90c3d1 100644 --- a/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c +++ b/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c @@ -30,6 +30,11 @@ bool IFS_TimeOutAlarm(bool status); bool ColorMatch(); bool MidTankValvesAction(bool action); +bool IFS_CartridgeLowerPresent() +{ + return IFS_info.IFS_Ink_precense_sensor; +} + bool IFS_MidTankFilling(void) { return (IFS_info.Ink.time_out > 0); @@ -60,7 +65,7 @@ void IFS_Init(void) * @return bool ret OK = 0 , CartridgeFinished = 1 */ #define CARTRIDGE_EMPTY_QUANTITY_LIMIT 10 -#define CARTRIDGE_EMPTY_CALCULATION_TIME 6 +#define CARTRIDGE_EMPTY_CALCULATION_TIME 12 bool DetectIfCartridgeFinished(int int_MidTank_Pressure_1000) { diff --git a/Software/Embedded_SW/Embedded/Modules/IFS/ifs.h b/Software/Embedded_SW/Embedded/Modules/IFS/ifs.h index 5304edd93..e89efdb13 100644 --- a/Software/Embedded_SW/Embedded/Modules/IFS/ifs.h +++ b/Software/Embedded_SW/Embedded/Modules/IFS/ifs.h @@ -55,6 +55,8 @@ void ResponseDemo(int MidtankId); bool IFS_MidTankFilling(void); MidTank_t IFS_MidTankIsActive(void); +bool IFS_CartridgeLowerPresent(); + bool CartridgeValidationResponseFunc(MessageContainer* requestContainer); uint32_t MidTankReading(void); diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c index 19392c754..2ad58ea0a 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c @@ -108,7 +108,7 @@ float numberOfSteps = 0; float numberOfCycles = 0; double DrierPrevLocation = 0; - FPGA_GPI_ENUM screw[2] = {GPI_LS_SCREW_LEFT,GPI_LS_SCREW_RIGHT}; + FPGA_GPI_ENUM screw[2] = {GPI_LS_SCREW_RIGHT,GPI_LS_SCREW_LEFT}; int Screw_Dir = false; bool InitCalled = false; uint32_t LoadArmRounds; @@ -326,10 +326,19 @@ MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_DH_LID,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DH_LID].directionthreadwize, 200, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DH_LID], Thread_Load_HomingCallback,10000); CallbackCounter++; //MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID].directionthreadwize, 200, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID], Thread_Load_HomingCallback,10000); - MotorGotoWithCallback(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID, 0, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID], Thread_Load_HomingCallback,10000); + int direction; + if (MotorDriverResponse[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID].DriverType == CombinrdMotDriver)//reverse direction for powerstep + { + direction = DRIER_LID_CLOSE; + } + else + { + direction = DRIER_LID_OPEN; + } + MotorGotoWithCallback(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID, direction, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID], Thread_Load_HomingCallback,10000); Report("Thread_Load_Lift_actuators",__FILE__,__LINE__,LOW,RpMessage,false,0); - Trigger_Head_Actuators_Control(ACTOT, LOW,false); - Trigger_Head_Actuators_Control(ACTIN, LOW,false); + Trigger_Head_Actuators_Control(ACTOT, LOW,true); + Trigger_Head_Actuators_Control(ACTIN, LOW,true); return OK; } uint32_t Thread_Load_Lift_Dancers(void) @@ -450,10 +459,19 @@ MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_DH_LID,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DH_LID].directionthreadwize, 200, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DH_LID], Thread_Load_HomingCallback,10000); CallbackCounter++; // MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID].directionthreadwize, 200, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID], Thread_Load_HomingCallback,10000); - MotorGotoWithCallback(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID, 2, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID], Thread_Load_HomingCallback,10000); + int direction; + if (MotorDriverResponse[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID].DriverType == CombinrdMotDriver)//reverse direction for powerstep + { + direction = DRIER_LID_OPEN; + } + else + { + direction = DRIER_LID_CLOSE; + } + MotorGotoWithCallback(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID, direction, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID], Thread_Load_HomingCallback,10000); Report("Thread_Load_Close_actuators",__FILE__,__LINE__,LOW,RpMessage,true,0); - Trigger_Head_Actuators_Control(ACTOT, LOW,true); - Trigger_Head_Actuators_Control(ACTIN, LOW,true); + Trigger_Head_Actuators_Control(ACTOT, LOW,false); + Trigger_Head_Actuators_Control(ACTIN, LOW,false); return OK; } uint32_t Thread_Load_Resume_Heating(void) @@ -575,7 +593,7 @@ } else { - MotorMovetoEncoderPosition(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM,Thread_Load_Dryer_MovetoEncoderPosition_Callback,10000); + MotorMovetoEncoderPosition(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM,Thread_Load_Dryer_MovetoEncoderPosition_Callback,30000); MCU_E2PromProgram(EEPROM_STORAGE_DRYER_CYCLES,numberOfCycles); Report("Store Number of cycles in drier",__FILE__,__LINE__,numberOfCycles,RpMessage,LoadArmRounds,0); } @@ -652,7 +670,8 @@ MotorControlConfig[FEEDER_MOTOR].m_SetParam = 0;//need to update SetParams on presegment stage MotorSetDirection(HARDWARE_MOTOR_TYPE__MOTO_RDRIVING,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RDRIVING].directionthreadwize); - MotorSetMaxSpeed (HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM, MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM].pulseperround/4*MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM].pulleyradius); + MotorSetMaxSpeed (HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM, MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM].pulseperround/6*MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM].pulleyradius); + //6 seconds per round LoadingControlId = AddControlCallback(NULL,ThreadLoadControlCBFunction, eOneMillisecond,Control_Read_Dancer_Position,(IfTypeThread*0x100+FEEDER_MOTOR),FEEDER_DANCER,FEEDER_MOTOR); Report("AddControlCallback feeder",__FILE__,__LINE__,LoadingControlId,RpMessage,IfTypeThread*0x100+FEEDER_MOTOR,0); @@ -670,7 +689,7 @@ CallbackCounter++; Report("Thread_Load_Dryer_Loading",__FILE__,__LINE__,LoadStages,RpMessage,CallbackCounter,0); MotorMoveWithCallback (HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM, MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM].directionthreadwize, - numberOfSteps-400, Thread_Load_Dryer_Loading_Callback, 10000); + numberOfSteps-800, Thread_Load_Dryer_Loading_Callback, 10000); return OK; } uint32_t Thread_Load_Jog_ThreadStop(uint32_t index, uint32_t ReadValue) @@ -767,11 +786,11 @@ if (numberOfCycles<LoadArmRounds) { MotorMoveWithCallback (HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM, 1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM].directionthreadwize, - numberOfSteps, Thread_Load_Dryer_UnLoading_Callback, 30000); + numberOfSteps, Thread_Load_Dryer_UnLoading_Callback, 10000); } else //done enough cycles, go to the center point { - MotorMovetoEncoderPosition(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM,Thread_Load_Set_Load_Arm_To_Stopper_Callback,10000); + MotorMovetoEncoderPosition(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM,Thread_Load_Set_Load_Arm_To_Stopper_Callback,30000); MCU_E2PromProgram(EEPROM_STORAGE_DRYER_CYCLES,LoadArmRounds-numberOfCycles); Report("Store Number of cycles in drier",__FILE__,__LINE__,numberOfCycles,RpMessage,LoadArmRounds,0); } @@ -890,15 +909,19 @@ else { MCU_E2PromRead(EEPROM_STORAGE_DRYER_CYCLES,&LoadArmRounds); + if (LoadArmRounds == 0) //prev trial stopped + { + LoadArmRounds = (int)dryerbufferlength; + } } MCU_E2PromRead(EEPROM_STORAGE_DRYER_CENTER,&temp); DrierPrevLocation = temp; Report("Thread_Load_Set_Load_Arm_To_Start_Position",__FILE__,UnloadingStart,DrierPrevLocation,RpMessage, LoadArmRounds,0); - MotorSetMaxSpeed (HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM, MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM].pulseperround/4*MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM].pulleyradius); + MotorSetMaxSpeed (HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM, MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM].pulseperround/6*MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM].pulleyradius); // status |= MotorMoveToStopper(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM, (1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM].directionthreadwize), // MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM].pulseperround/4, Thread_Load_Set_Load_Arm_To_Stopper_Callback,0,1000); MotorMoveWithCallback (HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM, 1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM].directionthreadwize, - numberOfSteps-400, Thread_Load_Dryer_UnLoading_Callback, 30000); + numberOfSteps-800, Thread_Load_Dryer_UnLoading_Callback, 10000); Screw_Dir = 1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_SCREW].directionthreadwize; @@ -1204,15 +1227,15 @@ bool ThreadLoaded(void) ReadValue = Control_Read_Dancer_Position(FEEDER_DANCER,0); FeederValue = ReadValue - DancersCfg[FEEDER_DANCER].zeropoint; - Report("Feeder out",__FILE__,FeederValue,ReadValue,RpWarning,(int)DancersCfg[FEEDER_DANCER].zeropoint,0); + Report("Feeder out",__FILE__,abs(FeederValue),ReadValue,RpWarning,(int)DancersCfg[FEEDER_DANCER].zeropoint,0); ReadValue = Control_Read_Dancer_Position(WINDER_DANCER,0); WinderValue = ReadValue - DancersCfg[WINDER_DANCER].zeropoint; - Report("Winder out",__FILE__,WinderValue,ReadValue,RpWarning,(int)DancersCfg[WINDER_DANCER].zeropoint,0); + Report("Winder out",__FILE__,abs(WinderValue),ReadValue,RpWarning,(int)DancersCfg[WINDER_DANCER].zeropoint,0); ReadValue = Control_Read_Dancer_Position(POOLER_DANCER,0); PoolerValue = ReadValue - DancersCfg[POOLER_DANCER].zeropoint; //pooler dancer is right sided: data is opposite PoolerValue = (-1*PoolerValue); - Report("Puller out",__FILE__,PoolerValue,ReadValue,RpWarning,(int)DancersCfg[POOLER_DANCER].zeropoint,0); + Report("Puller out",__FILE__,abs(PoolerValue),ReadValue,RpWarning,(int)DancersCfg[POOLER_DANCER].zeropoint,0); if (((PoolerValue)<(-1200))&&((WinderValue)<(-1200))&&((FeederValue)<(-1200))) { diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c index 41ef9e480..9ee2e1f37 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c @@ -149,9 +149,12 @@ uint32_t Winder_Prepare(void *JobDetails) if (FPGA_Read_limit_Switches(GPI_SW_SPOOL_EXISTS)==LIMIT) { REPORT_MSG(LIMIT, "No cone in winder"); - //PrepareReady(Module_Winder,ModuleFail); - //AlarmHandlingSetAlarm(EVENT_TYPE__WINDER_CONE_DOES_NOT_EXIST,true); - //return ERROR; + if (Is_PP_Machine()) + { + PrepareReady(Module_Winder,ModuleFail); + AlarmHandlingSetAlarm(EVENT_TYPE__WINDER_CONE_DOES_NOT_EXIST,true); + return ERROR; + } } #ifdef READ_SCREW_ENCODER diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c index f011e8a1f..906a0d458 100644 --- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c +++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c @@ -458,10 +458,10 @@ U8 CartridgeWasteFilling(bool status) } /* ------read waste tank sensors ----------- */ -#define WASTE_CARTRIDGE_SIZE 1.5 -#define WASTE_LEVEL_OVERFLOW 4.0 -#define WASTE_LEVEL_FULL 3.5 -#define WASTE_LEVEL_EMPTY 2.10 +#define WASTE_CARTRIDGE_SIZE 1500 +#define WASTE_LEVEL_OVERFLOW 4000 +#define WASTE_LEVEL_FULL 3500 +#define WASTE_LEVEL_EMPTY 2100 double WasteLevelOverflow = WASTE_LEVEL_OVERFLOW; double WasteLevelFull = WASTE_LEVEL_FULL; double WasteLevelEmpty = WASTE_LEVEL_EMPTY; @@ -493,7 +493,7 @@ bool RdWasteTankEmptySensor() bool RdWasteTankFullSensor() { double WasteLevel = 0.0; - bool ret = notOK; + bool ret = SENSORnotFULL; //WHS_Read_GPI_Registers(); //WHS_info.WHS_sensors.waste_tank_full_sensor = WHS_GPI_WCONTAINER_FULL(); //ret = WHS_info.WHS_sensors.waste_tank_full_sensor; @@ -504,8 +504,8 @@ bool RdWasteTankFullSensor() else //new WHS { WasteLevel = GetWHSWasteTankLevelMiliLiter(); - if (WasteLevel < WasteLevelFull) - ret = OK; + if (WasteLevel >= WasteLevelFull) + ret = SENSORFULL; } return ret; } diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c index 3511338e4..d8367316b 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c @@ -100,14 +100,29 @@ void StopInitSequence(void) uint32_t InitSequenceCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag) { MACHINE_STATE_STAGES_ENUM status; + int InitFailures = 0; if (SafeRemoveControlCallback(HWControlId, InitSequenceCallBackFunction )==OK) HWControlId = 0xFF; else Report("Remove control callback failed",__FILE__,__LINE__,(int)HWControlId,RpWarning,(int)InitSequenceCallBackFunction,0); + MCU_E2PromRead(EEPROM_INIT_FAILURE_COUNTER,&InitFailures); + if (InitFailures > 100) + { + InitFailures = 0; + MCU_E2PromProgram(EEPROM_INIT_FAILURE_COUNTER,0); + } + if (InitFailures > 3) + { + Report("HWConfigurationInit repeated failure",__FILE__,__LINE__,(int)InitFailures,RpWarning,(int)EEPROM_INIT_FAILURE_COUNTER,0); + SetMachineState(status); + AlarmHandlingSetAlarm (EVENT_TYPE__MACHINE_STATE_HW_CONFIG_FAILED,ON); + SetMachineStatus(MACHINE_STATE__Error); + return ERROR; + } status = (MACHINE_STATE_STAGES_ENUM)HWConfigurationInit(); if (status == OK) { - ActivateHeadMagnet(); + //ActivateHeadMagnet(); InitStages++; //InitSequenceStateMachine(InitStages); } @@ -158,6 +173,7 @@ void InitSequenceBuiltInTestCallBack(uint32_t IfIndex, uint32_t BusyFlag) InitStages++; //InitSequenceStateMachine(InitStages); AlarmHandlingSetAlarm(EVENT_TYPE__POWER_UP_BIT_FAILURE,false); + MCU_E2PromProgram(EEPROM_INIT_FAILURE_COUNTER,0); } else { @@ -227,6 +243,8 @@ uint32_t InitSequenceBlowerCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag) WHS_Set_SetPoint_Q_value(headairflow/2); AlarmHandlingSetAlarm (EVENT_TYPE__MACHINE_STATE_INITIAL_BLOWER_FAILED,OFF); //handle alarm detection and operation + waste_seq_step1();// include 1Sec delay <- to open !!!! + Safety_Init(); InitStages++; //InitSequenceStateMachine(InitStages); @@ -422,6 +440,13 @@ uint32_t InitSequenceInitialBlowerActivation(void) ReportWithPackageFilter(InitFilter,"store initial orifice 3 value", __FILE__,EEPROM_ORIFICE3_ZERO_VALUE,total3, RpMessage, ZeroValue, 0); WHS_MAX11614_Load_OrificeZeroValue(total1,total3); } + else + { + MCU_E2PromRead(EEPROM_ORIFICE1_ZERO_VALUE,&total1); + MCU_E2PromRead(EEPROM_ORIFICE3_ZERO_VALUE,&total3); + ReportWithPackageFilter(InitFilter,"load initial values from EEPROM", __FILE__,__LINE__,total3, RpMessage, total1, 0); + WHS_MAX11614_Load_OrificeZeroValue(total1,total3); + } } Voc_Sensor_Zero_Calibration(); |
