aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-06-19 18:01:35 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-06-19 18:01:35 +0300
commita1834062fe893548a75c091392c8018bfade317c (patch)
tree9b50ea92e2a371726c84656c8b0207addb6633be /Software/Embedded_SW/Embedded
parent3a82a6656c9117f94e78dbb33805fdaf49a5531c (diff)
parent8cfb005e1a103a15047c00e1fd63aa8408940985 (diff)
downloadTango-a1834062fe893548a75c091392c8018bfade317c.tar.gz
Tango-a1834062fe893548a75c091392c8018bfade317c.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded')
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c6
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c30
-rw-r--r--Software/Embedded_SW/Embedded/Main.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c8
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c7
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Valve.c3
7 files changed, 36 insertions, 22 deletions
diff --git a/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c b/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c
index 2f4afed73..ac2463f9e 100644
--- a/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c
+++ b/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c
@@ -360,7 +360,7 @@ uint32_t MotorMoveWithCallback (TimerMotors_t _motorId,bool direction, uint32_t
//SetMotorSpeed (deviceId, parameter);
MotorMoveModuleCallback[_motorId] = callback;
- MotorStop(_motorId,2 );
+ MotorStop(_motorId,Hard_Hiz );
MotorMove(_motorId,direction,Steps );
MotorMoveControlId[_motorId] = AddControlCallback( MotorMoveCallBackFunction, eTenMilliSecond, MotorControlGetnBusyState,(IfTypeMotors*0x100+_motorId), _motorId, 0 );
return MotorMoveControlId[_motorId];
@@ -434,7 +434,7 @@ uint32_t MotorMoveToLimitSwitchCallBackFunction(uint32_t IfIndex, bool LimitSwit
LOG_ERROR (IfIndex, "Wrong Interface type");
return 0xFFFFFFFF;
}
- MotorId = IfIndex&0xFF;
+ MotorId = (TimerMotors_t)(IfIndex&0xFF);
if (MotorMovetoLimitSwitchControlId[MotorId] == 0xFF)
return ERROR;
@@ -470,6 +470,6 @@ uint32_t MotorMovetoLimitSwitch (TimerMotors_t _motorId,bool direction, uint32_t
MotorMovetoLimitSwitchControlId[_motorId] = AddControlCallback( MotorMoveToLimitSwitchCallBackFunction, eOneMillisecond , FPGA_Read_limit_Switches,(IfTypeMotors*0x100+_motorId), LimitSwitchId, 0 );
MotorMovetoLimitSwitchCallback[_motorId] = callback;
- return MotorMoveControlId;
+ return (uint32_t)MotorMoveControlId;
}
diff --git a/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c b/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c
index 4056f0175..c6b6f936b 100644
--- a/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c
+++ b/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c
@@ -154,14 +154,14 @@ void Valve_Command(Valves_t Valve_Id)
if ((Valve_Id == VALVE_WASTE_TANK) | (Valve_Id == VALVE_MIXCHIP_WASTECH)) // Waste Valves
{
- F1_gpo_01 |= F1_GPO_Reg.ushort;
+ F1_gpo_01 = F1_GPO_Reg.ushort;
}
else if(/*(Valve_Id >= VALVE_DISPENSER_1) |*/ (Valve_Id <= VALVE_DISPENSER_8))
{
- F2_DISPENSER_VALVE_OUT |= Dispenser_Valve_GPO_Reg.ushort;
+ F2_DISPENSER_VALVE_OUT = Dispenser_Valve_GPO_Reg.ushort;
}
else
- F3_VALVE_OUT |= Valve_GPO_Reg.ushort;
+ F3_VALVE_OUT = Valve_GPO_Reg.ushort;
}
@@ -264,7 +264,7 @@ void EnableDisableDispenserValve(Valves_t Valve_Id, bool EnableOrDisable )
break;
}
- F2_DISPENSER_VALVE_OUT |= Dispenser_Valve_GPO_Reg.ushort;
+ F2_DISPENSER_VALVE_OUT = Dispenser_Valve_GPO_Reg.ushort;
}
//
@@ -297,6 +297,7 @@ bool Valve3WayGetBusyState(uint32_t _ValveId, uint32_t parameter)
//Internal handling
uint32_t Valve3WayCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag)
{
+ bool Busy;
uint32_t ValveId;
if (IfIndex>>8 != IfTypeDisopenser)
{
@@ -305,8 +306,11 @@ uint32_t Valve3WayCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag)
}
ValveId = IfIndex&0xFF;
- if (BusyFlag == NOTBUSY)
+ Busy = Valve3WayGetBusyState(ValveId, 0);
+
+ if (Busy == NOTBUSY)
{
+ EnableDisableDispenserValve((Valves_t)ValveId, DISABLE);
//stop this control loop
RemoveControlCallback(Valve3WayControlId[ValveId], Valve3WayCallBackFunction );
@@ -321,22 +325,28 @@ uint32_t Valve3WayCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag)
//External call
uint32_t Control3WayValvesWithCallback (Valves_t _ValveId, bool direction, callback_fptr callback) //direction: MidTank_Dispenser or Dispenser_Mixer
{
- uint8_t delay;
- assert (callback);
Valve3WayModuleCallback[_ValveId] = callback;
EnableDisableDispenserValve(_ValveId, ENABLE);
- for(delay=0;delay<100;delay++);//Need Small delay (0.1-1)ms
+ SysCtlDelay(1);//Need Small delay (0.1-1)ms
Valve_Set(_ValveId, direction);
Valve3WayControlId[_ValveId] = AddControlCallback( Valve3WayCallBackFunction, eTenMilliSecond, FPGA_GetDispenserValveBusyOCD,(IfTypeDisopenser*0x100+_ValveId), _ValveId, 0 );
- EnableDisableDispenserValve(_ValveId, DISABLE);
-
return Valve3WayControlId[_ValveId];
}
+void test_valve_3_way(Valves_t _ValveId, bool direction)
+{
+
+ static bool dir= 1;
+
+ EnableDisableDispenserValve(_ValveId, ENABLE );
+ SysCtlDelay(10);
+ Valve_Set(_ValveId, direction);
+ dir = dir ^ 0x01;
+}
diff --git a/Software/Embedded_SW/Embedded/Main.c b/Software/Embedded_SW/Embedded/Main.c
index 8ec2008a7..5dac2717b 100644
--- a/Software/Embedded_SW/Embedded/Main.c
+++ b/Software/Embedded_SW/Embedded/Main.c
@@ -196,7 +196,7 @@ int main(void)
IDLE_TASK_package_init();
- //ControlStart();
+ ControlStart();
BIOS_start();
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c
index 81efa5662..d3d549063 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c
@@ -18,7 +18,7 @@
HardwareDispenser DispensersCfg[ MAX_SYSTEM_DISPENSERS];
-uint32_t DispenserIdToMotorId[MAX_SYSTEM_DISPENSERS] = {HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_1,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_2,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_3,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_4,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_5,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_6,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_7,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_8};
+TimerMotors_t DispenserIdToMotorId[MAX_SYSTEM_DISPENSERS] = {HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_1,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_2,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_3,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_4,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_5,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_6,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_7,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_8};
float DispenserPressure[MAX_SYSTEM_DISPENSERS] = {0};
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
index 0374cf639..f44f2d790 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
@@ -49,7 +49,7 @@ int JobBrushStopId = 0;
uint32_t IDS_DispenserPidRequestMessage(HardwarePidControl* request)
{
int Dispenser_i,i;
- int temp;
+ //int temp;
for (i=0;i<MAX_SYSTEM_DISPENSERS;i++)
{
if (ThreadDispenserIdToControlId[i] == request->hardwarepidcontroltype)
@@ -162,11 +162,11 @@ uint32_t IDS_DispenserPidRequestMessage(HardwarePidControl* request)
{
if (DispenserPreSegmentReady[i] == false)
{
- return; //not all configured heaters are ready
+ return OK; //not all configured heaters are ready
}
}
PreSegmentReady(Module_IDS,ModuleDone);
-
+ return OK; // all configured heaters are ready
}
uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId)
{
@@ -174,8 +174,6 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId)
JobTicket* JobTicket = JobDetails;
int Dispenser_i;
TimerMotors_t HW_Motor_Id;
- int segmentfirst_speed;
- int CurrentSegment = 0;
JobBrushStopId = 0;
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 ff545b516..81f147039 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c
@@ -193,7 +193,9 @@ void Stub_MotorRunRequest(MessageContainer* requestContainer)
{
//uint32_t status = FAILED;
+#ifdef EVALUATION_BOARD
uint32_t read_status;
+#endif
MessageContainer responseContainer;
@@ -278,7 +280,7 @@ void Stub_MotorRunRequest(MessageContainer* requestContainer)
void Stub_MotorStopRequest(MessageContainer* requestContainer)
{
- uint32_t read_status;
+ //uint32_t read_status;
//uint32_t status = FAILED;
MessageContainer responseContainer;
@@ -555,8 +557,9 @@ void Stub_MotorPositionRequest(MessageContainer* requestContainer)
void Stub_MotorMovRequest(MessageContainer* requestContainer)
{
+#ifdef EVALUATION_BOARD
uint32_t read_status;
-
+#endif
MessageContainer responseContainer;
StubMotorMovRequest* request = stub_motor_mov_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Valve.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Valve.c
index 35dab1c27..cd53c5208 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Valve.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Valve.c
@@ -39,6 +39,9 @@ void Stub_ValveRequest(MessageContainer* requestContainer)
writeString(", ");
writeFloat(request->valveon);
+ Control3WayValvesWithCallback (request->valveid, request->valveon, NULL);
+ //test_valve_3_way(request->valveid, request->valveon);
+
StubValveResponse response = STUB_VALVE_RESPONSE__INIT;
status_response(status,&response.status, &response.statusword ,&response.has_statusword);