aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2020-03-30 00:57:04 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2020-03-30 00:57:04 +0300
commitdb8dcffe2f434d97d57ea1a104fa683bf2735835 (patch)
treebbf6fc1fe8d5f3d149bfc9ad6688099855984fbc /Software/Embedded_SW/Embedded
parent091a4bdeb2feadb4962c6be5deb367ab56d81707 (diff)
parentd1af5a24303a036cc2ede7e7c3c0c7b0036016e7 (diff)
downloadTango-db8dcffe2f434d97d57ea1a104fa683bf2735835.tar.gz
Tango-db8dcffe2f434d97d57ea1a104fa683bf2735835.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded')
-rw-r--r--Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c2
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Common/MessageType.pb-c.c250
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Common/MessageType.pb-c.h2
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Printing/HeadCleaningParameters.pb-c.c92
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Printing/HeadCleaningParameters.pb-c.h72
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Printing/JobTicket.pb-c.c19
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Printing/JobTicket.pb-c.h4
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Printing/ProcessParameters.pb-c.c19
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Printing/ProcessParameters.pb-c.h4
-rw-r--r--Software/Embedded_SW/Embedded/DataDef.h2
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA.c9
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c73
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Heater/Heater.c4
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c7
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.h2
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/EEPROM/Head_EEPROM.c2
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c8
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c6
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c25
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h2
-rw-r--r--Software/Embedded_SW/Embedded/Embedded.cfg1
-rw-r--r--Software/Embedded_SW/Embedded/Main.c8
-rw-r--r--Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c10
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c8
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c9
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.h2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c42
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/process.c6
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/process.h2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c17
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c46
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c24
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c6
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c62
-rw-r--r--Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c2
-rw-r--r--Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c4
40 files changed, 646 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 e2c5d2171..c110b0d82 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 = {1,4,6,18};
+TangoVersion_t _gTangoVersion = {1,4,6,19};
#define BUILD_DATE __DATE__
char Dat[50] = BUILD_DATE;
char _gTangoName [MAX_STRING_LEN] = "Tango01 ";//d
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Common/MessageType.pb-c.c b/Software/Embedded_SW/Embedded/Communication/PMR/Common/MessageType.pb-c.c
index 9bfdc7232..8fb38e4c6 100644
--- a/Software/Embedded_SW/Embedded/Communication/PMR/Common/MessageType.pb-c.c
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Common/MessageType.pb-c.c
@@ -7,7 +7,7 @@
#endif
#include "MessageType.pb-c.h"
-static const ProtobufCEnumValue message_type__enum_values_by_number[239] =
+static const ProtobufCEnumValue message_type__enum_values_by_number[241] =
{
{ "None", "MESSAGE_TYPE__None", 0 },
{ "ErrorResponse", "MESSAGE_TYPE__ErrorResponse", 1 },
@@ -130,6 +130,8 @@ static const ProtobufCEnumValue message_type__enum_values_by_number[239] =
{ "ColorProfileResponse", "MESSAGE_TYPE__ColorProfileResponse", 1014 },
{ "UpdateStatusRequest", "MESSAGE_TYPE__UpdateStatusRequest", 1015 },
{ "UpdateStatusResponse", "MESSAGE_TYPE__UpdateStatusResponse", 1016 },
+ { "GenericRequest", "MESSAGE_TYPE__GenericRequest", 1017 },
+ { "GenericResponse", "MESSAGE_TYPE__GenericResponse", 1018 },
{ "StartDiagnosticsRequest", "MESSAGE_TYPE__StartDiagnosticsRequest", 2000 },
{ "StartDiagnosticsResponse", "MESSAGE_TYPE__StartDiagnosticsResponse", 2001 },
{ "MotorAbortHomingRequest", "MESSAGE_TYPE__MotorAbortHomingRequest", 2002 },
@@ -250,137 +252,139 @@ static const ProtobufCEnumValue message_type__enum_values_by_number[239] =
{ "StopThreadLoadingResponse", "MESSAGE_TYPE__StopThreadLoadingResponse", 11005 },
};
static const ProtobufCIntRange message_type__value_ranges[] = {
-{0, 0},{3, 2},{1000, 104},{2000, 121},{3000, 167},{4000, 177},{5000, 185},{6000, 189},{7000, 195},{8000, 219},{9000, 225},{10000, 229},{11000, 233},{0, 239}
+{0, 0},{3, 2},{1000, 104},{2000, 123},{3000, 169},{4000, 179},{5000, 187},{6000, 191},{7000, 197},{8000, 221},{9000, 227},{10000, 231},{11000, 235},{0, 241}
};
-static const ProtobufCEnumValueIndex message_type__enum_values_by_name[239] =
+static const ProtobufCEnumValueIndex message_type__enum_values_by_name[241] =
{
- { "AbortJobRequest", 169 },
- { "AbortJobResponse", 170 },
- { "AbortPowerDownRequest", 231 },
- { "AbortPowerDownResponse", 232 },
- { "ActivateVersionRequest", 217 },
- { "ActivateVersionResponse", 218 },
+ { "AbortJobRequest", 171 },
+ { "AbortJobResponse", 172 },
+ { "AbortPowerDownRequest", 233 },
+ { "AbortPowerDownResponse", 234 },
+ { "ActivateVersionRequest", 219 },
+ { "ActivateVersionResponse", 220 },
{ "CalculateRequest", 2 },
{ "CalculateResponse", 3 },
- { "CartridgeValidationRequest", 165 },
- { "CartridgeValidationResponse", 166 },
+ { "CartridgeValidationRequest", 167 },
+ { "CartridgeValidationResponse", 168 },
{ "ColorProfileRequest", 117 },
{ "ColorProfileResponse", 118 },
- { "ConnectRequest", 191 },
- { "ConnectResponse", 192 },
- { "ContinueThreadLoadingRequest", 235 },
- { "ContinueThreadLoadingResponse", 236 },
- { "CreateRequest", 203 },
- { "CreateResponse", 204 },
- { "CurrentJobRequest", 173 },
- { "CurrentJobResponse", 174 },
- { "DeleteRequest", 205 },
- { "DeleteResponse", 206 },
+ { "ConnectRequest", 193 },
+ { "ConnectResponse", 194 },
+ { "ContinueThreadLoadingRequest", 237 },
+ { "ContinueThreadLoadingResponse", 238 },
+ { "CreateRequest", 205 },
+ { "CreateResponse", 206 },
+ { "CurrentJobRequest", 175 },
+ { "CurrentJobResponse", 176 },
+ { "DeleteRequest", 207 },
+ { "DeleteResponse", 208 },
{ "DirectSynchronizationRequest", 109 },
{ "DirectSynchronizationResponse", 110 },
- { "DisconnectRequest", 193 },
- { "DisconnectResponse", 194 },
- { "DispenserAbortHomingRequest", 131 },
- { "DispenserAbortHomingResponse", 132 },
- { "DispenserAbortJoggingRequest", 137 },
- { "DispenserAbortJoggingResponse", 138 },
- { "DispenserDataRequest", 219 },
- { "DispenserDataResponse", 220 },
- { "DispenserHomingRequest", 133 },
- { "DispenserHomingResponse", 134 },
- { "DispenserJoggingRequest", 135 },
- { "DispenserJoggingResponse", 136 },
+ { "DisconnectRequest", 195 },
+ { "DisconnectResponse", 196 },
+ { "DispenserAbortHomingRequest", 133 },
+ { "DispenserAbortHomingResponse", 134 },
+ { "DispenserAbortJoggingRequest", 139 },
+ { "DispenserAbortJoggingResponse", 140 },
+ { "DispenserDataRequest", 221 },
+ { "DispenserDataResponse", 222 },
+ { "DispenserHomingRequest", 135 },
+ { "DispenserHomingResponse", 136 },
+ { "DispenserJoggingRequest", 137 },
+ { "DispenserJoggingResponse", 138 },
{ "ErrorResponse", 1 },
- { "ExecuteProcessRequest", 199 },
- { "ExecuteProcessResponse", 200 },
+ { "ExecuteProcessRequest", 201 },
+ { "ExecuteProcessResponse", 202 },
{ "ExternalBridgeLoginRequest", 105 },
{ "ExternalBridgeLoginResponse", 106 },
{ "ExternalBridgeLogoutRequest", 107 },
{ "ExternalBridgeLogoutResponse", 108 },
{ "ExternalBridgeUdpDiscoveryPacket", 104 },
- { "FileChunkDownloadRequest", 213 },
- { "FileChunkDownloadResponse", 214 },
- { "FileChunkUploadRequest", 197 },
- { "FileChunkUploadResponse", 198 },
- { "FileDownloadRequest", 211 },
- { "FileDownloadResponse", 212 },
- { "FileUploadRequest", 195 },
- { "FileUploadResponse", 196 },
- { "GetFilesRequest", 209 },
- { "GetFilesResponse", 210 },
- { "GetStorageInfoRequest", 207 },
- { "GetStorageInfoResponse", 208 },
- { "JobRequest", 167 },
- { "JobResponse", 168 },
- { "KeepAliveRequest", 189 },
- { "KeepAliveResponse", 190 },
- { "KillProcessRequest", 201 },
- { "KillProcessResponse", 202 },
- { "MachineCalibrationDataRequest", 223 },
- { "MachineCalibrationDataResponse", 224 },
- { "MidTankDataSetupRequest", 221 },
- { "MidTankDataSetupResponse", 222 },
- { "MotorAbortHomingRequest", 123 },
- { "MotorAbortHomingResponse", 124 },
- { "MotorAbortJoggingRequest", 129 },
- { "MotorAbortJoggingResponse", 130 },
- { "MotorHomingRequest", 125 },
- { "MotorHomingResponse", 126 },
- { "MotorJoggingRequest", 127 },
- { "MotorJoggingResponse", 128 },
+ { "FileChunkDownloadRequest", 215 },
+ { "FileChunkDownloadResponse", 216 },
+ { "FileChunkUploadRequest", 199 },
+ { "FileChunkUploadResponse", 200 },
+ { "FileDownloadRequest", 213 },
+ { "FileDownloadResponse", 214 },
+ { "FileUploadRequest", 197 },
+ { "FileUploadResponse", 198 },
+ { "GenericRequest", 121 },
+ { "GenericResponse", 122 },
+ { "GetFilesRequest", 211 },
+ { "GetFilesResponse", 212 },
+ { "GetStorageInfoRequest", 209 },
+ { "GetStorageInfoResponse", 210 },
+ { "JobRequest", 169 },
+ { "JobResponse", 170 },
+ { "KeepAliveRequest", 191 },
+ { "KeepAliveResponse", 192 },
+ { "KillProcessRequest", 203 },
+ { "KillProcessResponse", 204 },
+ { "MachineCalibrationDataRequest", 225 },
+ { "MachineCalibrationDataResponse", 226 },
+ { "MidTankDataSetupRequest", 223 },
+ { "MidTankDataSetupResponse", 224 },
+ { "MotorAbortHomingRequest", 125 },
+ { "MotorAbortHomingResponse", 126 },
+ { "MotorAbortJoggingRequest", 131 },
+ { "MotorAbortJoggingResponse", 132 },
+ { "MotorHomingRequest", 127 },
+ { "MotorHomingResponse", 128 },
+ { "MotorJoggingRequest", 129 },
+ { "MotorJoggingResponse", 130 },
{ "None", 0 },
{ "OverrideDataBaseRequest", 111 },
{ "OverrideDataBaseResponse", 112 },
{ "ProgressRequest", 4 },
{ "ProgressResponse", 5 },
- { "ResolveEventRequest", 147 },
- { "ResolveEventResponse", 148 },
- { "ResumeCurrentJobRequest", 175 },
- { "ResumeCurrentJobResponse", 176 },
- { "SetBlowerStateRequest", 157 },
- { "SetBlowerStateResponse", 158 },
- { "SetComponentValueRequest", 145 },
- { "SetComponentValueResponse", 146 },
- { "SetDebugLogCategoryRequest", 181 },
- { "SetDebugLogCategoryResponse", 182 },
- { "SetDigitalOutRequest", 139 },
- { "SetDigitalOutResponse", 140 },
- { "SetHeaterStateRequest", 155 },
- { "SetHeaterStateResponse", 156 },
- { "SetValveStateRequest", 159 },
- { "SetValveStateResponse", 160 },
- { "SetupDebugDisributorsRequest", 183 },
- { "SetupDebugDisributorsResponse", 184 },
+ { "ResolveEventRequest", 149 },
+ { "ResolveEventResponse", 150 },
+ { "ResumeCurrentJobRequest", 177 },
+ { "ResumeCurrentJobResponse", 178 },
+ { "SetBlowerStateRequest", 159 },
+ { "SetBlowerStateResponse", 160 },
+ { "SetComponentValueRequest", 147 },
+ { "SetComponentValueResponse", 148 },
+ { "SetDebugLogCategoryRequest", 183 },
+ { "SetDebugLogCategoryResponse", 184 },
+ { "SetDigitalOutRequest", 141 },
+ { "SetDigitalOutResponse", 142 },
+ { "SetHeaterStateRequest", 157 },
+ { "SetHeaterStateResponse", 158 },
+ { "SetValveStateRequest", 161 },
+ { "SetValveStateResponse", 162 },
+ { "SetupDebugDisributorsRequest", 185 },
+ { "SetupDebugDisributorsResponse", 186 },
{ "StartApplicationLogsRequest", 113 },
{ "StartApplicationLogsResponse", 114 },
- { "StartCartridgesUpdateRequest", 161 },
- { "StartCartridgesUpdateResponse", 162 },
- { "StartDebugLogRequest", 177 },
- { "StartDebugLogResponse", 178 },
- { "StartDiagnosticsRequest", 121 },
- { "StartDiagnosticsResponse", 122 },
- { "StartEventsNotificationRequest", 151 },
- { "StartEventsNotificationResponse", 152 },
- { "StartMachineStatusUpdateRequest", 225 },
- { "StartMachineStatusUpdateResponse", 226 },
- { "StartPowerDownRequest", 229 },
- { "StartPowerDownResponse", 230 },
- { "StartThreadLoadingRequest", 233 },
- { "StartThreadLoadingResponse", 234 },
+ { "StartCartridgesUpdateRequest", 163 },
+ { "StartCartridgesUpdateResponse", 164 },
+ { "StartDebugLogRequest", 179 },
+ { "StartDebugLogResponse", 180 },
+ { "StartDiagnosticsRequest", 123 },
+ { "StartDiagnosticsResponse", 124 },
+ { "StartEventsNotificationRequest", 153 },
+ { "StartEventsNotificationResponse", 154 },
+ { "StartMachineStatusUpdateRequest", 227 },
+ { "StartMachineStatusUpdateResponse", 228 },
+ { "StartPowerDownRequest", 231 },
+ { "StartPowerDownResponse", 232 },
+ { "StartThreadLoadingRequest", 235 },
+ { "StartThreadLoadingResponse", 236 },
{ "StopApplicationLogsRequest", 115 },
{ "StopApplicationLogsResponse", 116 },
- { "StopCartridgesUpdateRequest", 163 },
- { "StopCartridgesUpdateResponse", 164 },
- { "StopDebugLogRequest", 179 },
- { "StopDebugLogResponse", 180 },
- { "StopDiagnosticsRequest", 149 },
- { "StopDiagnosticsResponse", 150 },
- { "StopEventsNotificationRequest", 153 },
- { "StopEventsNotificationResponse", 154 },
- { "StopMachineStatusUpdateRequest", 227 },
- { "StopMachineStatusUpdateResponse", 228 },
- { "StopThreadLoadingRequest", 237 },
- { "StopThreadLoadingResponse", 238 },
+ { "StopCartridgesUpdateRequest", 165 },
+ { "StopCartridgesUpdateResponse", 166 },
+ { "StopDebugLogRequest", 181 },
+ { "StopDebugLogResponse", 182 },
+ { "StopDiagnosticsRequest", 151 },
+ { "StopDiagnosticsResponse", 152 },
+ { "StopEventsNotificationRequest", 155 },
+ { "StopEventsNotificationResponse", 156 },
+ { "StopMachineStatusUpdateRequest", 229 },
+ { "StopMachineStatusUpdateResponse", 230 },
+ { "StopThreadLoadingRequest", 239 },
+ { "StopThreadLoadingResponse", 240 },
{ "StubAbortJobRequest", 100 },
{ "StubAbortJobResponse", 101 },
{ "StubCartridgeReadRequest", 6 },
@@ -479,20 +483,20 @@ static const ProtobufCEnumValueIndex message_type__enum_values_by_name[239] =
{ "StubTivaWriteRegResponse", 79 },
{ "StubValveRequest", 30 },
{ "StubValveResponse", 31 },
- { "SystemResetRequest", 187 },
- { "SystemResetResponse", 188 },
- { "ThreadAbortJoggingRequest", 143 },
- { "ThreadAbortJoggingResponse", 144 },
- { "ThreadJoggingRequest", 141 },
- { "ThreadJoggingResponse", 142 },
+ { "SystemResetRequest", 189 },
+ { "SystemResetResponse", 190 },
+ { "ThreadAbortJoggingRequest", 145 },
+ { "ThreadAbortJoggingResponse", 146 },
+ { "ThreadJoggingRequest", 143 },
+ { "ThreadJoggingResponse", 144 },
{ "UpdateStatusRequest", 119 },
{ "UpdateStatusResponse", 120 },
- { "UploadHardwareConfigurationRequest", 185 },
- { "UploadHardwareConfigurationResponse", 186 },
- { "UploadProcessParametersRequest", 171 },
- { "UploadProcessParametersResponse", 172 },
- { "ValidateVersionRequest", 215 },
- { "ValidateVersionResponse", 216 },
+ { "UploadHardwareConfigurationRequest", 187 },
+ { "UploadHardwareConfigurationResponse", 188 },
+ { "UploadProcessParametersRequest", 173 },
+ { "UploadProcessParametersResponse", 174 },
+ { "ValidateVersionRequest", 217 },
+ { "ValidateVersionResponse", 218 },
};
const ProtobufCEnumDescriptor message_type__descriptor =
{
@@ -501,9 +505,9 @@ const ProtobufCEnumDescriptor message_type__descriptor =
"MessageType",
"MessageType",
"",
- 239,
+ 241,
message_type__enum_values_by_number,
- 239,
+ 241,
message_type__enum_values_by_name,
13,
message_type__value_ranges,
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Common/MessageType.pb-c.h b/Software/Embedded_SW/Embedded/Communication/PMR/Common/MessageType.pb-c.h
index 3c6bbc146..61b17ebef 100644
--- a/Software/Embedded_SW/Embedded/Communication/PMR/Common/MessageType.pb-c.h
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Common/MessageType.pb-c.h
@@ -141,6 +141,8 @@ typedef enum _MessageType {
MESSAGE_TYPE__ColorProfileResponse = 1014,
MESSAGE_TYPE__UpdateStatusRequest = 1015,
MESSAGE_TYPE__UpdateStatusResponse = 1016,
+ MESSAGE_TYPE__GenericRequest = 1017,
+ MESSAGE_TYPE__GenericResponse = 1018,
MESSAGE_TYPE__StartDiagnosticsRequest = 2000,
MESSAGE_TYPE__StartDiagnosticsResponse = 2001,
MESSAGE_TYPE__MotorAbortHomingRequest = 2002,
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Printing/HeadCleaningParameters.pb-c.c b/Software/Embedded_SW/Embedded/Communication/PMR/Printing/HeadCleaningParameters.pb-c.c
new file mode 100644
index 000000000..309c15784
--- /dev/null
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Printing/HeadCleaningParameters.pb-c.c
@@ -0,0 +1,92 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: HeadCleaningParameters.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "HeadCleaningParameters.pb-c.h"
+void head_cleaning_parameters__init
+ (HeadCleaningParameters *message)
+{
+ static const HeadCleaningParameters init_value = HEAD_CLEANING_PARAMETERS__INIT;
+ *message = init_value;
+}
+size_t head_cleaning_parameters__get_packed_size
+ (const HeadCleaningParameters *message)
+{
+ assert(message->base.descriptor == &head_cleaning_parameters__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t head_cleaning_parameters__pack
+ (const HeadCleaningParameters *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &head_cleaning_parameters__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t head_cleaning_parameters__pack_to_buffer
+ (const HeadCleaningParameters *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &head_cleaning_parameters__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+HeadCleaningParameters *
+ head_cleaning_parameters__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (HeadCleaningParameters *)
+ protobuf_c_message_unpack (&head_cleaning_parameters__descriptor,
+ allocator, len, data);
+}
+void head_cleaning_parameters__free_unpacked
+ (HeadCleaningParameters *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &head_cleaning_parameters__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor head_cleaning_parameters__field_descriptors[1] =
+{
+ {
+ "CleanerFlow",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_DOUBLE,
+ offsetof(HeadCleaningParameters, has_cleanerflow),
+ offsetof(HeadCleaningParameters, cleanerflow),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned head_cleaning_parameters__field_indices_by_name[] = {
+ 0, /* field[0] = CleanerFlow */
+};
+static const ProtobufCIntRange head_cleaning_parameters__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 1 }
+};
+const ProtobufCMessageDescriptor head_cleaning_parameters__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "HeadCleaningParameters",
+ "HeadCleaningParameters",
+ "HeadCleaningParameters",
+ "",
+ sizeof(HeadCleaningParameters),
+ 1,
+ head_cleaning_parameters__field_descriptors,
+ head_cleaning_parameters__field_indices_by_name,
+ 1, head_cleaning_parameters__number_ranges,
+ (ProtobufCMessageInit) head_cleaning_parameters__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Printing/HeadCleaningParameters.pb-c.h b/Software/Embedded_SW/Embedded/Communication/PMR/Printing/HeadCleaningParameters.pb-c.h
new file mode 100644
index 000000000..9213143bb
--- /dev/null
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Printing/HeadCleaningParameters.pb-c.h
@@ -0,0 +1,72 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: HeadCleaningParameters.proto */
+
+#ifndef PROTOBUF_C_HeadCleaningParameters_2eproto__INCLUDED
+#define PROTOBUF_C_HeadCleaningParameters_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
+
+
+typedef struct _HeadCleaningParameters HeadCleaningParameters;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _HeadCleaningParameters
+{
+ ProtobufCMessage base;
+ protobuf_c_boolean has_cleanerflow;
+ double cleanerflow;
+};
+#define HEAD_CLEANING_PARAMETERS__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&head_cleaning_parameters__descriptor) \
+ , 0, 0 }
+
+
+/* HeadCleaningParameters methods */
+void head_cleaning_parameters__init
+ (HeadCleaningParameters *message);
+size_t head_cleaning_parameters__get_packed_size
+ (const HeadCleaningParameters *message);
+size_t head_cleaning_parameters__pack
+ (const HeadCleaningParameters *message,
+ uint8_t *out);
+size_t head_cleaning_parameters__pack_to_buffer
+ (const HeadCleaningParameters *message,
+ ProtobufCBuffer *buffer);
+HeadCleaningParameters *
+ head_cleaning_parameters__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void head_cleaning_parameters__free_unpacked
+ (HeadCleaningParameters *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*HeadCleaningParameters_Closure)
+ (const HeadCleaningParameters *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor head_cleaning_parameters__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_HeadCleaningParameters_2eproto__INCLUDED */
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Printing/JobTicket.pb-c.c b/Software/Embedded_SW/Embedded/Communication/PMR/Printing/JobTicket.pb-c.c
index 68f833aa7..fcbe3be6a 100644
--- a/Software/Embedded_SW/Embedded/Communication/PMR/Printing/JobTicket.pb-c.c
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Printing/JobTicket.pb-c.c
@@ -52,7 +52,7 @@ void job_ticket__free_unpacked
assert(message->base.descriptor == &job_ticket__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
-static const ProtobufCFieldDescriptor job_ticket__field_descriptors[15] =
+static const ProtobufCFieldDescriptor job_ticket__field_descriptors[16] =
{
{
"Guid",
@@ -234,11 +234,24 @@ static const ProtobufCFieldDescriptor job_ticket__field_descriptors[15] =
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
+ {
+ "HeadCleaningParameters",
+ 16,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_MESSAGE,
+ 0, /* quantifier_offset */
+ offsetof(JobTicket, headcleaningparameters),
+ &head_cleaning_parameters__descriptor,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
};
static const unsigned job_ticket__field_indices_by_name[] = {
2, /* field[2] = EnableInterSegment */
11, /* field[11] = EnableLubrication */
0, /* field[0] = Guid */
+ 15, /* field[15] = HeadCleaningParameters */
3, /* field[3] = InterSegmentLength */
10, /* field[10] = JobDescriptionFile */
4, /* field[4] = Length */
@@ -255,7 +268,7 @@ static const unsigned job_ticket__field_indices_by_name[] = {
static const ProtobufCIntRange job_ticket__number_ranges[1 + 1] =
{
{ 1, 0 },
- { 0, 15 }
+ { 0, 16 }
};
const ProtobufCMessageDescriptor job_ticket__descriptor =
{
@@ -265,7 +278,7 @@ const ProtobufCMessageDescriptor job_ticket__descriptor =
"JobTicket",
"",
sizeof(JobTicket),
- 15,
+ 16,
job_ticket__field_descriptors,
job_ticket__field_indices_by_name,
1, job_ticket__number_ranges,
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Printing/JobTicket.pb-c.h b/Software/Embedded_SW/Embedded/Communication/PMR/Printing/JobTicket.pb-c.h
index 79bacd63f..d47a85867 100644
--- a/Software/Embedded_SW/Embedded/Communication/PMR/Printing/JobTicket.pb-c.h
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Printing/JobTicket.pb-c.h
@@ -20,6 +20,7 @@ PROTOBUF_C__BEGIN_DECLS
#include "JobSpool.pb-c.h"
#include "JobUploadStrategy.pb-c.h"
#include "ThreadParameters.pb-c.h"
+#include "HeadCleaningParameters.pb-c.h"
typedef struct _JobTicket JobTicket;
@@ -56,10 +57,11 @@ struct _JobTicket
protobuf_c_boolean has_samplewinding;
protobuf_c_boolean samplewinding;
ThreadParameters *threadparameters;
+ HeadCleaningParameters *headcleaningparameters;
};
#define JOB_TICKET__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&job_ticket__descriptor) \
- , NULL, NULL, 0, 0, 0, 0, 0, 0, NULL, 0, JOB_WINDING_METHOD__Embroidery, NULL, 0,NULL, 0, JOB_UPLOAD_STRATEGY__Default, NULL, 0, 0, 0, 0, 0, 0, NULL }
+ , NULL, NULL, 0, 0, 0, 0, 0, 0, NULL, 0, JOB_WINDING_METHOD__Embroidery, NULL, 0,NULL, 0, JOB_UPLOAD_STRATEGY__Default, NULL, 0, 0, 0, 0, 0, 0, NULL, NULL }
/* JobTicket methods */
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Printing/ProcessParameters.pb-c.c b/Software/Embedded_SW/Embedded/Communication/PMR/Printing/ProcessParameters.pb-c.c
index 8636a3b14..cddda38e1 100644
--- a/Software/Embedded_SW/Embedded/Communication/PMR/Printing/ProcessParameters.pb-c.c
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Printing/ProcessParameters.pb-c.c
@@ -52,7 +52,7 @@ void process_parameters__free_unpacked
assert(message->base.descriptor == &process_parameters__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
-static const ProtobufCFieldDescriptor process_parameters__field_descriptors[30] =
+static const ProtobufCFieldDescriptor process_parameters__field_descriptors[31] =
{
{
"DyeingSpeed",
@@ -414,6 +414,18 @@ static const ProtobufCFieldDescriptor process_parameters__field_descriptors[30]
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
+ {
+ "PressureBuildUp",
+ 31,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_DOUBLE,
+ offsetof(ProcessParameters, has_pressurebuildup),
+ offsetof(ProcessParameters, pressurebuildup),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
};
static const unsigned process_parameters__field_indices_by_name[] = {
13, /* field[13] = DryerAirFlow */
@@ -441,6 +453,7 @@ static const unsigned process_parameters__field_indices_by_name[] = {
2, /* field[2] = MaxInkUptake */
1, /* field[1] = MinInkUptake */
6, /* field[6] = MixerTemp */
+ 30, /* field[30] = PressureBuildUp */
4, /* field[4] = PullerTension */
26, /* field[26] = RBlowerFlow */
27, /* field[27] = RBlowerTemp */
@@ -450,7 +463,7 @@ static const unsigned process_parameters__field_indices_by_name[] = {
static const ProtobufCIntRange process_parameters__number_ranges[1 + 1] =
{
{ 1, 0 },
- { 0, 30 }
+ { 0, 31 }
};
const ProtobufCMessageDescriptor process_parameters__descriptor =
{
@@ -460,7 +473,7 @@ const ProtobufCMessageDescriptor process_parameters__descriptor =
"ProcessParameters",
"",
sizeof(ProcessParameters),
- 30,
+ 31,
process_parameters__field_descriptors,
process_parameters__field_indices_by_name,
1, process_parameters__number_ranges,
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Printing/ProcessParameters.pb-c.h b/Software/Embedded_SW/Embedded/Communication/PMR/Printing/ProcessParameters.pb-c.h
index e68f393c7..9a6453221 100644
--- a/Software/Embedded_SW/Embedded/Communication/PMR/Printing/ProcessParameters.pb-c.h
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Printing/ProcessParameters.pb-c.h
@@ -86,10 +86,12 @@ struct _ProcessParameters
double lblowerflow;
protobuf_c_boolean has_lblowertemp;
double lblowertemp;
+ protobuf_c_boolean has_pressurebuildup;
+ double pressurebuildup;
};
#define PROCESS_PARAMETERS__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&process_parameters__descriptor) \
- , 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 }
/* ProcessParameters methods */
diff --git a/Software/Embedded_SW/Embedded/DataDef.h b/Software/Embedded_SW/Embedded/DataDef.h
index 06cec2e1e..0e25f8880 100644
--- a/Software/Embedded_SW/Embedded/DataDef.h
+++ b/Software/Embedded_SW/Embedded/DataDef.h
@@ -387,6 +387,8 @@ typedef enum
extern uint8_t WHS_Type;
+bool Is_PP_Machine(void);
+
typedef enum
{
DISP_TYPE_UNKNOWN,
diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA.c b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA.c
index e2e71c4cc..21056e162 100644
--- a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA.c
+++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA.c
@@ -370,11 +370,11 @@ void Control_Dryer_Fan_PWM(uint8_t PWM_Command_Precent)// 0 - 100%
if(PWM_Command_Precent > 100)
PWM_Command_Precent = 100;
-
+#ifndef EVALUATION_BOARD
GPO_BLOWER_PWM_FREQ = Freq;
GPO_BLOWER_PWM_LOW = PWM_Command_Precent + 1;
GPO_BLOWER_PWM_HIGH = 101 - PWM_Command_Precent;
-
+#endif
// low + high = 0xFF in order use the same freq (and change the freq only by Add 0x112).
// there is option to change only the high (low + freq constasnt) this will chnga the freq
}
@@ -424,7 +424,8 @@ void Set_Speed_Sensor_TypeII_Registers(uint32_t Counter, uint32_t Prescaler)
uint32_t Read_Speed_Sensor_TypeII()//must be delay between Set_Speed_Sensor_TypeII_Registers to Read_Speed_Sensor_TypeII
{
- uint32_t Speed_Hz, temp, temp1;
+ uint32_t Speed_Hz = 0, temp, temp1;
+#ifndef EVALUATION_BOARD
temp = F1_Tacho_reg9;
temp1 = FPGA_Freq;
@@ -432,7 +433,7 @@ uint32_t Read_Speed_Sensor_TypeII()//must be delay between Set_Speed_Sensor_Type
temp1/=temp;
temp1/=F1_Prescaler1_reg6;
Speed_Hz = temp1;
-
+#endif
#warning change the speed from Hz to Cm/Sec
return Speed_Hz;
diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c
index 00b48d3d8..f8f0fb4c6 100644
--- a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c
+++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c
@@ -124,6 +124,7 @@ LS_DRYER_DH Ls_Dryer_Dh;
void FPGA_Read_LS_Safty_Ind_Reg()
{
// uint8_t temp[8] = {0,0,0,0,0,0,0,0},i;
+#ifndef EVALUATION_BOARD
LS_Left.ushort = F1_GPI_LS2_D;
Ls_Right_Screw_Spool.ushort = F1_GPI_LS3_D;
@@ -154,6 +155,7 @@ void FPGA_Read_LS_Safty_Ind_Reg()
Dispenser_struct[i].Status = LS_STATUS_OK;
}
*/
+#endif
}
bool Check_Disp_Safety_Stop_Indication(uint8_t Dispenser_ID)//0..7
@@ -162,6 +164,7 @@ bool Check_Disp_Safety_Stop_Indication(uint8_t Dispenser_ID)//0..7
assert(Dispenser_ID < MAX_DISPENSER_NUM);
+#ifndef EVALUATION_BOARD
switch(Dispenser_ID)
{
case 0:
@@ -191,6 +194,7 @@ bool Check_Disp_Safety_Stop_Indication(uint8_t Dispenser_ID)//0..7
default:
break;
}
+#endif
return Safety_Indication;
}
@@ -505,15 +509,19 @@ MOT_SW1 F1_Mot_Dr_SW1;
uint32_t ActivateCoolerPump() //WHS - Pump the waste accumulated in cooler to the waste tank
{
+#ifndef EVALUATION_BOARD
F1_Mot_Dr_SW1.bits.GPO_DH_MAGNET = ON; //TBD verify polarity
F1_Moto_Driver_SW1 = F1_Mot_Dr_SW1.ushort;
+#endif
return OK;
}
uint32_t DeActivateCoolerPump() //WHS - Pump the waste accumulated in cooler to the waste tank
{
+#ifndef EVALUATION_BOARD
F1_Mot_Dr_SW1.bits.GPO_DH_MAGNET = OFF; //TBD verify polarity
F1_Moto_Driver_SW1 = F1_Mot_Dr_SW1.ushort;
+#endif
return OK;
}
uint32_t MagnetControlId = 0xFF;
@@ -544,8 +552,10 @@ uint32_t ActivateHeadMagnet()
Trigger_Head_Magnet(CLOSE_MAGNET);
else
{
+#ifndef EVALUATION_BOARD
F2_CTRL_Reg.ushort &= ~SPARE_SSR13_CTRL;
F2_CTRL = F2_CTRL_Reg.ushort;
+#endif
}
if (isMotorConfigured(HARDWARE_MOTOR_TYPE__MOTO_RLOADARM))
{
@@ -575,8 +585,10 @@ uint32_t DeActivateHeadMagnet()
}
else
{
+#ifndef EVALUATION_BOARD
F2_CTRL_Reg.ushort |= SPARE_SSR13_CTRL;
F2_CTRL = F2_CTRL_Reg.ushort;
+#endif
}
Report("DeActivateHeadMagnet - open the lid magnet",__FILE__,__LINE__,(int)HARDWARE_MOTOR_TYPE__MOTO_RLOADARM,RpWarning,(int)DH_LID_CLOSE,0);
if (isMotorConfigured(HARDWARE_MOTOR_TYPE__MOTO_RLOADARM))
@@ -594,7 +606,11 @@ uint32_t DeActivateHeadMagnet()
uint32_t ReadHeadMagnetBit()
{
+#ifndef EVALUATION_BOARD
return (F2_CTRL & BIT0);//SSR13 is not in the WD therefore it it possible to read the bit
+#else
+ return 0;
+#endif
}
uint32_t DeActivateAllSSR()
@@ -729,39 +745,66 @@ F3_GPI_01 F3_GPI_01_Reg;
void WHS_Read_GPI_Registers()
{
+#ifndef EVALUATION_BOARD
F2_GPI_Reg.ushort = F2_GPI_REGISTER1_Direct;
F3_GPI_01_Reg.ushort = F3_GPI_01_D;
+#endif
}
bool WHS_GPI_CHILLER_FAULT()
{
+#ifndef EVALUATION_BOARD
return F2_GPI_Reg.bits.F2_GPI_CHILLER_FAULT;
+#else
+ return false;
+#endif
+
}
bool WHS_GPI_WASTE_OVERFULL()//waste tank overflow
{
//#warning NA need to check the DISP_SAFETY_STOP_IND of all the connected dispensers done
+#ifndef EVALUATION_BOARD
return F2_GPI_Reg.bits.F2_WASTE_OVERFULL_NO;
+#else
+ return false;
+#endif
}
bool WHS_GPI_SW_FILTER_PRES()
{
+#ifndef EVALUATION_BOARD
return F3_GPI_01_Reg.bits.F3_GPI_SW_FILTER_PRES;
+#else
+ return false;
+#endif
}
bool WHS_GPI_WCONTAINER_FULL()//waste tank full
{
+#ifndef EVALUATION_BOARD
return F3_GPI_01_Reg.bits.F3_GPI_WCONTAINER_FULL;
+#else
+ return false;
+#endif
}
bool WHS_GPI_WCONTAINER_WARN()//waste tank empty
{
+#ifndef EVALUATION_BOARD
return F3_GPI_01_Reg.bits.F3_GPI_WCONTAINER_WARN;
+#else
+ return false;
+#endif
}
bool WHS_GPI_WASTE_FLOW_SWITCH()// DRyer air
{
+#ifndef EVALUATION_BOARD
return F2_GPI_Reg.bits.F2_WASTE_FLOW_SW_NO;
+#else
+ return false;
+#endif
}
uint8_t GPO_Waste_Pressure_Software_Stop(uint8_t TrueToStop)
@@ -769,6 +812,7 @@ uint8_t GPO_Waste_Pressure_Software_Stop(uint8_t TrueToStop)
//GPO_SPARE1_1 (New BP: DISP_SAFETY_STOP_INPUT) Connected to WASTE_PRESS_SW and Stop from MCU
uint8_t Status = OK;
+#ifndef EVALUATION_BOARD
switch(TrueToStop)
{
case true:
@@ -781,6 +825,7 @@ uint8_t GPO_Waste_Pressure_Software_Stop(uint8_t TrueToStop)
Status = ERROR;
break;
}
+#endif
return Status;
}
@@ -789,6 +834,7 @@ bool Get_COVER_1_State(COVERS_ENUM CoverId)
{
assert (CoverId<Max_Doors);
+#ifndef EVALUATION_BOARD
switch (CoverId)
{
case FrontDoor1_EC:
@@ -815,6 +861,7 @@ bool Get_COVER_1_State(COVERS_ENUM CoverId)
default:
return false;
}
+#endif
}
extern F1_GPO_REG F1_GPO_Reg; // must be global to keep all other bits
@@ -840,14 +887,18 @@ void Pumps_Control(PUMPS_ENUM Pump_Id, bool Direction) //1 - OPEN, 0 - CLOSE ??
LOG_ERROR(WHS_Type,"Pump activated on new whs");
break;
case WHS_WTANKPUMP2:
+#ifndef EVALUATION_BOARD
F1_GPO_Reg.bits.F1_GPO_WHS_WTANKPUMP2 = Direction;
- break;
+#endif
+ break;
default:
break;
}
+#ifndef EVALUATION_BOARD
F1_gpo_01 = F1_GPO_Reg.ushort;
+#endif
}
uint32_t SecondaryPumpControlId;
@@ -892,6 +943,7 @@ uint8_t Buzzer(OPERATION_MODE Buzzer_Mode)
{
uint8_t Status = OK;
+#ifndef EVALUATION_BOARD
switch(Buzzer_Mode)
{
case MODE_ON:
@@ -908,7 +960,7 @@ uint8_t Buzzer(OPERATION_MODE Buzzer_Mode)
}
F3_GPO_01_bus = F3_GPO_01_Reg.ushort;
-
+#endif
return Status;
}
@@ -917,15 +969,19 @@ F3_GPI_02 F3_GPI_02_Reg;
void Read_Buttons_Reg()
{
+#ifndef EVALUATION_BOARD
F3_GPI_02_Reg.ushort = F3_GPI_02_Direct;
+#endif
}
bool Get_Thread_Jogging_Button()
{
bool IsThreadJoggingPressed = false;
+#ifndef EVALUATION_BOARD
if(F3_GPI_02_Reg.bits.Thread_Jogging_Switch == false)
IsThreadJoggingPressed = true;
+#endif
return IsThreadJoggingPressed;
}
@@ -934,8 +990,10 @@ bool Get_Thread_Load_Button()
{
bool IsThreadLoadPressed = false;
+#ifndef EVALUATION_BOARD
if(F3_GPI_02_Reg.bits.Thread_Load_Switch == false)
IsThreadLoadPressed = true;
+#endif
return IsThreadLoadPressed;
}
@@ -999,6 +1057,7 @@ uint8_t Pannel_Leds(PANEL_BUTTON_OR_CRAT_ID Pannel_Led_Id, OPERATION_MODE LED_Mo
if(Flag == true)
{
+#ifndef EVALUATION_BOARD
switch(Pannel_Led_Id)
{
case POWER_ON_OFF:
@@ -1030,6 +1089,7 @@ uint8_t Pannel_Leds(PANEL_BUTTON_OR_CRAT_ID Pannel_Led_Id, OPERATION_MODE LED_Mo
Status = ERROR;
break;
}
+#endif
}
return Status;
}
@@ -1037,6 +1097,7 @@ uint8_t Pannel_Leds(PANEL_BUTTON_OR_CRAT_ID Pannel_Led_Id, OPERATION_MODE LED_Mo
uint8_t Init_Machine_Leds()
{
uint8_t Status = OK;
+#ifndef EVALUATION_BOARD
F3_Prescaler1_reg5 = 0x03; // PWM LED Prescaler default in FPGA just to verify
@@ -1048,7 +1109,7 @@ uint8_t Init_Machine_Leds()
Status |= Pannel_Leds(CART_1,MODE_OFF);
Status |= Pannel_Leds(CART_2,MODE_OFF);
Status |= Pannel_Leds(CART_3,MODE_OFF);
-
+#endif
return Status;
}
@@ -1056,6 +1117,7 @@ uint8_t Init_Machine_Leds()
bool Is_Cartridge_Present(PANEL_BUTTON_OR_CRAT_ID Cartridge)
{
bool IsCartPresent = true;
+#ifndef EVALUATION_BOARD
if((Cartridge == CART_1) && (F3_CARTx_PRES_02_Direct & BIT7))
IsCartPresent = false;
@@ -1065,7 +1127,7 @@ bool Is_Cartridge_Present(PANEL_BUTTON_OR_CRAT_ID Cartridge)
else
if((Cartridge == CART_3) && (F3_CARTx_PRES_02_Direct & BIT5))
IsCartPresent = false;
-
+#endif
return IsCartPresent;
}
@@ -1076,9 +1138,10 @@ uint32_t Control_Dryer_Fan(bool StartStop, uint8_t PWM_Command_Precent)//use STA
F1_GPO_Reg.bits.DRYER_FAN_ON = StartStop;//0 - to turn on Blower
F1_GPO_Reg.bits.DRYER_FAN_DIRECT = CCW;//Set Direction - TODO: Verify the correct direction
F1_GPO_Reg.bits.DRYER_FAN_TORQUE_PWM = HIGH;//Torqer High
+#ifndef EVALUATION_BOARD
F1_gpo_01 = F1_GPO_Reg.ushort;
-
+#endif
if(StartStop == START)
Control_Dryer_Fan_PWM(PWM_Command_Precent);// 0 - 100%
diff --git a/Software/Embedded_SW/Embedded/Drivers/Heater/Heater.c b/Software/Embedded_SW/Embedded/Drivers/Heater/Heater.c
index df05156e4..249497aa2 100644
--- a/Software/Embedded_SW/Embedded/Drivers/Heater/Heater.c
+++ b/Software/Embedded_SW/Embedded/Drivers/Heater/Heater.c
@@ -112,11 +112,13 @@ uint32_t ActivateHeater (int HeaterId)
}
if (HeaterId<=HEATER_TYPE__DryerSecondaryHeater)
{
+#ifndef EVALUATION_BOARD
F2_CTRL_Reg.ushort |= portMap[HeaterId].m_pin;
F2_CTRL = F2_CTRL_Reg.ushort;
portMap[HeaterId].Active = true;
//---------------------------------------------------------------------------------------
HeaterActive |= 1 << HeaterId;
+#endif
}
else
{ //F2_CTRL |= portMap[HeaterId].m_pin;
@@ -177,11 +179,13 @@ uint32_t DeActivateHeater (int HeaterId)
assert(isHeater(HeaterIdtoHeaterpid[HeaterId]));
if (HeaterId<=HEATER_TYPE__DryerSecondaryHeater)
{
+#ifndef EVALUATION_BOARD
//F2_CTRL &= ~portMap[HeaterId].m_pin;
F2_CTRL_Reg.ushort &= ~portMap[HeaterId].m_pin;
F2_CTRL = F2_CTRL_Reg.ushort;
portMap[HeaterId].Active = false;
HeaterActive &= ~(1 << HeaterId);
+#endif
}
else
{
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 457a8b895..1fcbc92e1 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
@@ -129,10 +129,10 @@ double Calculate_Pressure(uint32_t VsampleInBits )
}
*/
-void MidTankPressureCorrection(double Offset)
+/*void MidTankPressureCorrection(double Offset)
{
//MidThankReadingOffset = Offset;
-}
+}*/
/*
double Calculate_Pressure(uint32_t VsampleInBits )//MidTank
{
@@ -323,6 +323,7 @@ double Read_MidTank_Pressure_Sensor(MidTank_t MidTank_ID) //0-7
if (MidTank_Pressure_Read_Enable[MidTank_ID] == false)
return MidTank_Pressure[MidTank_ID];
+#ifndef EVALUATION_BOARD
switch(MidTank_ID)
{
@@ -381,7 +382,7 @@ double Read_MidTank_Pressure_Sensor(MidTank_t MidTank_ID) //0-7
//MidTank_Pressure[MidTank_ID] = Calculate_MidTank_Liquid(VsampleInBits , Factor);//According to Gal (email 28-Aug-19)
MidTank_Pressure[MidTank_ID] = Calc_Calibration_MidTank_Liquid(VsampleInBits, MidTank_ID );
-
+#endif
return MidTank_Pressure[MidTank_ID];
}
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 103e3e764..cc5bb71bb 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
@@ -48,7 +48,7 @@ void Trigger_MidTank_Current_Read(void);
double Read_MidTank_Pressure_Sensor(MidTank_t MidTank_ID);
double Get_MidTank_Pressure_Sensor(MidTank_t MidTank_ID); //0-7
int Get_MidTank_Int1000_Sensor(MidTank_t MidTank_ID); //0-7
-void MidTankPressureCorrection(double Offset);
+//void MidTankPressureCorrection(double Offset);
void Enable_MidTank_Pressure_Reading(MidTank_t MidTank_ID); //0-7
void Disable_MidTank_Pressure_Reading(MidTank_t MidTank_ID); //0-7
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/EEPROM/Head_EEPROM.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/EEPROM/Head_EEPROM.c
index 0d9e3cac2..e46aa1bd7 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/EEPROM/Head_EEPROM.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/EEPROM/Head_EEPROM.c
@@ -127,7 +127,9 @@ uint32_t Check_Head_Type_Via_EEPROM()
Head_Type = Head_struct.Read_Head_EEPROM.bytes.HeadType;
*/
+#ifndef EVALUATION_BOARD
Head_Type = HEAD_TYPE_UNKNOWN_WITH_CARD;
+#endif
}
return status;
diff --git a/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c b/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c
index 3ea703b93..0292815be 100644
--- a/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c
+++ b/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c
@@ -118,6 +118,9 @@ void Valve_Command(Valves_t Valve_Id) //1 - OPEN, 0 - CLOSE
Report("Valve shutdown while ink filling is active - cancelled",__FILE__,__LINE__,(int)Valve_Id,RpWarning,(int)ValveRequest[Valve_Id].Direction,0);
return;
}
+#ifdef EVALUATION_BOARD
+ return ;
+#endif
switch(Valve_Id)
{
//Dry air Valves
@@ -243,6 +246,9 @@ uint32_t FPGA_GetDispenserValveBusyOCD(uint32_t ValveId, uint32_t dummy) // Mill
//Valves_t Valve = ValveId;
if (ValveId > VALVE_DISPENSER_8)
return ERROR;
+#ifdef EVALUATION_BOARD
+ return OK;
+#endif
VALVE_BUSY_REG Valve_Busy_Reg;
Valve_Busy_Reg.ushort = F2_DISPENSER_VALVE_IN_Direct;
@@ -346,7 +352,9 @@ void EnableDisableDispenserValve(Valves_t Valve_Id, bool EnableOrDisable )
break;
}
+#ifndef EVALUATION_BOARD
F2_DISPENSER_VALVE_OUT = Dispenser_Valve_GPO_Reg.ushort;
+#endif
}
//
diff --git a/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c b/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c
index 240585e43..5daec00ed 100644
--- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c
+++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c
@@ -104,7 +104,9 @@ uint32_t ReadAppAndProgram(uint32_t ui32FlashStart,uint32_t ui32FileSize,void* b
// block passed to the flash function must be divisible by 4.
//
- status = FlashProgram((uint32_t *)ui32BufferAddr, ui32ProgAddr,(ui32DataSize + 3) & ~3);
+ ROM_IntMasterDisable();
+ status = ROM_FlashProgram((uint32_t *)ui32BufferAddr, ui32ProgAddr,(ui32DataSize + 3) & ~3);
+ ROM_IntMasterEnable();
if (status)
Report("FlashProgram Error", __FILE__,status,ui32ProgAddr , RpMessage, (ui32DataSize + 3) & ~3, 0);
@@ -161,9 +163,11 @@ void FlashInit(void)
if (RxIndex++>=MAX_CONT_LOG)
RxIndex = 0;
#endif
+ ROM_IntMasterDisable();
for(ui32Idx = FLASH_RAM_BASE; ui32Idx < FLASH_RAM_BASE+FLASH_SIZE; ui32Idx += 1024)
{
FlashErase(ui32Idx);
}
+ ROM_IntMasterEnable();
}
diff --git a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c
index dd55f4f91..2ebcbc130 100644
--- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c
+++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c
@@ -27,8 +27,11 @@ uint32_t MCU_E2PromProgram(int Address,uint32_t Data)
}
Report("MCU_E2PromProgram",__FILE__,__LINE__,Address,RpWarning,Data,0);
-
+#ifdef EVALUATION_BOARD
+ return 0;
+#else
return (EEPROMProgram((uint32_t *)&Buffer, Address*4, 4));
+#endif
}
uint32_t MCU_E2PromRead(int Address,uint32_t *Data)
{
@@ -37,7 +40,9 @@ uint32_t MCU_E2PromRead(int Address,uint32_t *Data)
Report("MCU_E2PromRead Error",__FILE__,__LINE__,Address,RpWarning,*Data,0);
return ERROR;
}
+#ifndef EVALUATION_BOARD
EEPROMRead((uint32_t *)Data,Address*4, 4);
+#endif
Report("MCU_E2PromRead",__FILE__,__LINE__,Address,RpWarning,*Data,0);
return OK;
@@ -52,13 +57,17 @@ void MCU_E2PromProgramMidTank(int midtankId,float a,float b)
A = a;
Report("MCU_E2PromProgramMidTank",__FILE__,midtankId,Address,RpWarning,(int)(a*1000),0);
+#ifndef EVALUATION_BOARD
EEPROMProgram((uint32_t *)&A, Address*4, 4);
+#endif
Address = EEPROM_STORAGE_MIDTANK_1_B+2*midtankId;
B = b;
Report("MCU_E2PromProgramMidTank",__FILE__,midtankId,Address,RpWarning,(int)(b*1000),0);
+#ifndef EVALUATION_BOARD
EEPROMProgram((uint32_t *)&B, Address*4, 4);
+#endif
}
float MCU_E2PromReadMidtank_A(int MidtankId)
{
@@ -69,7 +78,9 @@ float MCU_E2PromReadMidtank_A(int MidtankId)
Report("MCU_E2PromReadMidtank error",__FILE__,__LINE__,Address,RpWarning,(int)MidtankId,0);
return ERROR;
}
+#ifndef EVALUATION_BOARD
EEPROMRead((uint32_t *)&Data,Address*4, 4);
+#endif
Report("MCU_E2PromRead",__FILE__,__LINE__,Address,RpWarning,(int)(Data*1000),0);
return (Data);
@@ -83,7 +94,9 @@ float MCU_E2PromReadMidtank_B(int MidtankId)
Report("MCU_E2PromReadMidtank error",__FILE__,__LINE__,Address,RpWarning,(int)MidtankId,0);
return ERROR;
}
+#ifndef EVALUATION_BOARD
EEPROMRead((uint32_t *)&Data,Address*4, 4);
+#endif
Report("MCU_E2PromRead",__FILE__,__LINE__,Address,RpWarning,(int)(Data*1000),0);
return (Data);
@@ -124,13 +137,17 @@ uint32_t MCU_E2PromDryerBacklashProgram(char *Data)
Report("MCU_E2PromDryerBacklashProgram length error",__FILE__,__LINE__,len,RpWarning,(int)0,0);
return ERROR;
}
+#ifndef EVALUATION_BOARD
EEPROMProgram((uint32_t *)Backlash, EEPROM_STORAGE_DRYER_BACKLASH*4, 4);
+#endif
return OK;
}
float MCU_E2PromDryerBacklashRead()
{
float Data;
+#ifndef EVALUATION_BOARD
EEPROMRead((uint32_t *)&Data,EEPROM_STORAGE_DRYER_BACKLASH*4, 4);
+#endif
Report("MCU_E2PromDryerBacklashRead length ",__FILE__,__LINE__,EEPROM_STORAGE_DRYER_BACKLASH*4,RpWarning,(int)(Data*100),0);
@@ -147,13 +164,17 @@ uint32_t MCU_E2PromEmbeddedVersionProgram(void)
return ERROR;
}
memcpy((uint8_t*)&Data,&_gTangoVersion,size);
+#ifndef EVALUATION_BOARD
EEPROMProgram((uint32_t *)&Data, EEPROM_STORAGE_EMBEDDED_VERSION*4, 4);
+#endif
return OK;
}
uint32_t MCU_E2PromEmbeddedVersionRead()
{
uint32_t Data;
+#ifndef EVALUATION_BOARD
EEPROMRead((uint32_t *)&Data,EEPROM_STORAGE_EMBEDDED_VERSION*4, 4);
+#endif
Report("MCU_E2PromEmbeddedVersionRead length ",__FILE__,__LINE__,EEPROM_STORAGE_EMBEDDED_VERSION*4,RpWarning,(int)(Data),0);
@@ -165,6 +186,8 @@ uint32_t MCU_E2PromEmbeddedVersionRead()
//twice before FlashErase is called.
void MCU_E2PromInit(void)
{
+#ifndef EVALUATION_BOARD
EEPROMInit();
+#endif
}
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 1e735d628..09e66acdb 100644
--- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h
+++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h
@@ -39,6 +39,8 @@ typedef enum {
EEPROM_ORIFICE1_ZERO_VALUE,
EEPROM_ORIFICE3_ZERO_VALUE,
EEPROM_WASTE_TANK_ZERO_VALUE,
+ EEPROM_PULLER_TENSION_POSITION,
+ EEPROM_WINDER_TENSION_POSITION,
MAX_EEPROM_STORAGE
}EEPROM_STORAGE_USAGE_ENUM;
#define MAX_SERIAL_NUM_LEN 5 //5*4 bytes
diff --git a/Software/Embedded_SW/Embedded/Embedded.cfg b/Software/Embedded_SW/Embedded/Embedded.cfg
index a9a958a55..016bacc9c 100644
--- a/Software/Embedded_SW/Embedded/Embedded.cfg
+++ b/Software/Embedded_SW/Embedded/Embedded.cfg
@@ -2,6 +2,7 @@ var Hwi = xdc.useModule('ti.sysbios.family.arm.m3.Hwi');
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
var Seconds = xdc.useModule('ti.sysbios.hal.Seconds');
var BIOS = xdc.useModule('ti.sysbios.BIOS');
+BIOS.libType = BIOS.LibType_Debug;
var SysMin = xdc.useModule('xdc.runtime.SysMin');
var System = xdc.useModule('xdc.runtime.System');
var Error = xdc.useModule('xdc.runtime.Error');
diff --git a/Software/Embedded_SW/Embedded/Main.c b/Software/Embedded_SW/Embedded/Main.c
index 845cd2ba8..551caa544 100644
--- a/Software/Embedded_SW/Embedded/Main.c
+++ b/Software/Embedded_SW/Embedded/Main.c
@@ -108,6 +108,7 @@ static volatile uint32_t g_ui32Flags;
bool Machine_Idle_Mode = false;
+extern bool PP_Machine;
F2_CTRL_REG F2_CTRL_Reg;
F1_GPO_REG F1_GPO_Reg;
@@ -268,7 +269,10 @@ int main(void)
Check_Head_Type_Via_EEPROM();
//Trigger_Check_WHS_Type_Via_EEPROM();
Check_WHS_Type_Via_EEPROM();
-
+ if ((Head_Type >= HEAD_TYPE_UNKNOWN_WITH_CARD)&&(WHS_Type == WHS_TYPE_NEW))
+ {
+ PP_Machine = true;
+ }
#ifndef EVALUATION_BOARD
STATUS_RED_LED_ON;
STATUS_GREEN_LED_ON;
@@ -353,7 +357,9 @@ int main(void)
IDLE_TASK_package_init();
+#ifndef EVALUATION_BOARD
Start_InitSequence();
+#endif
PowerIdleInit();
BIOS_start();
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
index 25022ab67..91389bb7f 100644
--- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
+++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
@@ -974,15 +974,15 @@ void AlarmHandlingInternalSetAlarm(uint32_t AlarmId, bool value);
void AlarmHandlingSetAlarm(uint32_t AlarmId, bool value)
{
- AlarmHandlingInternalSetAlarm( AlarmId, value);
- /*AlarmHandlingMessageStruc Message;
+ //AlarmHandlingInternalSetAlarm( AlarmId, value);
+ AlarmHandlingMessageStruc Message;
//send message to the Millisec task
Message.messageId = AlarmHandlingAlarm;
Message.AlarmId = AlarmId;
Message.Value = value;
if (AlarmHandlingMsgQ != NULL)
- Mailbox_post(AlarmHandlingMsgQ , &Message, BIOS_NO_WAIT);*/
+ Mailbox_post(AlarmHandlingMsgQ , &Message, BIOS_NO_WAIT);
}
void AlarmHandlingInternalSetAlarm(uint32_t AlarmId, bool value)
{
@@ -1461,11 +1461,11 @@ uint32_t AlarmHandlingLoop(uint32_t tick)
}
}
}
- if (AlarmItem[Alarm_i].Predecessor!=0xFF)
+ /*if (AlarmItem[Alarm_i].Predecessor!=0xFF)
{
if (AlarmState[AlarmItem[Alarm_i].Predecessor].Status == true) //higher hierarchy alarm is on
Status = false;
- }
+ }*/
if (Status != AlarmState[Alarm_i].Status) //change in alarm Status
{
if (Status == true) // alarm on
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
index 0e95f4053..a5421e60a 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
+++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
@@ -118,7 +118,6 @@ static GateMutex_Handle gateMillisecDB;
uint32_t Millisec_timerBase = TIMER1_BASE; //Timer handle
/******************** Functions ********************************************/
-void CalculateVOCAlarms(void);
//**********************************************************************
/******************** CODE ********************************************/
//**********************************************************************
@@ -151,7 +150,7 @@ void MillisecInit(void)
System_abort("Could not create USB Wait gate");
}
- ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);
+ ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER1);
ROM_TimerConfigure(Millisec_timerBase, TIMER_CFG_PERIODIC); // 32 bits Timer
//TimerIntRegister(Millisec_timerBase, TIMER_A, Timer0Isr); // Registering isr
ROM_TimerEnable(Millisec_timerBase, TIMER_A);
@@ -637,7 +636,9 @@ uint32_t MillisecLowLoop(uint32_t tick)
if (Hundred_msTick)
{
Speed_Data = Calculate_Speed_Sensor_Velocity();
+#ifndef EVALUATION_BOARD
Read_Buttons_Reg();
+#endif
//Ink_Cart_Led();
///////////////////////////////////////////////////////////////////
@@ -749,7 +750,8 @@ uint32_t MillisecLowLoop(uint32_t tick)
MotorGetStatusFromFPGA(Motor_i);
}*/
midtankDisplay = 1-midtankDisplay;
- Gas_PPM_Info = Calculate_Gas_Power_Consumption();
+ if (WHS_Type == WHS_TYPE_UNKNOWN)
+ Gas_PPM_Info = Calculate_Gas_Power_Consumption();
//Trigger_WHS_MAX11614_Read_allADC();
#ifdef CONTROL_DEBUG
ResetControlTime();
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
index bfcf379d0..0181121a3 100644
--- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
+++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
@@ -238,19 +238,14 @@ uint32_t GetDiagnosticCollectionLimit(void)
{
return (DiagnosticLimit*DiagnosticCollectionLimit);
}
-void SetDiagnosticCollectionLimit(int limit)
+/*void SetDiagnosticCollectionLimit(int limit)
{
if ((limit)&&(limit<= DIAGNOSTICS_LIMIT))
DiagnosticCollectionLimit = limit;
DiagnosticLimit =eHundredMillisecond; //frequency of data collection
- /*if (DiagnosticMode <= Diagnostic_Normal_Mode)
- {
- DiagnosticCollectionLimit = 1; //overrule - send at least once every second
- DiagnosticLimit =eOneSecond; //frequency of data collection
- }*/
REPORT_MSG(DiagnosticCollectionLimit,"Diagnostic limit set");
-}
+}*/
uint8_t HeaterCounterIndex[HEATER_TYPE_MAX_HEATERS]= {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
double HeaterTemperature[HEATER_TYPE_MAX_HEATERS][DIAGNOSTICS_LIMIT+1];
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.h b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.h
index b7b1ec9c8..7ec1962f3 100644
--- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.h
+++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.h
@@ -30,7 +30,7 @@ uint32_t StopDiagnosticsRequestFunc(MessageContainer* requestContainer);
uint32_t DiagnosticsStart(void);
uint32_t DiagnosticsStop(void);
-void SetDiagnosticCollectionLimit(int limit);
+//void SetDiagnosticCollectionLimit(int limit);
uint32_t GetDiagnosticCollectionLimit(void);
void DiagnosticsReset(void);
diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
index 618d4569c..f373e079d 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
@@ -61,10 +61,16 @@ uint32_t HWConfiguration(UploadHardwareConfigurationRequest* UploadRequest);
bool GeneralHwReady = false;
+bool PP_Machine = false;
+
HardwareBlower BlowerCfg;
char *SW_INFO_DIR = "0://SysInfo";
char HwConfigPath[50] = "0://SysInfo//GenHwCfg.cfg";
+bool Is_PP_Machine(void)
+{
+ return PP_Machine;
+}
void *HWConfigurationLoadFromFile( uint32_t *NumOfBytes)
{
FRESULT Fresult = FR_OK;
@@ -175,23 +181,14 @@ void LoadConfigurationParameters(ConfigurationParameters *Params)
{
EmbeddedParameters = my_malloc(sizeof(ConfigurationParameters));
configuration_parameters__init(EmbeddedParameters);
+ EmbeddedParameters->has_breaksensorlimit = true;
EmbeddedParameters->breaksensorlimit = 10;
- EmbeddedParameters->has_diagnosticcollectionlimit = true;
- EmbeddedParameters->diagnosticcollectionlimit = 3;
- EmbeddedParameters->has_overheatcountlimit = true;
- EmbeddedParameters->overheatcountlimit = 3;
- EmbeddedParameters->has_underheatcountlimit = true;
- EmbeddedParameters->underheatcountlimit = 3;
+
EmbeddedParameters->has_closevalvetimeout = true;
EmbeddedParameters->closevalvetimeout = 52;
EmbeddedParameters->has_openvalvetimeout = true;
EmbeddedParameters->openvalvetimeout = 52;
- EmbeddedParameters->has_initialdispenserpressure = true;
- EmbeddedParameters->initialdispenserpressure = 0.25;
- EmbeddedParameters->has_initialdispensertimeout = true;
- EmbeddedParameters->initialdispensertimeout = 180000;
- EmbeddedParameters->has_initialdispensertimelag = true;
- EmbeddedParameters->initialdispensertimelag = 100;
+
EmbeddedParameters->has_dispenserbuildpressurespeed = true;
EmbeddedParameters->dispenserbuildpressurespeed=500;
EmbeddedParameters->has_dispenserbuildpressurelimit = true;
@@ -200,6 +197,7 @@ void LoadConfigurationParameters(ConfigurationParameters *Params)
EmbeddedParameters->dispenserbuildpressuretimeout=150000;
EmbeddedParameters->has_dispenserbuildpressurelag = true;
EmbeddedParameters->dispenserbuildpressurelag=50;
+
EmbeddedParameters->has_acheatersloweroperationlimit = true;
EmbeddedParameters->acheatersloweroperationlimit = 980;
EmbeddedParameters->has_acheatersupperoperationlimit = true;
@@ -208,12 +206,13 @@ void LoadConfigurationParameters(ConfigurationParameters *Params)
EmbeddedParameters->dcheatersloweroperationlimit = 978;
EmbeddedParameters->has_dcheatersupperoperationlimit = true;
EmbeddedParameters->dcheatersupperoperationlimit = 1002;
- EmbeddedParameters->has_midtankpressurecorrection = true;
- EmbeddedParameters->midtankpressurecorrection = 0.0;
+
EmbeddedParameters->has_dispenserpresegmentwfcf = true;
EmbeddedParameters->dispenserpresegmentwfcf = 40;
+
EmbeddedParameters->has_startheatingoninitsequence = true;
EmbeddedParameters->startheatingoninitsequence = true; //set to true shlomo 14/5/2019
+
EmbeddedParameters->n_generalparameters = 8;
EmbeddedParameters->generalparameters = malloc (sizeof(double)*10);
if (EmbeddedParameters->generalparameters)
@@ -227,12 +226,12 @@ void LoadConfigurationParameters(ConfigurationParameters *Params)
EmbeddedParameters->generalparameters[6] = Diagnostic_Extended_Mode; //Diagnostic Mode SetDiagnosticMode
EmbeddedParameters->generalparameters[7] = AutoHoming_JobEnd_PowerOn_off; //
}
+
EmbeddedParameters->has_currentalarmlowlimit = true;
EmbeddedParameters->currentalarmlowlimit = 0.78;
EmbeddedParameters->has_currentalarmhighlimit = true;
EmbeddedParameters->currentalarmhighlimit= 1.07;
- EmbeddedParameters->has_ids_segmentrefilltimeout = true;
- EmbeddedParameters->ids_segmentrefilltimeout = 5000;
+
EmbeddedParameters->has_ids_presegmentbuilduptime = true;
EmbeddedParameters->ids_presegmentbuilduptime = 5000;
EmbeddedParameters->has_ids_cleaningspeed = true;
@@ -245,6 +244,7 @@ void LoadConfigurationParameters(ConfigurationParameters *Params)
EmbeddedParameters->ids_leftcleaningmotorspeed = 52;
EmbeddedParameters->has_ids_rightcleaningmotorspeed = true;
EmbeddedParameters->ids_rightcleaningmotorspeed = 52;
+
EmbeddedParameters->has_switchtoidletimeinseconds = true;
EmbeddedParameters->switchtoidletimeinseconds = 3600;
EmbeddedParameters->has_idledriertemperature = true;
@@ -315,24 +315,24 @@ uint32_t EmbeddedParametersInit(void)
}
}
- if (EmbeddedParameters->n_generalparameters >= 6)
+ /* if (EmbeddedParameters->n_generalparameters >= 6)
{
IDS_Dispenser_SetBackLashValues(EmbeddedParameters->initialdispenserpressure, EmbeddedParameters->initialdispensertimeout, EmbeddedParameters->initialdispensertimelag,EmbeddedParameters->generalparameters[5]);
}
else
{
IDS_Dispenser_SetBackLashValues(EmbeddedParameters->initialdispenserpressure, EmbeddedParameters->initialdispensertimeout, EmbeddedParameters->initialdispensertimelag,1000);
- }
+ }*/
IDS_Dispenser_SetTimeOutValues(EmbeddedParameters->closevalvetimeout, EmbeddedParameters->openvalvetimeout);
IDS_Dispenser_SetPrepareValues(EmbeddedParameters->dispenserbuildpressurespeed, EmbeddedParameters->dispenserbuildpressurelimit, EmbeddedParameters->dispenserbuildpressuretimeout, EmbeddedParameters->dispenserbuildpressurelag);
IDS_Dispenser_SetPreSegmentWFCFValues(EmbeddedParameters->dispenserpresegmentwfcf, EmbeddedParameters->ids_presegment_wfcf_timebeforesegment);
IDS_Dispenser_SetPreSegmentCleaningValues(EmbeddedParameters->ids_cleaningspeed,EmbeddedParameters->ids_cleaningstartspraypresegmenttime ,EmbeddedParameters->ids_cleaningstopbeforesegmenttime,EmbeddedParameters->ids_leftcleaningmotorspeed,EmbeddedParameters->ids_rightcleaningmotorspeed);
- Heaters_SetOverHeatTimeOutValues( EmbeddedParameters->overheatcountlimit, EmbeddedParameters->underheatcountlimit);
+ //Heaters_SetOverHeatTimeOutValues( EmbeddedParameters->overheatcountlimit, EmbeddedParameters->underheatcountlimit);
Heaters_SetOperationLimits(EmbeddedParameters->acheatersloweroperationlimit,EmbeddedParameters->acheatersupperoperationlimit,EmbeddedParameters->dcheatersloweroperationlimit,EmbeddedParameters->dcheatersupperoperationlimit);
- MidTankPressureCorrection(EmbeddedParameters->midtankpressurecorrection);
- SetDiagnosticCollectionLimit(EmbeddedParameters->diagnosticcollectionlimit);
+ //MidTankPressureCorrection(EmbeddedParameters->midtankpressurecorrection);
+ //SetDiagnosticCollectionLimit(EmbeddedParameters->diagnosticcollectionlimit);
ThreadSetBreakSensorLimit(EmbeddedParameters->breaksensorlimit);
PowerOffSetTemperatureThreshold(EmbeddedParameters->powerofftemperaturelimit);
diff --git a/Software/Embedded_SW/Embedded/Modules/General/process.c b/Software/Embedded_SW/Embedded/Modules/General/process.c
index 4cb35d488..5760d5b79 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/process.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/process.c
@@ -31,10 +31,11 @@ double dyeingspeed = 0;
double dryerbufferlength = 0;
double mininkuptake = 0;
double feedertension = 0;
-double pullertension = 0;
-double windertension = 0;
+double pullertension = 5000;
+double windertension = 5000;
double headairflow = 5.0;
double dryerairflow = 5.0;
+double pressurebuildup = 0;
int32_t tableindex = 0;
double dryerbufferMeters = 0;
@@ -273,6 +274,7 @@ uint32_t HandleProcessParameters(ProcessParameters* ProcessParams,bool saveData)
windertension = ProcessParams->windertension;
headairflow = ProcessParams->headairflow;
dryerairflow = ProcessParams->dryerairflow;
+ pressurebuildup = ProcessParams->pressurebuildup;
return status;//status;
}
diff --git a/Software/Embedded_SW/Embedded/Modules/General/process.h b/Software/Embedded_SW/Embedded/Modules/General/process.h
index a546ffdbe..695cf9516 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/process.h
+++ b/Software/Embedded_SW/Embedded/Modules/General/process.h
@@ -17,6 +17,8 @@ extern double pullertension;
extern double windertension;
extern double headairflow;
extern double dryerairflow;
+extern double pressurebuildup;
+
extern int32_t tableindex;
extern double dryerbufferMeters;
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
index ca4255a95..373fdfaec 100644
--- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
@@ -267,11 +267,11 @@ void HeatersControlInit(void)
return;
}
-void Heaters_SetOverHeatTimeOutValues(uint32_t OverHeatTimeout, uint32_t UnderHeatTimeout)
+/*void Heaters_SetOverHeatTimeOutValues(uint32_t OverHeatTimeout, uint32_t UnderHeatTimeout)
{
Overheat_Count_Limit = OverHeatTimeout;
Underheat_Count_Limit = UnderHeatTimeout;
-}
+}*/
void Heaters_SetOperationLimits(int acheatersloweroperationlimit, int acheatersupperoperationlimit, int dcheatersloweroperationlimit, int dcheatersupperoperationlimit)
{
AcHeatersLoweroperationLimit = acheatersloweroperationlimit;
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c
index 6e4eed580..1176d3132 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c
@@ -66,7 +66,7 @@ int32_t IdsGetMotorSpeed(uint32_t DispenserId)
{
return CurrentDispenserSpeed[DispenserId];
}
-
+/*
uint32_t IDS_Dispenser_Build_Pressure_Callback(uint32_t DispenserId, uint32_t ReadValue)
{
uint32_t status;
@@ -128,7 +128,7 @@ uint32_t IDS_Dispenser_Build_Pressure_Callback(uint32_t DispenserId, uint32_t Re
return OK;
}
-
+*/
uint32_t IDS_Dispenser_StopMotorCallback(uint32_t DispenserId, uint32_t ReadValue)
{
Report("IDS_Dispenser_Close_Valve_And_Stop_Motor callback",__FILE__,__LINE__,(int)DispenserId,RpWarning,(int)msec_millisecondCounter,0);
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
index 3b6291285..107fd425b 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
@@ -102,7 +102,7 @@ void IDS_Dispenser_SetBackLashValues(double initialdispenserpressure, uint32
InitialDispenserPressure = initialdispenserpressure;
InitialDispenserTimeout = initialdispensertimeout;
InitialDispenserTimeLag = initialdispensertimelag;
- InitialDispenserSpeed = INITIAL_DISPENSER_SPEED;
+ InitialDispenserSpeed = initialdispenserspeed;
Report("IDS_Dispenser_SetBackLashValues ",__FILE__,InitialDispenserPressure*100,InitialDispenserTimeout,RpWarning,(int)InitialDispenserTimeLag,0);
}
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
index 0c28ee564..a34594d56 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
@@ -687,20 +687,23 @@ uint32_t InactiveDispenserHome(uint32_t DispenserId, uint32_t ReadValue)
int Motor_i, Pid_Id;
//start IDS control for all motors
IDS_Active = true;
+ double cleanerFlow = 0;
Valve_Set(VALVE_MIXCHIP_WASTECH, Mixer_Waste);
- //JobTicket* JobTicket = JobDetails;
+ JobTicket* JobTicket = JobDetails;
JobEndSequence = false;
- if ((feedertension>0.1)&&(feedertension<1.5))
+ if ((pressurebuildup>0.1)&&(pressurebuildup<1.5))
{
- Report("Setting pressure from RML feeder tension",__FILE__,__LINE__,(int)(feedertension*100),RpWarning,(int)(DispenserPreparePressure*100),0);
- DispenserPreparePressure = feedertension;
+ Report("Setting pressure from RML feeder tension",__FILE__,__LINE__,(int)(pressurebuildup*100),RpWarning,(int)(DispenserPreparePressure*100),0);
+ DispenserPreparePressure = pressurebuildup;
}
- if ((pullertension>200)&&(pullertension<1150))
+ if (JobTicket->headcleaningparameters->has_cleanerflow)
+ cleanerFlow = JobTicket->headcleaningparameters->cleanerflow;
+ if ((cleanerFlow>200)&&(cleanerFlow<1150))
{
- Report("Setting pressure from RML feeder tension",__FILE__,__LINE__,(int)(pullertension),RpWarning,(int)CleaningDispenserSpeed,0);
- CleaningDispenserSpeed = pullertension;
+ Report("Setting pressure from RML feeder tension",__FILE__,__LINE__,(int)(cleanerFlow),RpWarning,(int)CleaningDispenserSpeed,0);
+ CleaningDispenserSpeed = cleanerFlow;
}
for (Motor_i = 0;Motor_i < MAX_SYSTEM_DISPENSERS;Motor_i++)
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
index 76a92bd89..7a9b66a0b 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
@@ -368,7 +368,7 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
if(Write_Buf[0] == 0)//Read
{
- Head_Read_IO_Reg(Script_Slave_Add, LOW);
+ //Head_Read_IO_Reg(Script_Slave_Add, LOW);
delayms(1);
if(Script_Slave_Add == 0x40)
@@ -403,7 +403,7 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
if(Write_Buf[0] == 1)//Read
{
- Head_Read_IO_Reg(Script_Slave_Add, HIGH);
+ //Head_Read_IO_Reg(Script_Slave_Add, HIGH);
delayms(1);
if(Script_Slave_Add == 0x40)
@@ -427,7 +427,7 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
response.has_progress = true;
}
else
- if(Script_Slave_Add == 0x46)
+ if(Script_Slave_Add == 0x46)//LS
{
Read_Buf[0] = Head_I2C_EXP4_0x46.uchar[1];
response.progress = Read_Buf[0];
@@ -435,6 +435,7 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
}
}
else
+ /*
if(Write_Buf[0] == 2)//write
{
if(Script_Slave_Add == 0x40)
@@ -452,7 +453,7 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
Head_I2C_EXP4_0x46.uchar[0] = (Write_Buf[1] & 0x80);
}
- Head_Write_IO_Reg(Script_Slave_Add, LOW);
+ //Head_Write_IO_Reg(Script_Slave_Add, LOW);
}
if(Write_Buf[0] == 3)//write
{
@@ -463,15 +464,48 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
else
if(Script_Slave_Add == 0x42)
{
- Head_I2C_EXP2_0x42.uchar[1] = Write_Buf[1];
+ //Head_I2C_EXP2_0x42.uchar[1] = Write_Buf[1];
+ Head_I2C_EXP2_0x42.bits.OUTPUT_MAG_DIR = (Write_Buf[1] & 0x01);//control only the magnet
}
else
if(Script_Slave_Add == 0x46)
{
Head_I2C_EXP3_0x44.uchar[1] = (Write_Buf[1] & 0x0C);
}
- Head_Write_IO_Reg(Script_Slave_Add, HIGH);
+ //Head_Write_IO_Reg(Script_Slave_Add, HIGH);
}
+ */
+ if(Write_Buf[0] >=0xF0) // write
+ {
+ // write , Write_Buf[0] bit number 0..15 , Write_Buf[1] 0 or 1
+ Write_Buf[1] = Write_Buf[1] & 0x01;
+
+ Write_Buf[0] &=0x0f;
+
+ if(Script_Slave_Add == 0x40)
+ {
+ if(Write_Buf[1] == 0x01)
+ Head_I2C_EXP1_0x40.ushort |= (0x01 << Write_Buf[0]);
+ else if(Write_Buf[1] == 0x00)
+ Head_I2C_EXP1_0x40.ushort &= ~(0x01 << Write_Buf[0]);
+ }
+ else
+ if(Script_Slave_Add == 0x42)
+ {
+ if(Write_Buf[1] == 0x01)
+ Head_I2C_EXP2_0x42.ushort |= (0x01 << Write_Buf[0]);
+ else if(Write_Buf[1] == 0x00)
+ Head_I2C_EXP2_0x42.ushort &= ~(0x01 << Write_Buf[0]);
+ }
+ else
+ if(Script_Slave_Add == 0x46)
+ {
+ if(Write_Buf[1] == 0x01)
+ Head_I2C_EXP4_0x46.ushort |= (0x01 << Write_Buf[0]);
+ else if(Write_Buf[1] == 0x00)
+ Head_I2C_EXP4_0x46.ushort &= ~(0x01 << Write_Buf[0]);
+ }
+ }
}
else
if(request->amount == 0xFEAD) //functions Head Card I/O
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c
index 1c39385d4..1663219bd 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c
@@ -283,13 +283,13 @@ void Stub_MotorStopRequest(MessageContainer* requestContainer)
Stop_Command = (STOP_TYPE_ENUM)request->stop_cmd;
+ TimerMotors_t Motor_Id = (TimerMotors_t)request->motor_id; //to remove warning
#ifdef EVALUATION_BOARD
uint32_t read_status;
//SPI_Control(SKIP_INIT);
Mot_Stop();
#else
- TimerMotors_t Motor_Id = (TimerMotors_t)request->motor_id; //to remove warning
MotorStop(Motor_Id, Stop_Command);
#endif
if ((Motor_Id >= HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_1)&&(Motor_Id <= HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_8))
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c
index 698852f00..1181082ea 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c
@@ -428,9 +428,14 @@
MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_RDANCER,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RDANCER].directionthreadwize, 15, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_RDANCER], Thread_Load_HomingCallback,15000);*/
CallbackCounter++;
MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_LDANCER1,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1].directionthreadwize, 500, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1], Thread_Load_HomingCallback,25000);
- CallbackCounter++;
- MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_LDANCER2,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER2].directionthreadwize, 500, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_LDANCER2], Thread_Load_HomingCallback,25000);
+ status |= MCU_E2PromProgram(EEPROM_WINDER_TENSION_POSITION,1);
+ if (Is_PP_Machine() == true) //PP machine - new LTFU
+ {
+ CallbackCounter++;
+ MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_LDANCER2,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER2].directionthreadwize, 500, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_LDANCER2], Thread_Load_HomingCallback,25000);
+ status |= MCU_E2PromProgram(EEPROM_PULLER_TENSION_POSITION,1);
+ }
return OK;
}
uint32_t Thread_Load_Lift_Rockers(void)
@@ -511,12 +516,15 @@
MotorSetMaxSpeed (HARDWARE_MOTOR_TYPE__MOTO_LDANCER1, 500);
// MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_LDANCER1,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1].directionthreadwize, 500, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1], Thread_Load_HomingCallback,25000);
- MotorMoveWithCallback (HARDWARE_MOTOR_TYPE__MOTO_LDANCER1, MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1].directionthreadwize, (5000*MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1].microstep), Thread_Load_HomingCallback,20000);
- CallbackCounter++;
- MotorSetMaxSpeed (HARDWARE_MOTOR_TYPE__MOTO_LDANCER2, 500);
-
-// MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_LDANCER1,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1].directionthreadwize, 500, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1], Thread_Load_HomingCallback,25000);
- MotorMoveWithCallback (HARDWARE_MOTOR_TYPE__MOTO_LDANCER2, MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER2].directionthreadwize, (5000*MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER2].microstep), Thread_Load_HomingCallback,20000);
+ MotorMoveWithCallback (HARDWARE_MOTOR_TYPE__MOTO_LDANCER1, MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1].directionthreadwize, ((int)windertension*MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1].microstep), Thread_Load_HomingCallback,20000);
+ status |= MCU_E2PromProgram(EEPROM_WINDER_TENSION_POSITION,(int)windertension);
+ if (Is_PP_Machine() == true) //PP machine - new LTFU
+ {
+ CallbackCounter++;
+ MotorSetMaxSpeed (HARDWARE_MOTOR_TYPE__MOTO_LDANCER2, 500);
+ MotorMoveWithCallback (HARDWARE_MOTOR_TYPE__MOTO_LDANCER2, MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER2].directionthreadwize, ((int)pullertension*MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER2].microstep), Thread_Load_HomingCallback,20000);
+ status |= MCU_E2PromProgram(EEPROM_PULLER_TENSION_POSITION,(int)pullertension);
+ }
return OK;
}
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
index 78150e9f9..3b97e9eb7 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
@@ -149,9 +149,9 @@ 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;
+ //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/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
index be6644067..fb8fa4711 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
@@ -35,6 +35,7 @@
#include "modules/ids/ids_ex.h"
#include "Modules/AlarmHandling/AlarmHandling.h"
#include "Control/MillisecTask.h"
+#include "drivers/Flash_ram/MCU_E2Prom.h"
////////////////////////////////State machine operation////////////////////////////////////
//the state machine operation is used to operate in runtime correct profile flow execution
@@ -789,11 +790,61 @@ uint32_t HandleJobThreadControlParameters(ThreadParameters* ThreadParams)
return OK;
}
+uint32_t ThreadPrepare_Tension (int DancerId, double tension)
+{
+ int current, request = (int)tension,movement;
+ int HW_Motor_Id;
+ bool direction;
+ uint32_t status = OK, address = 0;
+ switch (DancerId)
+ {
+ case HARDWARE_DANCER_TYPE__LeftDancer:
+ address = EEPROM_WINDER_TENSION_POSITION;
+ HW_Motor_Id = HARDWARE_MOTOR_TYPE__MOTO_LDANCER1;
+ break;
+ case HARDWARE_DANCER_TYPE__MiddleDancer:
+ if (Is_PP_Machine() == false) //LP machine - old LTFU
+ return OK;
+ address = EEPROM_PULLER_TENSION_POSITION;
+ HW_Motor_Id = HARDWARE_MOTOR_TYPE__MOTO_LDANCER2;
+ break;
+ case HARDWARE_DANCER_TYPE__RightDancer:
+ return ERROR;
+ default:
+ return ERROR;
+ }
+ status |= MCU_E2PromRead(address,&current);
+ if ((status!= OK )||(current == 0)||(current == 0xFFFF))
+ return status;
+ if (abs(current - request)<100)
+ return status;
+ else
+ {
+ if (current < request) //go down
+ {
+ direction = MotorsCfg[HW_Motor_Id].directionthreadwize;
+ movement = request - current;
+ }
+ else
+ {
+ direction = 1-MotorsCfg[HW_Motor_Id].directionthreadwize;
+ movement = current - request;
+ }
+ MotorMoveWithCallback (HW_Motor_Id, direction, (movement*MotorsCfg[HW_Motor_Id].microstep), NULL,20000);
+ status |= MCU_E2PromProgram(address,request);
+ }
+ usnprintf(Lenstr, 100, "ThreadPrepare_Tension Dancer %d Request: %d Current %d movement %d dir %d motor %d address %d",
+ DancerId,request,current,movement,direction,HW_Motor_Id,address);
+ ReportWithPackageFilter(ThreadFilter,Lenstr,__FILE__,address,HARDWARE_MOTOR_TYPE__MOTO_DH_LID,RpFatalError,LIMIT,0);
+
+ return status;
+}
//********************************************************************************************************************
uint32_t ThreadPrepareState(void *JobDetails)
{
int Motor_i,i, HW_Motor_Id, Pid_Id;
JobTicket* JobTicket = JobDetails;
+ uint32_t status = OK;
CurrentSegmentId = 0;
JobCounter = 0;
@@ -810,11 +861,22 @@ uint32_t HandleJobThreadControlParameters(ThreadParameters* ThreadParams)
AlarmHandlingSetAlarm(EVENT_TYPE__WINDER_CONE_DOES_NOT_EXIST,false);
AlarmHandlingSetAlarm(EVENT_TYPE__FPGA_WATCHDOG_ACTIVATED,false);
+// status |= MCU_E2PromProgram(EEPROM_STORAGE_DANCER_0,DancersCfg[0].zeropoint);
+// double feedertension = 0;
+// double pullertension = 0;
+// double windertension = 0;
EnableLubrication = JobTicket->enablelubrication;
EnableIntersegment = JobTicket->enableintersegment;
IntersegmentLength = JobTicket->intersegmentlength;
+ status = ThreadPrepare_Tension (HARDWARE_DANCER_TYPE__LeftDancer, windertension);
+ ReportWithPackageFilter(ThreadFilter,"ThreadPrepare_Tension",__FILE__,HARDWARE_DANCER_TYPE__LeftDancer,status,RpFatalError,(int)windertension,0);
+ status = ThreadPrepare_Tension (HARDWARE_DANCER_TYPE__MiddleDancer, pullertension);
+ ReportWithPackageFilter(ThreadFilter,"ThreadPrepare_Tension",__FILE__,HARDWARE_DANCER_TYPE__MiddleDancer,status,RpFatalError,(int)pullertension,0);
+ status = ThreadPrepare_Tension (HARDWARE_DANCER_TYPE__RightDancer, feedertension);
+ ReportWithPackageFilter(ThreadFilter,"ThreadPrepare_Tension",__FILE__,HARDWARE_DANCER_TYPE__RightDancer,status,RpFatalError,(int)feedertension,0);
+
FirstCalcInJob = true;
if(MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RDRIVING].speedmaster == false)
{
diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c
index 6d9b8c411..6aedf8c3b 100644
--- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c
+++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c
@@ -447,7 +447,7 @@ uint32_t InitSequenceDispenserPressureBuildUpTest(void)
{
if (isMotorConfigured(Dispenser_i + HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_1)==true)
{
- IDS_Dispenser_Build_Pressure(Dispenser_i,InitSequenceDispenserPressureBuildUpTestCallBackFunction);
+ //IDS_Dispenser_Build_Pressure(Dispenser_i,InitSequenceDispenserPressureBuildUpTestCallBackFunction);
Report("IDS_Dispenser_Build_Pressure",__FILE__,__LINE__,(int)Dispenser_i,RpWarning,(int)Dispenser_i,0);
NumOfCheckedDispnsers++;
}
diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c
index e3461515c..52609ab44 100644
--- a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c
+++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c
@@ -788,7 +788,7 @@ void JobRequestFunc(MessageContainer* requestContainer)
if (GetMachineState()<MACHINE_STATE_NO_PROCESS_PARAMS)
{
ReportWithPackageFilter(InitFilter,"Job request Init not ready",__FILE__,(int)__LINE__,(int)status,RpWarning,(int)GetMachineState(),0);
- status = ERROR_CODE__NO_JOB_IN_PROGRESS;
+ error = ERROR_CODE__NO_JOB_IN_PROGRESS;
usnprintf(ErrorMsg, 100, "Init procedure not completed yet");
}
}
@@ -840,6 +840,8 @@ void JobRequestFunc(MessageContainer* requestContainer)
jobStatus.has_currentsegmentindex = false;
response.status = &jobStatus;
response.has_canceled = false;
+ responseContainer.has_continuous = true;
+ responseContainer.continuous = true;
responseContainer = createContainer(MESSAGE_TYPE__JobResponse, JobToken, false, &response, &job_response__pack, &job_response__get_packed_size);
container_buffer = my_malloc(message_container__get_packed_size(&responseContainer));
}