From 9f112324a1196bffd1660122285aafc2aff63219 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Sun, 26 Aug 2018 10:37:06 +0300 Subject: some bug correction tests (heaters change, job end) #221, #224 --- .../Embedded/Drivers/FPGA/FPGA_SPI_Comm.c | 4 +- .../Embedded/Modules/Diagnostics/Diagnostics.c | 110 ++++++++++++++------- .../Embedded/Modules/Heaters/Heaters_print.c | 4 + .../Modules/Stubs_Handler/Stub_Cartridge.c | 43 +------- .../Embedded/StateMachines/Printing/JobSTM.c | 6 +- 5 files changed, 85 insertions(+), 82 deletions(-) (limited to 'Software/Embedded_SW') diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_SPI_Comm.c b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_SPI_Comm.c index 537bacea0..608b8d0ad 100644 --- a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_SPI_Comm.c +++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_SPI_Comm.c @@ -90,7 +90,7 @@ static FpgaMotMap_t FpgaMotMap[NUM_OF_MOTORS] = {&F1_MOTO_RLOADARM_A1_TX_00, &F1_MOTO_RLOADARM_A1_TX_01, &F1_MOTO_RLOADARM_A1_RX_00 ,&F1_MOTO_RLOADARM_A1_RX_01 ,&F1_MOTO_RLOADARM_A1_WORDS ,&F1_Moto_Driver_NBUSY2_D, &F1_SPI_Busy1_D}, //MOTOR_RLOADING - Right Loading {&F1_MOTO_RLOADING_A1_TX_00, &F1_MOTO_RLOADING_A1_TX_01, &F1_MOTO_RLOADING_A1_RX_00, &F1_MOTO_RLOADING_A1_RX_01, &F1_MOTO_RLOADING_A1_WORDS, &F1_Moto_Driver_NBUSY2_D, &F1_SPI_Busy1_D}, - +/* //MOTOR_SPARE1_1 - Spare {&F3_MOTO_SPARE1_1_A1_TX_00, &F3_MOTO_SPARE1_1_A1_TX_01, &F3_MOTO_SPARE1_1_A1_RX_00 ,&F3_MOTO_SPARE1_1_A1_RX_01 ,&F3_MOTO_SPARE1_1_A1_WORDS ,&F3_Moto_Driver_NBUSY1_D, &F3_SPI_Busy1_D}, //MOTOR_SPARE1_2 - Spare @@ -99,7 +99,7 @@ static FpgaMotMap_t FpgaMotMap[NUM_OF_MOTORS] = {&F3_MOTO_SPARE2_1_A1_TX_00, &F3_MOTO_SPARE2_1_A1_TX_01, &F3_MOTO_SPARE2_1_A1_RX_00 ,&F3_MOTO_SPARE2_1_A1_RX_01 ,&F3_MOTO_SPARE2_1_A1_WORDS ,&F3_Moto_Driver_NBUSY1_D, &F3_SPI_Busy1_D}, //MOTOR_SPARE2_2 - Spare {&F3_MOTO_SPARE2_2_A1_TX_00, &F3_MOTO_SPARE2_2_A1_TX_01, &F3_MOTO_SPARE2_2_A1_RX_00 ,&F3_MOTO_SPARE2_2_A1_RX_01 ,&F3_MOTO_SPARE2_2_A1_WORDS ,&F3_Moto_Driver_NBUSY1_D, &F3_SPI_Busy1_D}, - +*/ }; uint8_t FPGA_SPI_Transnit(TimerMotors_t _motorId) diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c index 477fc0732..1eabcdeba 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c @@ -50,12 +50,17 @@ uint32_t Diagnostics_ControlTrigger(uint32_t IfIndex, uint32_t ReadValue); uint32_t Diagnostics_TenMiliControlTrigger(uint32_t IfIndex, uint32_t ReadValue); +DiagnosticsMonitors DiagnosticsMonitor = DIAGNOSTICS_MONITORS__INIT; + #define DIAGNOSTICS_LIMIT 10 #define DIAGNOSTICS_DANCER_LIMIT 100 int DiagnosticsIndex = 0; int DiagnosticCollectionLimit = 3; //number of data samples to collect before sending to the host -int DiagnosticLimit = eHundredMillisecond; //frequency of data collection +//int DiagnosticLimit = eHundredMillisecond; //frequency of data collection +//int DiagnosticFastLimit = eTenMillisecond; //frequency of data collection +int DiagnosticLimit =eHundredMillisecond; //frequency of data collection int DiagnosticFastLimit = eTenMillisecond; //frequency of data collection + //DigitalPin DigitalPinArray[1][DIAGNOSTICS_LIMIT]; double dancer1angle[DIAGNOSTICS_LIMIT]; double dancer2angle[DIAGNOSTICS_LIMIT]; @@ -81,6 +86,9 @@ double dryerzone3temperature[DIAGNOSTICS_LIMIT]; double dispensermotorfrequency[MAX_SYSTEM_DISPENSERS][DIAGNOSTICS_LIMIT]; double dispenserspressure[MAX_SYSTEM_DISPENSERS][DIAGNOSTICS_LIMIT]; +DoubleArray DispenserFreq[MAX_SYSTEM_DISPENSERS]; +DoubleArray DiagnosticsDispenserPressure[MAX_SYSTEM_DISPENSERS]; + /*double dispenser1motorfrequency[DIAGNOSTICS_LIMIT]; double dispenser2motorfrequency[DIAGNOSTICS_LIMIT]; double dispenser3motorfrequency[DIAGNOSTICS_LIMIT]; @@ -116,12 +124,23 @@ typedef struct DiagnosticsMessage{ void DiagnosticsInit(void) { + int i; Error_Block eb; Error_init(&eb); DiagnosticsMsgQ = Mailbox_create(sizeof(DiagnosticsMessageStruc), 20, NULL,&eb); + DiagnosticsMonitor.dispensersmotorsfrequency = (DoubleArray**)malloc(sizeof(DoubleArray *)*8); + DiagnosticsMonitor.dispenserspressure = (DoubleArray**)malloc(sizeof(DoubleArray)*8); + DiagnosticsMonitor.dispenserslinearpositions = (DoubleArray**)malloc(sizeof(DoubleArray)*8); + DiagnosticsMonitor.dispensersangularencoders = (DoubleArray**)malloc(sizeof(DoubleArray)*8); + for (i = 0; icartridgeid - //writeLine("cartridge Request: "); - - //writeFloat(request->cartridgeid); - /* int i; for( i=0;i<8;i++) @@ -57,20 +51,8 @@ void Stub_CartridgeReadRequest(MessageContainer* requestContainer) response.has_cartridgeused = false; status_response(status,&response.status, &response.statusword ,&response.has_statusword); -/* - writeLine("Sending Response: "); - - writeFloat(response.cartridgeid); - writeString(", "); - writeFloat(response.cartridgecolor); - writeString(", "); - writeFloat(response.cartridgeversion); - writeString(", "); - writeFloat(response.cartridgedata); - writeString(", "); - writeFloat(response.cartridgeused); - writeString(", "); -*/ + + Write_status_response(status); responseContainer = createContainer(MESSAGE_TYPE__StubCartridgeReadResponse, requestContainer->token, true, &response, &stub_cartridge_read_response__pack, &stub_cartridge_read_response__get_packed_size); @@ -97,19 +79,8 @@ void Stub_CartridgeWriteRequest(MessageContainer* requestContainer) //request->cartridgeversion //request->cartridgedata //request->cartridgeused -/* - writeLine("Cartridge Request: "); - - writeFloat(request->cartridgeid); - writeString(", "); - writeFloat(request->cartridgecolor); - writeString(", "); - writeFloat(request->cartridgeversion); - writeString(", "); - writeFloat(request->cartridgedata); - writeString(", "); - writeFloat(request->cartridgeused); -*/ + + StubCartridgeWriteResponse response = STUB_CARTRIDGE_WRITE_RESPONSE__INIT; response.cartridgeid = request->cartridgeid; @@ -120,13 +91,7 @@ void Stub_CartridgeWriteRequest(MessageContainer* requestContainer) // response.statusword = OK; // response.has_statusword = true; status_response(status,&response.status, &response.statusword ,&response.has_statusword); -/* - writeLine("Sending Response: "); - writeFloat(response.cartridgeid); - writeString(", ");*/ -// writeFloat(response.statusword); -// WRITELINESTATUS; Write_status_response(status); responseContainer = createContainer(MESSAGE_TYPE__StubCartridgeWriteResponse, requestContainer->token, true, &response, &stub_cartridge_write_response__pack, &stub_cartridge_write_response__get_packed_size); diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c index 7b95c9c4d..79eacf9b3 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c @@ -303,12 +303,12 @@ void JobAbortFunc(MessageContainer* requestContainer) free(responseContainer.data.data); SendChars((char*)container_buffer, container_size); abort_job_request__free_unpacked(request,NULL); - //We keep the job request until it is done - if (CurrentJobRequest!= NULL) - job_request__free_unpacked(CurrentJobRequest,NULL); JobAbortedByUser = true; EndState(CurrentJob, "Job Aborted by user"); CurrentJob = NULL; + //We keep the job request until it is done + if (CurrentJobRequest!= NULL) + job_request__free_unpacked(CurrentJobRequest,NULL); CurrentJobRequest = NULL; -- cgit v1.3.1 From db3dc558ec5fe5f3584081795865cd22f912da7d Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Sun, 26 Aug 2018 10:54:35 +0300 Subject: Set Digital request --- .../Embedded_SW/Embedded/Communication/Container.c | 3 ++ .../Modules/Stubs_Handler/Stub_Cartridge.c | 43 +++------------------- 2 files changed, 8 insertions(+), 38 deletions(-) (limited to 'Software/Embedded_SW') diff --git a/Software/Embedded_SW/Embedded/Communication/Container.c b/Software/Embedded_SW/Embedded/Communication/Container.c index 74c64b8b5..96f5b6a3e 100644 --- a/Software/Embedded_SW/Embedded/Communication/Container.c +++ b/Software/Embedded_SW/Embedded/Communication/Container.c @@ -281,6 +281,9 @@ void receive_callback(char* buffer, size_t length) case MESSAGE_TYPE__SetComponentValueRequest: SetComponentValueRequestRequestFunc(requestContainer); break; + case MESSAGE_TYPE__SetDigitalOutRequest: + SetDigitalOutRequestRequestFunc(requestContainer); + break; case MESSAGE_TYPE__StubI2CReadBytesRequest: Stub_I2CReadBytesRequest(requestContainer); break; diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c index 68b79edeb..6203b40cc 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c @@ -12,7 +12,7 @@ #include "Drivers/USB_Communication/USBCDCD.h" -//#include "drivers/twine_graphicslib/graphics_adapter.h" + #include "Stub_Status.h" @@ -25,10 +25,6 @@ void Stub_CartridgeReadRequest(MessageContainer* requestContainer) //request->cartridgeid - //writeLine("cartridge Request: "); - - //writeFloat(request->cartridgeid); - /* int i; for( i=0;i<8;i++) @@ -57,20 +53,8 @@ void Stub_CartridgeReadRequest(MessageContainer* requestContainer) response.has_cartridgeused = false; status_response(status,&response.status, &response.statusword ,&response.has_statusword); -/* - writeLine("Sending Response: "); - - writeFloat(response.cartridgeid); - writeString(", "); - writeFloat(response.cartridgecolor); - writeString(", "); - writeFloat(response.cartridgeversion); - writeString(", "); - writeFloat(response.cartridgedata); - writeString(", "); - writeFloat(response.cartridgeused); - writeString(", "); -*/ + + Write_status_response(status); responseContainer = createContainer(MESSAGE_TYPE__StubCartridgeReadResponse, requestContainer->token, true, &response, &stub_cartridge_read_response__pack, &stub_cartridge_read_response__get_packed_size); @@ -97,19 +81,8 @@ void Stub_CartridgeWriteRequest(MessageContainer* requestContainer) //request->cartridgeversion //request->cartridgedata //request->cartridgeused -/* - writeLine("Cartridge Request: "); - - writeFloat(request->cartridgeid); - writeString(", "); - writeFloat(request->cartridgecolor); - writeString(", "); - writeFloat(request->cartridgeversion); - writeString(", "); - writeFloat(request->cartridgedata); - writeString(", "); - writeFloat(request->cartridgeused); -*/ + + StubCartridgeWriteResponse response = STUB_CARTRIDGE_WRITE_RESPONSE__INIT; response.cartridgeid = request->cartridgeid; @@ -120,13 +93,7 @@ void Stub_CartridgeWriteRequest(MessageContainer* requestContainer) // response.statusword = OK; // response.has_statusword = true; status_response(status,&response.status, &response.statusword ,&response.has_statusword); -/* - writeLine("Sending Response: "); - writeFloat(response.cartridgeid); - writeString(", ");*/ -// writeFloat(response.statusword); -// WRITELINESTATUS; Write_status_response(status); responseContainer = createContainer(MESSAGE_TYPE__StubCartridgeWriteResponse, requestContainer->token, true, &response, &stub_cartridge_write_response__pack, &stub_cartridge_write_response__get_packed_size); -- cgit v1.3.1 From adac7c57abd94534ef8037ba5748712864605969 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Sun, 26 Aug 2018 12:24:58 +0300 Subject: send dancer/motor data all the time --- .../Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'Software/Embedded_SW') diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c index 1eabcdeba..b95b35eb2 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c @@ -180,7 +180,7 @@ void DiagnosticLoadTemperature(int HeaterId, int temperature) } void DiagnosticLoadSpeedSensor(uint32_t value) { - SpeedValue[SpeedCounterIndex] = value/100; + SpeedValue[SpeedCounterIndex] = value; SpeedCounterIndex++; if (SpeedCounterIndex>=DIAGNOSTICS_DANCER_LIMIT ) SpeedCounterIndex = 0; @@ -202,8 +202,8 @@ void DiagnosticTenMsecCollection(void) { if (DiagnosticsActive == false) return; - if (JobIsActive()== false) - return; + /*if (JobIsActive()== false) + return;*/ DiagnosticLoadDancer(WINDER_DANCER,Control_Read_Dancer_Position(WINDER_DANCER, 0,0)); DiagnosticLoadDancer(POOLER_DANCER,Control_Read_Dancer_Position(POOLER_DANCER, 0,0)); DiagnosticLoadDancer(FEEDER_DANCER,Control_Read_Dancer_Position(FEEDER_DANCER, 0,0)); @@ -220,7 +220,7 @@ void Diagnostic100msecCollection(void) // dancer2angle[DiagnosticsIndex] = Control_Read_Dancer_Position(POOLER_DANCER, 0,0); // dancer3angle[DiagnosticsIndex] = Control_Read_Dancer_Position(FEEDER_DANCER, 0,0); - if (JobIsActive()) + //if (JobIsActive()) { /* DiagnosticLoadMotor(FEEDER_MOTOR, MotorGetSpeed (HARDWARE_MOTOR_TYPE__MOTO_RDRIVING)); ThreadGetMotorSpeed DiagnosticLoadMotor(DRYER_MOTOR, MotorGetSpeed (HARDWARE_MOTOR_TYPE__MOTO_DRYER_DRIVING)); @@ -320,7 +320,7 @@ void SendDiagnostics(void) - if (JobIsActive()) + //if (JobIsActive()) { DiagnosticsMonitor.n_dispenser1motorfrequency = DiagnosticsIndex; DiagnosticsMonitor.n_dispenser2motorfrequency = DiagnosticsIndex; @@ -347,7 +347,7 @@ void SendDiagnostics(void) DiagnosticsMonitor.dancer2angle = dancer2angle; DiagnosticsMonitor.dancer3angle = dancer3angle; */ - if (JobIsActive()) + //if (JobIsActive()) { DiagnosticsMonitor.n_dancer1angle = DancerCounterIndex[0]; DiagnosticsMonitor.n_dancer2angle = DancerCounterIndex[1]; -- cgit v1.3.1 From 1fdc92d718ee8e0087b5846e54bbff983ef27d39 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Sun, 26 Aug 2018 14:28:37 +0300 Subject: read real time stub --- .../Embedded/Modules/Diagnostics/Diagnostics.c | 10 +- .../Modules/Stubs_Handler/StubRealTimeUsage.c | 14 ++- Software/Stubs Collection/stubs/2Way_Valves_new.cs | 102 +++++++++++++++++++++ Software/Stubs Collection/stubs/Blower.cs | 37 ++++++++ Software/Stubs Collection/stubs/I2C_scanner.c | 38 ++++++++ Software/Stubs Collection/stubs/Midtank_Valves.cs | 74 +++++++++++++++ .../stubs/New Text Document (2).txt | 0 .../Stubs Collection/stubs/New Text Document.txt | 0 Software/Stubs Collection/stubs/SSR4_control.cs | 20 ++++ .../Stubs Collection/stubs/calculate - Copy.cs | 22 ----- Software/Stubs Collection/stubs/read real time.cs | 30 ++++++ Software/Stubs Collection/stubs/stubs.zip | Bin 101506 -> 0 bytes 12 files changed, 315 insertions(+), 32 deletions(-) create mode 100644 Software/Stubs Collection/stubs/2Way_Valves_new.cs create mode 100644 Software/Stubs Collection/stubs/Blower.cs create mode 100644 Software/Stubs Collection/stubs/I2C_scanner.c create mode 100644 Software/Stubs Collection/stubs/Midtank_Valves.cs delete mode 100644 Software/Stubs Collection/stubs/New Text Document (2).txt delete mode 100644 Software/Stubs Collection/stubs/New Text Document.txt create mode 100644 Software/Stubs Collection/stubs/SSR4_control.cs delete mode 100644 Software/Stubs Collection/stubs/calculate - Copy.cs create mode 100644 Software/Stubs Collection/stubs/read real time.cs delete mode 100644 Software/Stubs Collection/stubs/stubs.zip (limited to 'Software/Embedded_SW') diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c index 1eabcdeba..1bce3a39d 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c @@ -180,7 +180,7 @@ void DiagnosticLoadTemperature(int HeaterId, int temperature) } void DiagnosticLoadSpeedSensor(uint32_t value) { - SpeedValue[SpeedCounterIndex] = value/100; + SpeedValue[SpeedCounterIndex] = value; SpeedCounterIndex++; if (SpeedCounterIndex>=DIAGNOSTICS_DANCER_LIMIT ) SpeedCounterIndex = 0; @@ -401,7 +401,7 @@ void SendDiagnostics(void) int i; DiagnosticsMonitor.n_dispensersmotorsfrequency = 0; - /* + /**/ if (JobIsActive()) { j++; @@ -418,9 +418,9 @@ void SendDiagnostics(void) } } } - */ + /**/ DiagnosticsMonitor.n_dispenserspressure = 0; - /* + /**/ DiagnosticsMonitor.n_dispenserspressure = MAX_SYSTEM_DISPENSERS; if (DiagnosticsMonitor.dispenserspressure) { @@ -433,7 +433,7 @@ void SendDiagnostics(void) DiagnosticsMonitor.dispenserspressure[i] = &DiagnosticsDispenserPressure[i]; } } -*/ + /**/ DiagnosticsMonitor.n_dispenserslinearpositions = 0; DiagnosticsMonitor.n_dispensersangularencoders = 0; diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c index 997d67973..22c8432b6 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c @@ -46,20 +46,24 @@ void Stub_RealTimeUsageRequest(MessageContainer* requestContainer) StubRealTimeUsageResponse response = STUB_REAL_TIME_USAGE_RESPONSE__INIT; - responseContainer = createContainer(MESSAGE_TYPE__StubRealTimeUsageResponse, requestContainer->token, true, &response, &stub_real_time_usage_response__pack, &stub_real_time_usage_response__get_packed_size); uint32_t Percentile[101] = {0}; - IdleTaskGetLoadTable(Percentile); response.n_percentile = 100; - response.percentile = Percentile; + response.percentile = malloc(sizeof(response.percentile)*response.n_percentile); + if (response.percentile) + IdleTaskGetLoadTable(response.percentile); + else + response.n_percentile = 0; //free(request); //------------------------------------------------------------------------------------------- + responseContainer = createContainer(MESSAGE_TYPE__StubRealTimeUsageResponse, requestContainer->token, true, &response, &stub_real_time_usage_response__pack, &stub_real_time_usage_response__get_packed_size); uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer)); size_t container_size = message_container__pack(&responseContainer, container_buffer); free(responseContainer.data.data); SendChars((char*)container_buffer, container_size); - //free(container_buffer); - //free(requestContainer); + if (response.percentile) + free(response.percentile); + stub_real_time_usage_request__free_unpacked(request,NULL); } diff --git a/Software/Stubs Collection/stubs/2Way_Valves_new.cs b/Software/Stubs Collection/stubs/2Way_Valves_new.cs new file mode 100644 index 000000000..22fa91ca1 --- /dev/null +++ b/Software/Stubs Collection/stubs/2Way_Valves_new.cs @@ -0,0 +1,102 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +const Int32 FPGA3 = 0x60000800; +const Int32 F3_VALVE_OUT = 0x0E2; + +/* + +7 8 +5 6 +3 4 +1 2 +FRONT + +*/ + +const Int32 MIDTANK2MANIF4_VALVE_2 = 1 << 0;//8 +const Int32 MIDTANK2MANIF4_VALVE_1 = 1 << 1;//4 +const Int32 MIDTANK2MANIF3_VALVE_2 = 1 << 2;//7 +const Int32 MIDTANK2MANIF3_VALVE_1 = 1 << 3;//3 +const Int32 MIDTANK2MANIF2_VALVE_2 = 1 << 4;//6 +const Int32 MIDTANK2MANIF2_VALVE_1 = 1 << 5;//2 +const Int32 MIDTANK2MANIF1_VALVE_2 = 1 << 6;//5 +const Int32 MIDTANK2MANIF1_VALVE_1 = 1 << 7;//1 + +const Int32 CART2MIDTANK4_VALVE_2 = 1 << 8 ;//8 +const Int32 CART2MIDTANK4_VALVE_1 = 1 << 9 ;//4 +const Int32 CART2MIDTANK3_VALVE_2 = 1 << 10;//7 +const Int32 CART2MIDTANK3_VALVE_1 = 1 << 11;//3 +const Int32 CART2MIDTANK2_VALVE_2 = 1 << 12;//6 +const Int32 CART2MIDTANK2_VALVE_1 = 1 << 13;//2 +const Int32 CART2MIDTANK1_VALVE_2 = 1 << 14;//5 +const Int32 CART2MIDTANK1_VALVE_1 = 1 << 15;//1 + + +public void OnExecute(StubManager stubManager) +{ + int MidTank_No = 0; + + var response = stubManager.ShowResponseWindow("Enter Midtank number to OPEN the 2Way valves (1-8), \nOr '0' to CLOSE all :", ""); + stubManager.Write("\n"); + MidTank_No = int.Parse(response); + + switch (MidTank_No) + { + case 1: + stubManager.Run("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK1_VALVE_1); + stubManager.Run("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF1_VALVE_1); + break; + case 2: + stubManager.Run("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK2_VALVE_1); + stubManager.Run("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF2_VALVE_1); + break; + case 3: + stubManager.Run("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK3_VALVE_1); + stubManager.Run("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF3_VALVE_1); + break; + case 4: + stubManager.Run("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK4_VALVE_1); + stubManager.Run("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF4_VALVE_1); + break; + case 5: + stubManager.Run("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK1_VALVE_2); + stubManager.Run("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF1_VALVE_2); + break; + case 6: + stubManager.Run("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK2_VALVE_2); + stubManager.Run("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF2_VALVE_2); + break; + case 7: + stubManager.Run("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK3_VALVE_2); + stubManager.Run("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF3_VALVE_2); + break; + case 8: + stubManager.Run("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK4_VALVE_2); + stubManager.Run("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF4_VALVE_2); + break; + default: + stubManager.Run("StubFpgaWriteRegRequest" ,FPGA3 + F3_VALVE_OUT, 0); // OFF + break; + } + + if(MidTank_No > 0 && MidTank_No < 9) + { + stubManager.Write("Open Valves #"); + stubManager.Write(MidTank_No); + stubManager.Write("\n"); + } + else + { + stubManager.WriteLine("Close all Valves !"); + } +} diff --git a/Software/Stubs Collection/stubs/Blower.cs b/Software/Stubs Collection/stubs/Blower.cs new file mode 100644 index 000000000..55ee6a943 --- /dev/null +++ b/Software/Stubs Collection/stubs/Blower.cs @@ -0,0 +1,37 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +//---------------------- +const Int32 I2C_ID = 2; +const Int32 I2C_Slave_Add = 0x98; +//---------------------- + +public void OnExecute(StubManager stubManager) +{ + + // --------------------- I2C write multibyte --------------------- + StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); + stubI2CWriteBytesRequest.I2CId = I2C_ID; + stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; + + UInt32 uInt32 = new UInt32(); + stubI2CWriteBytesRequest.BytesTWrite.Add(0x30);//AD5691R_CMD_WRITE_INPUT_N_UPDATE_REG + stubI2CWriteBytesRequest.BytesTWrite.Add(0xff);//0 (0V) - 0xFF (8V) + stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);// + + + var response = stubManager.Run(stubI2CWriteBytesRequest); + + + + +} \ No newline at end of file diff --git a/Software/Stubs Collection/stubs/I2C_scanner.c b/Software/Stubs Collection/stubs/I2C_scanner.c new file mode 100644 index 000000000..f7e87506c --- /dev/null +++ b/Software/Stubs Collection/stubs/I2C_scanner.c @@ -0,0 +1,38 @@ +// I2C scanner by Nick Gammon. Thanks Nick. + +#include + +void setup() { + Serial.begin (115200); //*********** make sure serial monitor baud matches ********** + + // Leonardo: wait for serial port to connect + while (!Serial) + { + } + + Serial.println (); + Serial.println ("I2C scanner. Scanning ..."); + byte count = 0; + + Wire.begin(); + for (byte i = 1; i < 120; i++) + { + Wire.beginTransmission (i); + if (Wire.endTransmission () == 0) + { + Serial.print ("Found address: "); + Serial.print (i, DEC); + Serial.print (" (0x"); + Serial.print (i, HEX); + Serial.println (")"); + count++; + delay (1); // maybe unneeded? + } // end of good response + } // end of for loop + Serial.println ("Done."); + Serial.print ("Found "); + Serial.print (count, DEC); + Serial.println (" device(s)."); +} // end of setup + +void loop() {} diff --git a/Software/Stubs Collection/stubs/Midtank_Valves.cs b/Software/Stubs Collection/stubs/Midtank_Valves.cs new file mode 100644 index 000000000..f99d08d88 --- /dev/null +++ b/Software/Stubs Collection/stubs/Midtank_Valves.cs @@ -0,0 +1,74 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +include "..\..\Defines\Tango_Defines_Basic.cs" +include "..\Defines\Tango_Defines_GPO.cs" +//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs" +//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_GPO.cs" + + +public void OnExecute(StubManager stubManager) +{ + int midtankno = 0; + + var response = stubManager.ShowResponseWindow("Enter Midtank number to test (1-8):", ""); + //stubManager.WriteLine(response); + stubManager.Write("\n"); + midtankno = int.Parse(response); + +switch (midtankno) + { + case 1: + midtankno=1; + break; + case 2: + midtankno=3; + break; + case 3: + midtankno=5; + break; + case 4: + midtankno=7; + break; + case 5: + midtankno=2; + break; + case 6: + midtankno=4; + break; + case 7: + midtankno=6; + break; + case 8: + midtankno=8; + break; + + } + + + + SetBit (FPGA3, F3_VALVE_OUT,8- midtankno, 1); + stubManager.Write("\n\nSetting GPO F3_VALVE_OUT, bit "); stubManager.Write(8-midtankno); stubManager.Write(", "); stubManager.Write(F3_VALVE_Bits[8-midtankno]); + Thread.Sleep(1000); + SetBit (FPGA3, F3_VALVE_OUT,8- midtankno, 0); + stubManager.Write("\nClearing GPO F3_VALVE_OUT, bit "); stubManager.Write(8-midtankno); stubManager.Write(", "); stubManager.Write(F3_VALVE_Bits[8-midtankno]); + Thread.Sleep(1000); + + SetBit (FPGA3, F3_VALVE_OUT, 16-midtankno, 1); + stubManager.Write("\n\nSetting GPO F3_VALVE_OUT, bit "); stubManager.Write(16-midtankno); stubManager.Write(", "); stubManager.Write(F3_VALVE_Bits[16-midtankno]); + Thread.Sleep(1000); + SetBit (FPGA3, F3_VALVE_OUT, 16-midtankno, 0); + stubManager.Write("\nClearing GPO F3_VALVE_OUT, bit "); stubManager.Write(16-midtankno); stubManager.Write(", "); stubManager.Write(F3_VALVE_Bits[16-midtankno]); + Thread.Sleep(1000); + + +} \ No newline at end of file diff --git a/Software/Stubs Collection/stubs/New Text Document (2).txt b/Software/Stubs Collection/stubs/New Text Document (2).txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/Software/Stubs Collection/stubs/New Text Document.txt b/Software/Stubs Collection/stubs/New Text Document.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/Software/Stubs Collection/stubs/SSR4_control.cs b/Software/Stubs Collection/stubs/SSR4_control.cs new file mode 100644 index 000000000..049fb3dff --- /dev/null +++ b/Software/Stubs Collection/stubs/SSR4_control.cs @@ -0,0 +1,20 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +const Int32 SSR_REG = 0x80; + +public void OnExecute(StubManager stubManager) +{ + stubManager.Run("StubFpgaWriteRegRequest" ,0x60000400 | 0x0E2, SSR_REG); // turn ON SSR4 + + //stubManager.Run("StubFpgaWriteRegRequest" ,0x60000400 | 0x0E2, 0x0000); // turn OFF SSR_REG +} \ No newline at end of file diff --git a/Software/Stubs Collection/stubs/calculate - Copy.cs b/Software/Stubs Collection/stubs/calculate - Copy.cs deleted file mode 100644 index 22a83dd2d..000000000 --- a/Software/Stubs Collection/stubs/calculate - Copy.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.Stubs.UI; - -public void OnExecute(StubManager stubManager) -{ - for (int i = 0; i < 10; i++) - { - // Double : A - // Double : B - stubManager.Run("calculate", 10, 5); - Thread.Sleep(10); - } -} - diff --git a/Software/Stubs Collection/stubs/read real time.cs b/Software/Stubs Collection/stubs/read real time.cs new file mode 100644 index 000000000..51d0b570a --- /dev/null +++ b/Software/Stubs Collection/stubs/read real time.cs @@ -0,0 +1,30 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + //for (int i = 0; i < 10; i++) + { + var response = stubManager.Run("StubRealTimeUsageRequest"); + for (int i = 0; i < 100; i++) + { + if (response.Percentile[i]>0) + { + stubManager.Write("\r\n "); + stubManager.Write( i); + stubManager.Write(" "); + stubManager.Write(response.Percentile[i]); + } + } + + } +} \ No newline at end of file diff --git a/Software/Stubs Collection/stubs/stubs.zip b/Software/Stubs Collection/stubs/stubs.zip deleted file mode 100644 index 9b8a98765..000000000 Binary files a/Software/Stubs Collection/stubs/stubs.zip and /dev/null differ -- cgit v1.3.1 From d3ec83acd93eb8338f3d846e9e3c1bedfb480ce1 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Sun, 26 Aug 2018 16:41:06 +0300 Subject: added data on idle time --- Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Software/Embedded_SW') diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c index 9e15771be..a85e1cfde 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c @@ -402,7 +402,7 @@ void SendDiagnostics(void) int i; DiagnosticsMonitor.n_dispensersmotorsfrequency = 0; /**/ - if (JobIsActive()) + //if (JobIsActive()) { j++; DiagnosticsMonitor.n_dispensersmotorsfrequency = MAX_SYSTEM_DISPENSERS; -- cgit v1.3.1