aboutsummaryrefslogtreecommitdiffstats
path: root/Software
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-08-26 20:16:36 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-08-26 20:16:36 +0300
commitffcb06ec20597465cdbe62040bacfb4bfc7d5de0 (patch)
treea04dc382c38a8e18efb5957226a2af9d2b552296 /Software
parente263a67205beca03687895166cf462f07f24187f (diff)
parentd3ec83acd93eb8338f3d846e9e3c1bedfb480ce1 (diff)
downloadTango-ffcb06ec20597465cdbe62040bacfb4bfc7d5de0.tar.gz
Tango-ffcb06ec20597465cdbe62040bacfb4bfc7d5de0.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software')
-rw-r--r--Software/Embedded_SW/Embedded/Communication/Container.c3
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_SPI_Comm.c4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c124
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c14
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c39
-rw-r--r--Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c6
-rw-r--r--Software/Stubs Collection/stubs/2Way_Valves_new.cs102
-rw-r--r--Software/Stubs Collection/stubs/Blower.cs37
-rw-r--r--Software/Stubs Collection/stubs/I2C_scanner.c38
-rw-r--r--Software/Stubs Collection/stubs/Midtank_Valves.cs74
-rw-r--r--Software/Stubs Collection/stubs/New Text Document (2).txt0
-rw-r--r--Software/Stubs Collection/stubs/New Text Document.txt0
-rw-r--r--Software/Stubs Collection/stubs/SSR4_control.cs20
-rw-r--r--Software/Stubs Collection/stubs/calculate - Copy.cs22
-rw-r--r--Software/Stubs Collection/stubs/read real time.cs30
-rw-r--r--Software/Stubs Collection/stubs/stubs.zipbin101506 -> 0 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj2
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs3
19 files changed, 407 insertions, 115 deletions
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/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..a85e1cfde 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; i<MAX_SYSTEM_DISPENSERS;i++)
+ {
+ double_array__init(&DispenserFreq[i]);
+ double_array__init(&DiagnosticsDispenserPressure[i]);
+ }
+
return;
}
uint8_t HeaterCounterIndex[MAX_HEATERS_NUM]= {0,0,0,0,0,0,0,0,0,0};
@@ -161,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;
@@ -183,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));
@@ -201,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));
@@ -287,11 +306,9 @@ void DiagnosticsReset(void)
DiagnosticsIndex = 0;
}
-DiagnosticsMonitors DiagnosticsMonitor = DIAGNOSTICS_MONITORS__INIT;
-//Double *DispenserFreq[MAX_SYSTEM_DISPENSERS] = {0,0,0,0,0,0,0,0};
-//Double *DiagnosticsDispenserPressure[MAX_SYSTEM_DISPENSERS] = {0,0,0,0,0,0,0,0};
-DoubleArray DispenserFreq[MAX_SYSTEM_DISPENSERS] = {DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT};
-DoubleArray DiagnosticsDispenserPressure[MAX_SYSTEM_DISPENSERS] = {DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT,DOUBLE_ARRAY__INIT};
+int j=0;
+MessageContainer diagnosticsresponseContainer;
+uint8_t* diagnosticscontainer_buffer;
void SendDiagnostics(void)
{
MessageContainer responseContainer;
@@ -303,7 +320,7 @@ void SendDiagnostics(void)
- if (JobIsActive())
+ //if (JobIsActive())
{
DiagnosticsMonitor.n_dispenser1motorfrequency = DiagnosticsIndex;
DiagnosticsMonitor.n_dispenser2motorfrequency = DiagnosticsIndex;
@@ -330,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];
@@ -382,34 +399,43 @@ void SendDiagnostics(void)
DiagnosticsMonitor.blowervoltage = &voltage;
memset(HeaterCounterIndex,0,sizeof(HeaterCounterIndex));
-/*
- if (JobIsActive())
+ int i;
+ DiagnosticsMonitor.n_dispensersmotorsfrequency = 0;
+ /**/
+ //if (JobIsActive())
{
-
+ j++;
DiagnosticsMonitor.n_dispensersmotorsfrequency = MAX_SYSTEM_DISPENSERS;
- DiagnosticsMonitor.dispensersmotorsfrequency = (DoubleArray**)malloc(sizeof(DoubleArray)*8);
-
- for (i = 0; i<MAX_SYSTEM_DISPENSERS;i++)
+ if (DiagnosticsMonitor.dispensersmotorsfrequency)
{
- //double_array__init(&DispenserFreq[i]);
- //DispenserFreq[i] = dispensermotorfrequency[i];
- DispenserFreq[i].data = dispensermotorfrequency[i];
- DispenserFreq[i].n_data = DiagnosticsIndex;
- DiagnosticsMonitor.dispensersmotorsfrequency[i] = &DispenserFreq[i];
+ for (i = 0; i<MAX_SYSTEM_DISPENSERS;i++)
+ {
+ //double_array__init(&DispenserFreq[i]);
+ //DispenserFreq[i] = dispensermotorfrequency[i];
+ DispenserFreq[i].data = dispensermotorfrequency[i];
+ DispenserFreq[i].n_data = DiagnosticsIndex;
+ DiagnosticsMonitor.dispensersmotorsfrequency[i] = &DispenserFreq[i];
+ }
}
}
-
- DiagnosticsMonitor.n_dispenserspressure = MAX_SYSTEM_DISPENSERS;
- DiagnosticsMonitor.dispenserspressure = (DoubleArray**)malloc(sizeof(DoubleArray)*8);
- for (i = 0; i<MAX_SYSTEM_DISPENSERS;i++)
+ /**/
+ DiagnosticsMonitor.n_dispenserspressure = 0;
+ /**/
+ DiagnosticsMonitor.n_dispenserspressure = MAX_SYSTEM_DISPENSERS;
+ if (DiagnosticsMonitor.dispenserspressure)
{
- //DiagnosticsDispenserPressure[i] = dispenserspressure[i];
- //double_array__init(&DiagnosticsDispenserPressure[i]);
- DiagnosticsDispenserPressure[i].data = dispenserspressure[i];
- DiagnosticsDispenserPressure[i].n_data = DiagnosticsIndex;
- DiagnosticsMonitor.dispenserspressure[i] = &DiagnosticsDispenserPressure[i];
+ for (i = 0; i<MAX_SYSTEM_DISPENSERS;i++)
+ {
+ //DiagnosticsDispenserPressure[i] = dispenserspressure[i];
+ //double_array__init(&DiagnosticsDispenserPressure[i]);
+ DiagnosticsDispenserPressure[i].data = dispenserspressure[i];
+ DiagnosticsDispenserPressure[i].n_data = DiagnosticsIndex;
+ DiagnosticsMonitor.dispenserspressure[i] = &DiagnosticsDispenserPressure[i];
+ }
}
-*/
+ /**/
+ DiagnosticsMonitor.n_dispenserslinearpositions = 0;
+ DiagnosticsMonitor.n_dispensersangularencoders = 0;
DiagnosticsMonitor.n_dispenser1pressure = DiagnosticsIndex;
DiagnosticsMonitor.dispenser1pressure = dispenserspressure[0];
@@ -447,21 +473,29 @@ void SendDiagnostics(void)
}
}
*/
- responseContainer = createContainer(MESSAGE_TYPE__StartDiagnosticsResponse, DiagnosticsToken, false, &response, &start_diagnostics_response__pack, &start_diagnostics_response__get_packed_size);
- responseContainer.continuous = true;
-
- uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
- size_t container_size = message_container__pack(&responseContainer, container_buffer);
- free(responseContainer.data.data);
- free(DiagnosticsMonitor.dispenserspressure);
- free(DiagnosticsMonitor.dispensersmotorsfrequency);
-
- DiagnosticsReset();
+ diagnosticsresponseContainer = createContainer(MESSAGE_TYPE__StartDiagnosticsResponse, DiagnosticsToken, false, &response, &start_diagnostics_response__pack, &start_diagnostics_response__get_packed_size);
+ diagnosticsresponseContainer.continuous = true;
- if (SendChars(container_buffer, container_size) == false) //comm tx mailbox full
+ diagnosticscontainer_buffer = 0;
+ diagnosticscontainer_buffer = malloc(message_container__get_packed_size(&diagnosticsresponseContainer));
+ if (diagnosticscontainer_buffer)
{
- DiagnosticsStop();
+ size_t container_size = message_container__pack(&diagnosticsresponseContainer, diagnosticscontainer_buffer);
+ //memmap();
+ free(diagnosticsresponseContainer.data.data);
+ //free(DiagnosticsMonitor.dispenserspressure);
+ //free(DiagnosticsMonitor.dispensersmotorsfrequency);
+ if (SendChars(diagnosticscontainer_buffer, container_size) == false) //comm tx mailbox full
+ {
+ DiagnosticsStop();
+ }
}
+ else
+ {
+ LOG_ERROR(Task_self(),"malloc failed");
+ }
+ DiagnosticsReset();
+
}
uint32_t DiagnosticsControlId = 0xff;
uint32_t Diagnostics10MSControlId = 0xff;
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
index 03cdea5e9..c40d018c3 100644
--- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
@@ -240,6 +240,10 @@ uint32_t HeaterCommandRequestMessage(int HeaterId, bool OnOff, int Temperature)
}
else if ((HeaterState == HEATER_ON)&& (OnOff == HEATER_ON)) //set temperature
{
+ if (HeaterPIDConfig[HeaterId].m_SetParam < HeaterCmd[HeaterId].targettemperatue) //#bug 221
+ {
+ PrepareHeater(HeaterId,Temperature); //prepare the heaters control info
+ }
HeaterPIDConfig[HeaterId].m_SetParam = HeaterCmd[HeaterId].targettemperatue;
// if the heater is not on return (?).
//set the target operation temperature
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/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c
index 68b79edeb..6bd4e6f48 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c
@@ -12,8 +12,6 @@
#include "Drivers/USB_Communication/USBCDCD.h"
-//#include "drivers/twine_graphicslib/graphics_adapter.h"
-
#include "Stub_Status.h"
void Stub_CartridgeReadRequest(MessageContainer* requestContainer)
@@ -25,10 +23,6 @@ void Stub_CartridgeReadRequest(MessageContainer* requestContainer)
//request->cartridgeid
- //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;
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<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK1_VALVE_1);
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF1_VALVE_1);
+ break;
+ case 2:
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK2_VALVE_1);
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF2_VALVE_1);
+ break;
+ case 3:
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK3_VALVE_1);
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF3_VALVE_1);
+ break;
+ case 4:
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK4_VALVE_1);
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF4_VALVE_1);
+ break;
+ case 5:
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK1_VALVE_2);
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF1_VALVE_2);
+ break;
+ case 6:
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK2_VALVE_2);
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF2_VALVE_2);
+ break;
+ case 7:
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK3_VALVE_2);
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF3_VALVE_2);
+ break;
+ case 8:
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, CART2MIDTANK4_VALVE_2);
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,FPGA3 | F3_VALVE_OUT, MIDTANK2MANIF4_VALVE_2);
+ break;
+ default:
+ stubManager.Run<StubFpgaWriteRegResponse>("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<StubI2CWriteBytesResponse>(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 <Wire.h>
+
+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
--- a/Software/Stubs Collection/stubs/New Text Document (2).txt
+++ /dev/null
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
--- a/Software/Stubs Collection/stubs/New Text Document.txt
+++ /dev/null
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<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x0E2, SSR_REG); // turn ON SSR4
+
+ //stubManager.Run<StubFpgaWriteRegResponse>("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<StubRealTimeUsageResponse>("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
--- a/Software/Stubs Collection/stubs/stubs.zip
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj
index 2ac516903..bc49f6331 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj
@@ -575,7 +575,7 @@ copy /Y "$(SolutionDir)Referenced Assemblies\Microsoft.WITDataStore32.dll" "$(Ta
</Target>
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_BuildVersioningStyle="None.None.Increment.DeltaBaseYearDayOfYear" BuildVersion_UpdateFileVersion="True" BuildVersion_DetectChanges="True" BuildVersion_UseGlobalSettings="False" />
+ <UserProperties BuildVersion_UseGlobalSettings="False" BuildVersion_DetectChanges="True" BuildVersion_UpdateFileVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.DeltaBaseYearDayOfYear" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_StartDate="2000/1/1" />
</VisualStudio>
</ProjectExtensions>
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs
index c5831f701..b0279957c 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs
@@ -294,6 +294,9 @@ namespace Tango.MachineStudio.UI.ViewModels
}
}
+ //Copy new updater utility to app path.
+ File.Copy(Path.Combine(_newPackageTempFolder, "Tango.MachineStudio.Updater.exe"), Path.Combine(_appPath, "Tango.MachineStudio.Updater.exe"), true);
+
TangoIOC.Default.GetInstance<MainViewVM>().DisableCheckForUpdates = true;
Status = UpdateStatus.UpdateCompleted;
}