aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2019-11-05 15:17:41 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2019-11-05 15:17:41 +0200
commitd7650679fedebb42e5fa9d4d482d7ccf657d6ab4 (patch)
treec493dbbd56e2e3bf1260a21969e23ddaf787f375
parent4c63f73496fc60026da9e363b3e85042733b4423 (diff)
parentf4f22e7088b672797e3e95f5a5fb5a96651c861e (diff)
downloadTango-d7650679fedebb42e5fa9d4d482d7ccf657d6ab4.tar.gz
Tango-d7650679fedebb42e5fa9d4d482d7ccf657d6ab4.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
-rw-r--r--Software/Embedded_SW/Embedded/DataDef.h2
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/IO_Ports/Dispenser_IO.c11
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/IO_Ports/Dispenser_IO.h1
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c32
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/Safety.c3
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c54
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj4
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml9
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/TouchClickableControl.cs118
-rw-r--r--Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj3
11 files changed, 195 insertions, 46 deletions
diff --git a/Software/Embedded_SW/Embedded/DataDef.h b/Software/Embedded_SW/Embedded/DataDef.h
index 0ca336d58..f0c271cbf 100644
--- a/Software/Embedded_SW/Embedded/DataDef.h
+++ b/Software/Embedded_SW/Embedded/DataDef.h
@@ -143,7 +143,7 @@ enum
#define DOUBLE_BUFFER 2
-#define STOPED 0
+#define STOPPED 0
#define MOVING 1
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/IO_Ports/Dispenser_IO.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/IO_Ports/Dispenser_IO.c
index 44ee2edd0..45da809af 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/IO_Ports/Dispenser_IO.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/IO_Ports/Dispenser_IO.c
@@ -329,6 +329,17 @@ uint8_t Init_Dispensers_IO_Registers(/*TCA9534Regs* Regs*/)
return status;
}
+//first read the registers (to read every X msec…)
+uint8_t Read_SingleDispenser_IO_Registers(uint8_t Dispenser_ID/*,TCA9534Regs* Regs*/)
+{
+ uint8_t status = PASSED;
+
+ status |= TCA9534SetReadInputReg(Dispenser_ID);
+ status |= TCA9534ReadInputReg(Dispenser_ID);
+
+ return status;
+}
+
uint8_t Read_Dispensers_IO_Registers(/*TCA9534Regs* Regs*/)
{
uint8_t status = PASSED;
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/IO_Ports/Dispenser_IO.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/IO_Ports/Dispenser_IO.h
index 85e03a9ba..4ade979ea 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/IO_Ports/Dispenser_IO.h
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/IO_Ports/Dispenser_IO.h
@@ -67,6 +67,7 @@ bool Get_Notification_Bypass(uint8_t Dispenser_ID/*, TCA9534Regs* Regs*/);
uint8_t test_IO();
uint8_t Init_Dispensers_IO_Registers(/*TCA9534Regs* Regs*/);
uint8_t Read_Dispensers_IO_Registers(/*TCA9534Regs* Regs*/);
+uint8_t Read_SingleDispenser_IO_Registers(uint8_t Dispenser_ID/*,TCA9534Regs* Regs*/);
uint8_t Control_TCA9534ByPass(uint8_t Dispenser_ID, bool EnableByPass);
#endif /* DRIVERS_I2C_COMMUNICATION_DISPENSERS_IO_PORT_IO_H_ */
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c
index e1adc98ce..b7087b453 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c
@@ -435,7 +435,7 @@ uint32_t HeadCard_Actuators_Control(ACTUATORS Act_ID, bool Active_Low_Pwr, bool
uint32_t HeadCard_Actuators_Status(ACTUATORS Act_ID)//
{
- uint32_t Motioin_Status = STOPED;
+ uint32_t Motioin_Status = STOPPED;
Head_Read_IO_Reg(0x46);
@@ -448,7 +448,7 @@ uint32_t HeadCard_Actuators_Status(ACTUATORS Act_ID)//
Motioin_Status = Head_I2C_EXP4_0x46.bits.INPUT_ACTOT_EN;
}
- return Motioin_Status;//Active High STOPED/MOVEING
+ return Motioin_Status;//Active High STOPPED/MOVING
}
uint32_t HeadCard_Mixer_Over_Current_Safety_Indication()//Active low
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
index 6570ea8e0..3d230ff5a 100644
--- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
+++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
@@ -223,23 +223,23 @@ AlarmHandlingItemStruc HardCodedAlarmItem[MAX_SYSTEM_ALARMS]={
/* 8005 */ //{eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,5,5,500/*500cc*/,false,DEBUG_LOG_CATEGORY__Warning, 0xFF,2,EVENT_TYPE__MID_TANK_6_LOW_LEVEL},
/* 8006 */ //{eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,6,6,500/*500cc*/,false,DEBUG_LOG_CATEGORY__Warning, 0xFF,2,EVENT_TYPE__MID_TANK_7_LOW_LEVEL},
/* 8007 */ {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,7,7,500/*500cc*/,false,DEBUG_LOG_CATEGORY__Warning, 0xFF,2,EVENT_TYPE__MID_TANK_8_LOW_LEVEL},
-/* 8008 */ {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,0,0,200/*500cc*/,false,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_1_EMPTY},
-/* 8009 */ {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,1,1,200/*500cc*/,false,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_2_EMPTY},
-/* 8010 */ {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,2,2,200/*500cc*/,false,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_3_EMPTY},
-/* 8011 */ {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,3,3,200/*500cc*/,false,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_4_EMPTY},
-/* 8012 */ {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,4,4,200/*500cc*/,false,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_5_EMPTY},
-/* 8013 */ //{eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,5,5,20/*500cc*/,false,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_6_EMPTY},
-/* 8014 */ //{eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,6,6,20/*500cc*/,false,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_7_EMPTY},
-/* 8015 */ {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,7,7,200/*500cc*/,false,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_8_EMPTY},
+/* 8008 */ {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,0,0,200/*200cc*/,false,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_1_EMPTY},
+/* 8009 */ {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,1,1,200/*200cc*/,false,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_2_EMPTY},
+/* 8010 */ {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,2,2,200/*200cc*/,false,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_3_EMPTY},
+/* 8011 */ {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,3,3,200/*200cc*/,false,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_4_EMPTY},
+/* 8012 */ {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,4,4,200/*200cc*/,false,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_5_EMPTY},
+/* 8013 */ //{eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,5,5,200/*200cc*/,false,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_6_EMPTY},
+/* 8014 */ //{eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,6,6,200/*200cc*/,false,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_7_EMPTY},
+/* 8015 */ {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,7,7,200/*200cc*/,false,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_8_EMPTY},
- {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,0,0,1800/*1800cc*/,true,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_1_OVERFLOW},
- {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,1,1,1800/*1800cc*/,true,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_2_OVERFLOW},
- {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,2,2,1800/*1800cc*/,true,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_3_OVERFLOW},
- {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,3,3,1800/*1800cc*/,true,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_4_OVERFLOW},
- {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,4,4,1800/*1800cc*/,true,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_5_OVERFLOW},
- //{eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,5,5,1800/*1800cc*/,true,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_6_OVERFLOW},
- //{eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,6,6,1800/*1800cc*/,true,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_7_OVERFLOW},
- {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,7,7,1800/*1800cc*/,true,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_8_OVERFLOW},
+/* 8016 */ {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,0,0,1800/*1800cc*/,true,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_1_OVERFLOW},
+/* 8017 */ {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,1,1,1800/*1800cc*/,true,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_2_OVERFLOW},
+/* 8018 */ {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,2,2,1800/*1800cc*/,true,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_3_OVERFLOW},
+/* 8019 */ {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,3,3,1800/*1800cc*/,true,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_4_OVERFLOW},
+/* 8020 */ {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,4,4,1800/*1800cc*/,true,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_5_OVERFLOW},
+/* 8021 */ //{eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,5,5,1800/*1800cc*/,true,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_6_OVERFLOW},
+/* 8022 */ //{eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,6,6,1800/*1800cc*/,true,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_7_OVERFLOW},
+/* 8023 */ {eOneSecond,ALARM_SOURCE_TYPE__FluidLevelAlarm,7,7,1800/*1800cc*/,true,DEBUG_LOG_CATEGORY__Error, 0xFF,2,EVENT_TYPE__MID_TANK_8_OVERFLOW},
/* 4000 */ {eOneSecond,ALARM_SOURCE_TYPE__MotorAlarm,HARDWARE_MOTOR_TYPE__MOTO_DRYER_DRIVING,HARDWARE_MOTOR_TYPE__MOTO_DRYER_DRIVING,x_STATUS_OCD,false,DEBUG_LOG_CATEGORY__Error,0xFF,2,EVENT_TYPE__DRYER_MOTOR_OVERCURRENT },
diff --git a/Software/Embedded_SW/Embedded/Modules/General/Safety.c b/Software/Embedded_SW/Embedded/Modules/General/Safety.c
index ea2cc2e6b..73736f8d4 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/Safety.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/Safety.c
@@ -104,7 +104,8 @@ uint32_t Safety_Main_State(uint32_t IfIndex, uint32_t BusyFlag)
{
if (Check_Disp_Safety_Stop_Indication(Disp_i) == true)
{
- DispenserBypass = Get_Notification_Bypass(Disp_i);
+ Read_SingleDispenser_IO_Registers(Disp_i);
+ //DispenserBypass = Get_Notification_Bypass(Disp_i);
if(Get_Notification_Over_Press(Disp_i) == false)
{
//report dispenser over pressure
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
index f3528d4c8..db6184fdb 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
@@ -136,7 +136,7 @@ uint32_t IDS_HomeDispenserWaitForHomingEnd(uint32_t DispenserId, uint32_t timeo
DispenserBacklashControlId[DispenserId] = 0xFF;
//return ERROR;
}
- DispenserBacklashControlId[DispenserId] = AddControlCallback(NULL, IDS_HomeDispenserWaitForHomingEnd,eOneSecond , TemplateDataReadCBFunction,DispenserId,0, 0 );
+ DispenserBacklashControlId[DispenserId] = AddControlCallback("Wait for Homing", IDS_HomeDispenserWaitForHomingEnd,eOneSecond , TemplateDataReadCBFunction,DispenserId,0, 0 );
if ( DispenserBacklashControlId[DispenserId] == 0xFF)
return ERROR;
@@ -180,11 +180,18 @@ uint32_t IDS_HomeDispenserCallback(uint32_t motorId, uint32_t ReadValue)
{
uint8_t DispenserId = motorId-HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_1;
+ MotorStop(motorId,Hard_Hiz);
+ CurrentDispenserSpeed[DispenserId] = 0;
+ if (Extended_Motor_Param == true)
+ Power_Step_01_Dispenser_Mode(DispenserId,Voltage);
Read_MidTank_Pressure_Sensor(DispenserId);
//close dry air valve in the dispenser
- //Valve_Set(IDS_Id_to_AirValve[DispenserId], Atm_MidTank_OFF);
- //Disable_MidTank_Pressure_Reading(DispenserId);
- // MotorSetMicroStep(motorId, KeepMicrostep[DispenserId]);
+ Valve_Set(IDS_Id_to_AirValve[DispenserId], Atm_MidTank_OFF);
+ Disable_MidTank_Pressure_Reading(DispenserId);
+ MotorSetMicroStep(motorId, KeepMicrostep[DispenserId]);
+ HomingActive[DispenserId]= false;
+ PrimingActive[DispenserId]= false;
+ Control_TCA9534ByPass(DispenserId,DISABLE);// use ENABLE or DISABLE
if (HomingRequestCallback[DispenserId])
{
HomingRequestCallback[DispenserId](DispenserId,0);
@@ -192,12 +199,13 @@ uint32_t IDS_HomeDispenserCallback(uint32_t motorId, uint32_t ReadValue)
}
// HomingActive[DispenserId]= false;
IDS_Dispenser_RefillEnded ( DispenserId, MotorsCfg[motorId].microstep);
- Report("Start backlash",__FILE__,millisecondCounter,(int)DispenserId,RpWarning,(int)DispenserHomingTime[DispenserId],0);
- DispenserHomingControlId[DispenserId] = AddControlCallback(NULL, IDS_HomeDispenserBackMoveCallback, InitialDispenserTimeLag, GetDispenserPressure,motorId, motorId, 0 );
+ Report("End homing no backlash backlash",__FILE__,millisecondCounter,(int)DispenserId,RpWarning,(int)DispenserHomingTime[DispenserId],0);
+ /*Report("Start backlash",__FILE__,millisecondCounter,(int)DispenserId,RpWarning,(int)DispenserHomingTime[DispenserId],0);
+ DispenserHomingControlId[DispenserId] = AddControlCallback( IDS_HomeDispenserBackMoveCallback, InitialDispenserTimeLag, GetDispenserPressure,motorId, motorId, 0 );
MotorSetDirection(motorId,MotorsCfg[motorId].directionthreadwize);
Task_sleep(10);
MotorSetSpeed(motorId, InitialDispenserSpeed);
- CurrentDispenserSpeed[DispenserId] = InitialDispenserSpeed;
+ CurrentDispenserSpeed[DispenserId] = InitialDispenserSpeed;*/
return OK;
}
@@ -357,21 +365,35 @@ uint32_t IDS_StopHomeDispenserBuildPressure (uint32_t DispenserId)
//close dry air valve in the dispenser
Valve_Set(IDS_Id_to_AirValve[DispenserId], Atm_MidTank_OFF);
Disable_MidTank_Pressure_Reading(DispenserId);
- // MotorSetMicroStep(motorId, KeepMicrostep[DispenserId]);
+ CurrentDispenserSpeed[DispenserId] = 0;
+ if (Extended_Motor_Param == true)
+ Power_Step_01_Dispenser_Mode(DispenserId,Voltage);
+ MotorSetMicroStep(motorId, KeepMicrostep[DispenserId]);
+
if (HomingRequestCallback[DispenserId])
{
HomingRequestCallback[DispenserId](DispenserId,0);
HomingRequestCallback[DispenserId] = NULL;
}
// HomingActive[DispenserId]= false;
- Report("Start backlash",__FILE__,millisecondCounter,(int)DispenserId,RpWarning,(int)DispenserHomingTime[DispenserId],0);
- DispenserHomingControlId[DispenserId] = AddControlCallback("DispenserBackLash", IDS_HomeDispenserBackMoveCallback, InitialDispenserTimeLag, GetDispenserPressure,motorId, motorId, 0 );
- Task_sleep(10);
- MotorSetDirection(motorId,MotorsCfg[motorId].directionthreadwize);
- Task_sleep(10);
- MotorSetSpeed(motorId, 1000);
- CurrentDispenserSpeed[DispenserId] = 1000;
- //IDS_Dispenser_RefillEnded ( DispenserId, MotorsCfg[motorId].microstep);
+ JobStartStopBackLash[DispenserId] = false;
+ Report("End homing no backlash",__FILE__,millisecondCounter,(int)DispenserId,RpWarning,(int)DispenserHomingTime[DispenserId],0);
+ /*if (JobStartStopBackLash[DispenserId] == true)
+ {
+ JobStartStopBackLash[DispenserId] = false;
+ Report("End homing for job start",__FILE__,millisecondCounter,(int)DispenserId,RpWarning,(int)DispenserHomingTime[DispenserId],0);
+ }
+ else
+ {
+ Report("homing aborted,start backlash",__FILE__,millisecondCounter,(int)DispenserId,RpWarning,(int)DispenserHomingTime[DispenserId],0);
+ DispenserHomingControlId[DispenserId] = AddControlCallback( IDS_HomeDispenserBackMoveCallback, InitialDispenserTimeLag, GetDispenserPressure,motorId, motorId, 0 );
+ Task_sleep(10);
+ MotorSetDirection(motorId,MotorsCfg[motorId].directionthreadwize);
+ Task_sleep(10);
+ MotorSetSpeed(motorId, 1000);
+ CurrentDispenserSpeed[DispenserId] = 1000;
+ }*/
+ IDS_Dispenser_RefillEnded ( DispenserId, MotorsCfg[motorId].microstep);
return OK;
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj b/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj
index d130a8002..2accc4f82 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj
@@ -120,7 +120,6 @@
<Link>GlobalVersionInfo.cs</Link>
</Compile>
<Compile Include="ApplicationStates.cs" />
- <Compile Include="Backup\IBackupManager.cs" />
<Compile Include="Connection\DefaultMachineProvider.cs" />
<Compile Include="Connection\IMachineProvider.cs" />
<Compile Include="Connection\MachineOperatorChangedEventArgs.cs" />
@@ -373,6 +372,7 @@
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
+ <Folder Include="Backup\" />
<Folder Include="Scripting\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
@@ -385,7 +385,7 @@
</Target>
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
+ <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" />
</VisualStudio>
</ProjectExtensions>
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml
index 890d3863b..586fa987b 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml
@@ -238,15 +238,10 @@
<touch:TouchNotificationBar.NotificationTemplate>
<DataTemplate>
<components:Ripple Padding="0">
- <Grid Background="Transparent">
- <i:Interaction.Triggers>
- <i:EventTrigger EventName="PreviewMouseUp">
- <i:InvokeCommandAction Command="{Binding PressedCommand}" />
- </i:EventTrigger>
- </i:Interaction.Triggers>
+ <touch:TouchClickableControl Command="{Binding PressedCommand}">
<ContentControl Content="{Binding Converter={StaticResource ItemBaseConverter}}"/>
<touch:TouchIconButton Visibility="{Binding CanClose,Converter={StaticResource BooleanToVisibilityConverter}}" DockPanel.Dock="Right" Background="Transparent" Padding="35" Style="{StaticResource TangoRoundTouchIconButton}" Command="{Binding CloseCommand}" CommandParameter="{Binding}" HorizontalAlignment="Right" MaxHeight="90" Width="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight}" Icon="Close" Foreground="{StaticResource TangoDarkForegroundBrush}" />
- </Grid>
+ </touch:TouchClickableControl>
</components:Ripple>
</DataTemplate>
</touch:TouchNotificationBar.NotificationTemplate>
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchClickableControl.cs b/Software/Visual_Studio/Tango.Touch/Controls/TouchClickableControl.cs
new file mode 100644
index 000000000..92e60f7bc
--- /dev/null
+++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchClickableControl.cs
@@ -0,0 +1,118 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Input;
+using System.Windows.Media;
+
+namespace Tango.Touch.Controls
+{
+ public class TouchClickableControl : Grid
+ {
+ private bool _isMouseDown;
+
+ #region Properties
+
+ public object CommandParameter
+ {
+ get { return (object)GetValue(CommandParameterProperty); }
+ set { SetValue(CommandParameterProperty, value); }
+ }
+ public static readonly DependencyProperty CommandParameterProperty =
+ DependencyProperty.Register("CommandParameter", typeof(object), typeof(TouchClickableControl), new PropertyMetadata(null));
+
+ #endregion
+
+ #region Routed Events
+
+ public static readonly RoutedEvent ClickEvent = EventManager.RegisterRoutedEvent("Click", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TouchClickableControl));
+ public event RoutedEventHandler Click
+ {
+ add
+ {
+ AddHandler(ClickEvent, value);
+ }
+ remove
+ {
+ RemoveHandler(ClickEvent, value);
+ }
+ }
+
+ #endregion
+
+ #region Commands
+
+ public ICommand Command
+ {
+ get { return (ICommand)GetValue(CommandProperty); }
+ set { SetValue(CommandProperty, value); }
+ }
+ public static readonly DependencyProperty CommandProperty =
+ DependencyProperty.Register("Command", typeof(ICommand), typeof(TouchClickableControl), new PropertyMetadata(null, (d, e) => (d as TouchClickableControl).OnCommandChanged()));
+
+ #endregion
+
+ #region Constructors
+
+ public TouchClickableControl()
+ {
+ Background = Brushes.Transparent;
+ }
+
+ #endregion
+
+ #region Private Methods
+
+ private void OnCommandChanged()
+ {
+ if (Command != null)
+ {
+ Command.CanExecuteChanged -= Command_CanExecuteChanged;
+ Command.CanExecuteChanged += Command_CanExecuteChanged;
+ }
+ }
+
+ private void Command_CanExecuteChanged(object sender, EventArgs e)
+ {
+ IsEnabled = Command != null && Command.CanExecute(CommandParameter);
+ }
+
+ #endregion
+
+ #region Override Methods
+
+ protected override void OnMouseDown(MouseButtonEventArgs e)
+ {
+ base.OnMouseDown(e);
+ _isMouseDown = true;
+ }
+
+ protected override void OnMouseUp(MouseButtonEventArgs e)
+ {
+ base.OnMouseUp(e);
+ if (_isMouseDown)
+ {
+ OnClick();
+ }
+
+ _isMouseDown = false;
+ }
+
+ /// <summary>
+ /// Raises the click event and executes the command.
+ /// </summary>
+ protected virtual void OnClick()
+ {
+ RoutedEventArgs args = new RoutedEventArgs(TouchClickableControl.ClickEvent, this);
+ RaiseEvent(args);
+ if (Command != null && Command.CanExecute(CommandParameter))
+ {
+ Command.Execute(CommandParameter);
+ }
+ }
+ #endregion
+ }
+}
diff --git a/Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj b/Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj
index cac9f47e4..60817f8f8 100644
--- a/Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj
+++ b/Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj
@@ -70,6 +70,7 @@
<Compile Include="Controls\TouchAutoComplete.cs" />
<Compile Include="Controls\TouchCalendar.cs" />
<Compile Include="Controls\TouchCheckBox.cs" />
+ <Compile Include="Controls\TouchClickableControl.cs" />
<Compile Include="Controls\TouchComboBox.cs" />
<Compile Include="Controls\TouchDatePicker.cs" />
<Compile Include="Controls\TouchDropShadowBorder.cs" />
@@ -409,7 +410,7 @@
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
+ <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" />
</VisualStudio>
</ProjectExtensions>
</Project> \ No newline at end of file