...
 
Commits (2)
......@@ -18,13 +18,15 @@
#include <controllers/npp/pf1/TurningShutterController.h>
#include "controllers/common/family/Families.h"
#include "InstrumentAbstraction/CommandNames.h"
#include "drivers/legacy/def/CommandDef.h"
using namespace std;
namespace pf1 {
const string TurningShutterController::TYPE = "turning_shutter";
const string TurningShutterController:: AXISSTATE[3] = {"ERROR","Moving","Idle"} ;
const int32 STOP_MODE = 0;
const int32 SQUARE_MODE = 1;
const int32 PULSE_MODE = 2;
......@@ -34,13 +36,14 @@ const int32 CONTINU_MODE = 3;
* Contructor
*/
TurningShutterController::TurningShutterController(const string& name) :
ExperimentController(name), controller::Stoppable(this), controller::Read(this), m_StopCommand(false) {
ExperimentController(name), controller::Stoppable(this),controller::Raz(this) , controller::Read(this), m_StopCommand(false) {
setFamily(family::BEAM_PARAMETERS);
position.init(this, SPY | SAVE, "actual_Position", "Position");
squareSpeed1.init(this, SAVE, "actual_squareSpeed1", "wanted_squareSpeed1", "squareSpeed1");
squareAngle1.init(this, SAVE, "actual_squareAngle1", "wanted_squareAngle1", "squareAngle1");
squareTimems1.init(this, SAVE, "actual_squareTimems1", "wanted_squareTimems1", "squareTimems1");
squareTimems1.init(this, SAVE , "actual_squareTimems1", "wanted_squareTimems1", "squareTimems1");
squareSpeed2.init(this, SAVE, "actual_squareSpeed2", "wanted_squareSpeed2", "squareSpeed2");
squareAngle2.init(this, SAVE, "actual_squareAngle2", "wanted_squareAngle2", "squareAngle2");
squareTimems2.init(this, SAVE, "actual_squareTimems2", "wanted_squareTimems2", "squareTimems2");
......@@ -56,18 +59,19 @@ TurningShutterController::TurningShutterController(const string& name) :
idStatus.init(this, NOSAVE, "idStatus");
locStatus.init(this, NOSAVE, "locStatus");
actualSquareSeqNb.init(this, NOSAVE, "actualSquareSeqNb");
actualSquareSeqNb.init(this, NOSAVE | SPY, "actualSquareSeqNb","Sequence");
actualPulseSeqNb.init(this, NOSAVE, "actualPulseSeqNb");
actualContinuSeqNb.init(this, NOSAVE, "actualContinuSeqNb");
remainingTimeSquareSeq.init(this, NOSAVE, "remainingTimeSquareSeq");
remainingTimeSquareSeq.init(this, NOSAVE | SPY , "remainingTimeSquareSeq","Time");
remainingTimePulseSeq.init(this, NOSAVE, "remainingTimePulseSeq");
remainingTimeContinuSeq.init(this, NOSAVE, "remainingTimeContinuSeq");
status.init(this, NOSAVE, "controllerStatus");
status.init(this, NOSAVE, "status");
statusString.init(this, NOSAVE | SPY, "State");
connectStatus.init(this, NOSAVE, "connectStatus");
wantedSquareSeqNb.init(this, NOSAVE, "wantedSquareSeqNb");
wantedPulseSeqNb.init(this, NOSAVE, "wantedPulseSeqNb");
wantedContinuSeqNb.init(this, NOSAVE, "wantedContinuSeqNb");
wantedSquareSeqNb.init(this, SAVE , "wantedSquareSeqNb");
wantedPulseSeqNb.init(this, SAVE, "wantedPulseSeqNb");
wantedContinuSeqNb.init(this, SAVE, "wantedContinuSeqNb");
seqNb.init(this, SAVE, "seqNb");
......@@ -101,6 +105,11 @@ void TurningShutterController::postConfiguration() {
registerUpdater(m_Driver->remainingTimeSquareSeq, &TurningShutterController::updateRemainingTime, this);
registerUpdater(m_Driver->remainingTimePulseSeq, &TurningShutterController::updateRemainingTime, this);
registerUpdater(m_Driver->remainingTimeContinuSeq, &TurningShutterController::updateRemainingTime, this);
registerUpdater(m_Driver->actualSquareSeqNb, &TurningShutterController::updatePosition, this);
registerUpdater(m_Driver->actualContinuSeqNb, &TurningShutterController::updatePosition, this);
registerUpdater(m_Driver->actualPulseSeqNb, &TurningShutterController::updatePosition, this);
registerUpdater(m_Driver->actualPosition, &TurningShutterController::updatePosition, this);
registerUpdater(m_Driver->axisStatus, &TurningShutterController::updateStatus, this);
registerStatus(m_Driver, &TurningShutterController::updateStatus, this);
}
......@@ -110,8 +119,9 @@ void TurningShutterController::postConfiguration() {
void TurningShutterController::updateStatus() {
commandStatus.set(m_Driver->commandStatus);
status=m_Driver->status();
status=m_Driver->axisStatus();
connectStatus=m_Driver->connectStatus();
statusString= AXISSTATE[int32(status()/16)];
}
void TurningShutterController::refreshwantedContinuSeqNb(int32 number) throw (CannotSetValue) {
......@@ -148,16 +158,24 @@ void TurningShutterController::start() {
commandProgression = 0;
if (m_Driver.isAssigned()) {
m_Driver->execMode =execMode();
commandStatus.setRunning();
if (execMode() == SQUARE_MODE) {
if (execMode() == STOP_MODE) {
cout << "TurningShutterController STOP_MODE "<<endl;
m_Driver.execute(driver::STOP_COMMAND, false);
commandProgression = 100;
} else if (execMode() == SQUARE_MODE) {
cout << "TurningShutterController SQUARE_MODE "<<endl;
m_Driver->wantedSquareSeqNb=wantedSquareSeqNb();
m_Driver->squareAngle1.setpoint=squareAngle1.setpoint();
m_Driver->squareSpeed1.setpoint=squareSpeed1.setpoint();
m_Driver->squareAngle1.setpoint=squareAngle1.setpoint();
m_Driver->squareTimems1.setpoint=squareTimems1.setpoint();
m_Driver->squareSpeed2.setpoint=squareSpeed2.setpoint();
m_Driver->squareAngle2.setpoint=squareAngle2.setpoint();
m_Driver->squareTimems2.setpoint=squareTimems2.setpoint();
m_Driver.execute(driver::START_COMMAND, false,true);
} else if (execMode() == PULSE_MODE) {
m_Driver->wantedSquareSeqNb=wantedSquareSeqNb();
......@@ -165,23 +183,24 @@ void TurningShutterController::start() {
m_Driver->pulseSpeed.setpoint=pulseTimems.setpoint();
m_Driver->pulseAngle.setpoint=pulseTimems.setpoint();
m_Driver->pulseTimems.setpoint=pulseTimems.setpoint();
m_Driver.execute(driver::START_COMMAND, false,true);
} else if (execMode() == CONTINU_MODE) {
} else if (execMode() == CONTINU_MODE) {
m_Driver->wantedContinuSeqNb = wantedContinuSeqNb();
for (int32 i = 0; i < wantedContinuSeqNb(); ++i) {
m_Driver->continuSpeed.set(i, continuSpeed.get(i));
m_Driver->continuTimems.set(i,continuTimems.get(i));
}
m_Driver.execute(driver::START_COMMAND, false,true);
}else {
}else{
cerr << "execution mode for PFC200 driver does not exist" << endl;
commandStatus.setError();
commandProgression = 100;
}
m_Driver.execute(driver::START_COMMAND, true);
}
commandProgression = 100;
}
/*
......@@ -218,4 +237,25 @@ void TurningShutterController::updateRemainingTime() {
}
/*
* update
*/
void TurningShutterController::updatePosition() {
position=m_Driver->actualPosition();
actualSquareSeqNb=m_Driver->actualSquareSeqNb();
actualPulseSeqNb=m_Driver->actualPulseSeqNb();
actualContinuSeqNb=m_Driver->actualContinuSeqNb();
}
void TurningShutterController::raz() {
m_Driver.execute(RAZ_COMMAND, false);
}
}
......@@ -25,7 +25,7 @@
namespace pf1 {
class TurningShutterController: public ExperimentController, public controller::Stoppable, public controller::Read {
class TurningShutterController: public ExperimentController, public controller::Stoppable, public controller::Raz, public controller::Read {
public:
......@@ -46,18 +46,18 @@ public:
/*!
* Properties
*/
Property<int32, SETPOINT> squareSpeed1;
Property<float64, SETPOINT> squareSpeed1;
Property<int32, SETPOINT> squareAngle1;
Property<int32, SETPOINT> squareTimems1;
Property<int32, SETPOINT> squareSpeed2;
Property<float64, SETPOINT> squareSpeed2;
Property<int32, SETPOINT> squareAngle2;
Property<int32, SETPOINT> squareTimems2;
Property<int32, SETPOINT> pulseSpeed;
Property<float64, SETPOINT> pulseSpeed;
Property<int32, SETPOINT> pulseAngle;
Property<int32, SETPOINT> pulseTimems;
DynamicProperty<int32> continuSpeed;
DynamicProperty<float64> continuSpeed;
DynamicProperty<int32> continuTimems;
Property<int32> idStatus;
......@@ -69,6 +69,7 @@ public:
Property<int32> remainingTimePulseSeq;
Property<int32> remainingTimeContinuSeq;
Property<int32> status;
Property<std::string> statusString;
Property<int32> connectStatus;
Property<int32> wantedSquareSeqNb;
......@@ -79,6 +80,11 @@ public:
Property<int32> execMode;
Property<int32> ratio;
Property<int32> statusFunction;
Property<float64> position;
static const std::string AXISSTATE[3] ;
virtual void raz();
protected:
......@@ -107,6 +113,7 @@ private:
virtual void read();
void updateRemainingTime();
void updatePosition();
void updateStatus();
void refreshwantedContinuSeqNb(int32 number) throw (CannotSetValue);
void refreshwantedPulseSeqNb(int32 number) throw (CannotSetValue);
......
......@@ -42,6 +42,8 @@ turning_shutter.wanted_continuSeqPrefix=Number of Sequences
#Combo mode
turning_shutter.modeStopValue=0
turning_shutter.modeStopLabel=Stop mode
turning_shutter.modeSquareValue=1
turning_shutter.modeSquareLabel=Square mode
turning_shutter.modePulseValue=2
......@@ -50,12 +52,12 @@ turning_shutter.modeContinuValue=3
turning_shutter.modeContinuLabel=Continu mode
#Values & Labels of Status
turning_shutter.statusAttenteValue=0
turning_shutter.statusAttenteValue=32
turning_shutter.statusAttenteLabel=Idle
turning_shutter.statusErrorValue=32
turning_shutter.statusErrorValue=4
turning_shutter.statusErrorLabel=Error
turning_shutter.statusMovingValue=64
turning_shutter.statusMovingLabel=Speed
turning_shutter.statusMovingValue=16
turning_shutter.statusMovingLabel=Moving
#Values & Labels of FunctionStatus
turning_shutter.statusDisconnectedValue=0
......@@ -71,6 +73,8 @@ turning_shutter.continuGroup=Continu
#Units
turning_shutter.frequencyUnit=Hz
turning_shutter.speedUnit=rpm
turning_shutter.speedUnit=%Vmax
turning_shutter.degreeUnit=~degree
turning_shutter.timeUnit=ms
turning_shutter.timeUnit=s
turning_shutter.raz=Set To Zero
<plugin>
<controller type="turning_shutter" role="turning_shutter1" />
<property_switcher role="turning_shutter1" property="exec_mode"
switcher_key="exec_modeSwitcher" />
<newLine />
<combo role="turning_shutter1" property="exec_mode"
valuesAndLabels="turning_shutter.modeSquare,turning_shutter.modePulse,turning_shutter.modeContinu" />
<newLine />
<switchable_composite switch_values="1"
switcher_key="exec_modeSwitcher">
<number_of_lines nb_lines="4" />
<property_switcher role="turning_shutter1" property="exec_mode" switcher_key="exec_modeSwitcher" />
<combo role="turning_shutter1" property="exec_mode" valuesAndLabels="turning_shutter.modeStop,turning_shutter.modeSquare,turning_shutter.modePulse,turning_shutter.modeContinu" />
<newLine/>
<switchable_composite switch_values="1" switcher_key="exec_modeSwitcher">
<group title="turning_shutter.squareGroup">
<text role="turning_shutter1" property="wantedSquareSeqNb"
prefix="turning_shutter.wanted_continuSeqPrefix" spaceBefore="false"/>
<newLine />
<table_composite nbColumns="2">
<label role="turning_shutter1" property="actual_squareSpeed1"
prefix="turning_shutter.actual_speed1Prefix" suffix="turning_shutter.speedUnit" />
<text role="turning_shutter1" property="wanted_squareSpeed1" prefix="turning_shutter.wanted_speed1Prefix"
suffix="turning_shutter.speedUnit" />
<label role="turning_shutter1" property="actual_squareSpeed2"
prefix="turning_shutter.actual_speed2Prefix" suffix="turning_shutter.speedUnit" />
<text role="turning_shutter1" property="wanted_squareSpeed2" prefix="turning_shutter.wanted_speed2Prefix"
suffix="turning_shutter.speedUnit" />
<label role="turning_shutter1" property="actual_squareAngle1"
prefix="turning_shutter.actual_angle1Prefix" suffix="turning_shutter.degreeUnit" />
<text role="turning_shutter1" property="wanted_squareAngle1" prefix="turning_shutter.wanted_angle1Prefix"
suffix="turning_shutter.degreeUnit" />
<label role="turning_shutter1" property="actual_squareAngle2"
prefix="turning_shutter.actual_angle2Prefix" suffix="turning_shutter.degreeUnit" />
<text role="turning_shutter1" property="wanted_squareAngle2" prefix="turning_shutter.wanted_angle2Prefix"
suffix="turning_shutter.degreeUnit" />
<label role="turning_shutter1" property="actual_squareTimems1"
prefix="turning_shutter.actual_time1Prefix" suffix="turning_shutter.timeUnit" />
<text role="turning_shutter1" property="wanted_squareTimems1" prefix="turning_shutter.wanted_time1Prefix"
suffix="turning_shutter.timeUnit" />
<label role="turning_shutter1" property="actual_squareTimems2"
prefix="turning_shutter.actual_time2Prefix" suffix="turning_shutter.timeUnit" />
<text role="turning_shutter1" property="wanted_squareTimems2" prefix="turning_shutter.wanted_time2Prefix"
suffix="turning_shutter.timeUnit" />
</table_composite>
<text role="turning_shutter1" property="wantedSquareSeqNb" prefix="turning_shutter.wanted_continuSeqPrefix" spaceBefore="false" />
<newLine/>
<table_composite nbColumns="3">
<text role="turning_shutter1" property="wanted_squareSpeed1" prefix="turning_shutter.wanted_speed1Prefix" suffix="turning_shutter.speedUnit" />
<text role="turning_shutter1" property="wanted_squareAngle1" prefix="turning_shutter.wanted_angle1Prefix" suffix="turning_shutter.degreeUnit" />
<text role="turning_shutter1" property="wanted_squareTimems1" prefix="turning_shutter.wanted_time1Prefix" suffix="turning_shutter.timeUnit" />
<text role="turning_shutter1" property="wanted_squareSpeed2" prefix="turning_shutter.wanted_speed2Prefix" suffix="turning_shutter.speedUnit" />
<text role="turning_shutter1" property="wanted_squareAngle2" prefix="turning_shutter.wanted_angle2Prefix" suffix="turning_shutter.degreeUnit" />
<text role="turning_shutter1" property="wanted_squareTimems2" prefix="turning_shutter.wanted_time2Prefix" suffix="turning_shutter.timeUnit" />
</table_composite>
</group>
</switchable_composite>
<switchable_composite switch_values="2"
switcher_key="exec_modeSwitcher">
<switchable_composite switch_values="2" switcher_key="exec_modeSwitcher">
<group title="turning_shutter.pulseGroup">
<text role="turning_shutter1" property="wantedPulseSeqNb"
prefix="turning_shutter.wanted_continuSeqPrefix" spaceBefore="false"/>
<newLine />
<table_composite nbColumns="2">
<label role="turning_shutter1" property="actual_pulseSpeed"
prefix="turning_shutter.actual_speedPrefix" suffix="turning_shutter.speedUnit" />
<text role="turning_shutter1" property="wanted_pulseSpeed" prefix="turning_shutter.wanted_speedPrefix"
suffix="turning_shutter.speedUnit" />
<label role="turning_shutter1" property="actual_pulseAngle"
prefix="turning_shutter.actual_anglePrefix" suffix="turning_shutter.degreeUnit" />
<text role="turning_shutter1" property="wanted_pulseAngle" prefix="turning_shutter.wanted_anglePrefix"
suffix="turning_shutter.degreeUnit" />
<label role="turning_shutter1" property="actual_pulseTimems" prefix="turning_shutter.actual_timePrefix"
suffix="turning_shutter.timeUnit" />
<text role="turning_shutter1" property="wanted_pulseTimems" prefix="turning_shutter.wanted_timePrefix"
suffix="turning_shutter.timeUnit" />
</table_composite>
<text role="turning_shutter1" property="wantedPulseSeqNb" prefix="turning_shutter.wanted_continuSeqPrefix" spaceBefore="false" />
<newLine/>
<table_composite nbColumns="3">
<text role="turning_shutter1" property="wanted_pulseSpeed" prefix="turning_shutter.wanted_speedPrefix" suffix="turning_shutter.speedUnit" />
<text role="turning_shutter1" property="wanted_pulseAngle" prefix="turning_shutter.wanted_anglePrefix" suffix="turning_shutter.degreeUnit" />
<text role="turning_shutter1" property="wanted_pulseTimems" prefix="turning_shutter.wanted_timePrefix" suffix="turning_shutter.timeUnit" />
</table_composite>
</group>
</switchable_composite>
<switchable_composite switch_values="3" switcher_key="exec_modeSwitcher">
<group title="turning_shutter.continuGroup">
<text role="turning_shutter1" property="wantedContinuSeqNb" prefix="turning_shutter.wanted_continuSeqPrefix" spaceBefore="false"/>
<switchable_composite switch_values="3" switcher_key="exec_modeSwitcher">
<group title="turning_shutter.continuGroup">
<text role="turning_shutter1" property="wantedContinuSeqNb" prefix="turning_shutter.wanted_continuSeqPrefix" spaceBefore="false"/>
<newLine />
<table_composite nbColumns="2">
<simple_label prefix="turning_shutter.wanted_continuSpeedPrefix" font_style="BOLD"/>
......@@ -92,35 +44,9 @@
</dynamic_composite>
</table_composite>
</group>
</switchable_composite>
<summary>
<summary_content>
<switchable_composite switch_values="2" switcher_key="exec_modeSwitcher">
<label role="turning_shutter1" property="actualPulseSeqNb" prefix="turning_shutter.actual_continuSeqPrefix" spaceBefore="false"/>
</switchable_composite>
<switchable_composite switch_values="3" switcher_key="exec_modeSwitcher">
<label role="turning_shutter1" property="actualContinuSeqNb" prefix="turning_shutter.actual_continuSeqPrefix" spaceBefore="false" />
</switchable_composite>
<switchable_composite switch_values="1" switcher_key="exec_modeSwitcher">
<label role="turning_shutter1" property="actualSquareSeqNb" prefix="turning_shutter.actual_continuSeqPrefix" spaceBefore="false"/>
</switchable_composite>
<newLine />
<label role="turning_shutter1" property="controllerStatus" prefix="turning_shutter.controllerstatusPrefix" valuesAndLabels="turning_shutter.statusInit,turning_shutter.statusAttente,turning_shutter.statusSinus,turning_shutter.statusSpeed,turning_shutter.statusError,turning_shutter.statusPosition" />
<newLine />
<newLine />
<label role="turning_shutter1" property="axis_status" prefix="turning_shutter.statusPrefix" valuesAndLabels="turning_shutter.statusAttente,turning_shutter.statusError,turning_shutter.statusMoving" />
<newLine />
<newLine />
<label role="turning_shutter1" property="idStatus" prefix="turning_shutter.idstatusPrefix" />
<newLine />
<label role="turning_shutter1" property="locStatus" prefix="turning_shutter.locstatusPrefix" />
<newLine />
<newLine />
<label role="turning_shutter1" property="connectStatus" prefix="turning_shutter.connectstatusPrefix" valuesAndLabels="turning_shutter.statusDisconnected,turning_shutter.statusConnected" />
</summary_content>
</summary>
</plugin>
......@@ -3,5 +3,6 @@
<image key="DOPPLER"/>
<settings view="turning_shutterView.xml"/>
<command view="turning_shutterCommandView.xml"/>
</controller_plugin_config>
......@@ -3,9 +3,11 @@
<controller type="turning_shutter">
<property name="actual_squareSpeed1" type="long" max_length="4">
<property name="actual_squareSpeed1" type="double" max_length="4">
<decimal_format nb_decimal_places="1"/>
</property>
<property name="wanted_squareSpeed1" type="long" max_length="4">
<property name="wanted_squareSpeed1" type="double" max_length="4">
<decimal_format nb_decimal_places="1"/>
</property>
......@@ -21,9 +23,11 @@
</property>
<property name="actual_squareSpeed2" type="long" max_length="4">
<property name="actual_squareSpeed2" type="double" max_length="4">
<decimal_format nb_decimal_places="1"/>
</property>
<property name="wanted_squareSpeed2" type="long" max_length="4">
<property name="wanted_squareSpeed2" type="double" max_length="4">
<decimal_format nb_decimal_places="1"/>
</property>
......@@ -43,9 +47,11 @@
<property name="actual_pulseSpeed" type="long" max_length="4">
<property name="actual_pulseSpeed" type="double" max_length="4">
<decimal_format nb_decimal_places="1"/>
</property>
<property name="wanted_pulseSpeed" type="long" max_length="4">
<property name="wanted_pulseSpeed" type="double" max_length="4">
<decimal_format nb_decimal_places="1"/>
</property>
......@@ -61,7 +67,8 @@
</property>
<dynamic_property name="continuSpeed" size_property="wantedContinuSeqNb" type="long" max_length="6">
<dynamic_property name="continuSpeed" size_property="wantedContinuSeqNb" type="double" max_length="6">
<decimal_format nb_decimal_places="1"/>
</dynamic_property>
<dynamic_property name="continuTimems" size_property="wantedContinuSeqNb" type="long" max_length="6">
</dynamic_property>
......@@ -72,18 +79,18 @@
</property>
<property name="actualSquareSeqNb" type="long" max_length="4">
<property name="actualSquareSeqNb" type="long" max_length="5">
</property>
<property name="actualPulseSeqNb" type="long" max_length="4">
<property name="actualPulseSeqNb" type="long" max_length="5">
</property>
<property name="actualContinuSeqNb" type="long" max_length="4">
<property name="actualContinuSeqNb" type="long" max_length="5">
</property>
<property name="wantedSquareSeqNb" type="long" max_length="4">
<property name="wantedSquareSeqNb" type="long" max_length="5">
</property>
<property name="wantedPulseSeqNb" type="long" max_length="4">
<property name="wantedPulseSeqNb" type="long" max_length="5">
</property>
<property name="wantedContinuSeqNb" type="long" max_length="4">
<property name="wantedContinuSeqNb" type="long" max_length="5">
</property>
......@@ -96,6 +103,8 @@
<property name="axis_status" type="long" max_length="4">
</property>
<property name="status" type="long" max_length="4">
</property>
<property name="controllerStatus" type="long" max_length="4">
</property>
<property name="connectStatus" type="long" max_length="4">
......
......@@ -4,7 +4,7 @@
switcher_key="exec_modeSwitcher" />
<newLine />
<combo role="turning_shutter1" property="exec_mode"
valuesAndLabels="turning_shutter.modeSquare,turning_shutter.modePulse,turning_shutter.modeContinu" />
valuesAndLabels="turning_shutter.modeStop,turning_shutter.modeSquare,turning_shutter.modePulse,turning_shutter.modeContinu" />
<newLine />
<switchable_composite switch_values="1"
switcher_key="exec_modeSwitcher">
......@@ -14,33 +14,20 @@
prefix="turning_shutter.wanted_continuSeqPrefix" spaceBefore="false"/>
<newLine />
<table_composite nbColumns="2">
<table_composite nbColumns="3">
<label role="turning_shutter1" property="actual_squareSpeed1"
prefix="turning_shutter.actual_speed1Prefix" suffix="turning_shutter.speedUnit" />
<text role="turning_shutter1" property="wanted_squareSpeed1" prefix="turning_shutter.wanted_speed1Prefix"
suffix="turning_shutter.speedUnit" />
<label role="turning_shutter1" property="actual_squareSpeed2"
prefix="turning_shutter.actual_speed2Prefix" suffix="turning_shutter.speedUnit" />
<text role="turning_shutter1" property="wanted_squareSpeed2" prefix="turning_shutter.wanted_speed2Prefix"
suffix="turning_shutter.speedUnit" />
<label role="turning_shutter1" property="actual_squareAngle1"
prefix="turning_shutter.actual_angle1Prefix" suffix="turning_shutter.degreeUnit" />
<text role="turning_shutter1" property="wanted_squareAngle1" prefix="turning_shutter.wanted_angle1Prefix"
suffix="turning_shutter.degreeUnit" />
<label role="turning_shutter1" property="actual_squareAngle2"
prefix="turning_shutter.actual_angle2Prefix" suffix="turning_shutter.degreeUnit" />
<text role="turning_shutter1" property="wanted_squareAngle2" prefix="turning_shutter.wanted_angle2Prefix"
suffix="turning_shutter.degreeUnit" />
<label role="turning_shutter1" property="actual_squareTimems1"
prefix="turning_shutter.actual_time1Prefix" suffix="turning_shutter.timeUnit" />
<text role="turning_shutter1" property="wanted_squareTimems1" prefix="turning_shutter.wanted_time1Prefix"
suffix="turning_shutter.timeUnit" />
<label role="turning_shutter1" property="actual_squareTimems2"
prefix="turning_shutter.actual_time2Prefix" suffix="turning_shutter.timeUnit" />
<text role="turning_shutter1" property="wanted_squareSpeed2" prefix="turning_shutter.wanted_speed2Prefix"
suffix="turning_shutter.speedUnit" />
<text role="turning_shutter1" property="wanted_squareAngle2" prefix="turning_shutter.wanted_angle2Prefix"
suffix="turning_shutter.degreeUnit" />
<text role="turning_shutter1" property="wanted_squareTimems2" prefix="turning_shutter.wanted_time2Prefix"
suffix="turning_shutter.timeUnit" />
</table_composite>
......@@ -57,21 +44,14 @@
prefix="turning_shutter.wanted_continuSeqPrefix" spaceBefore="false"/>
<newLine />
<table_composite nbColumns="2">
<table_composite nbColumns="3">
<label role="turning_shutter1" property="actual_pulseSpeed"
prefix="turning_shutter.actual_speedPrefix" suffix="turning_shutter.speedUnit" />
<text role="turning_shutter1" property="wanted_pulseSpeed" prefix="turning_shutter.wanted_speedPrefix"
suffix="turning_shutter.speedUnit" />
<label role="turning_shutter1" property="actual_pulseAngle"
prefix="turning_shutter.actual_anglePrefix" suffix="turning_shutter.degreeUnit" />
<text role="turning_shutter1" property="wanted_pulseAngle" prefix="turning_shutter.wanted_anglePrefix"
suffix="turning_shutter.degreeUnit" />
<label role="turning_shutter1" property="actual_pulseTimems" prefix="turning_shutter.actual_timePrefix"
suffix="turning_shutter.timeUnit" />
<text role="turning_shutter1" property="wanted_pulseTimems" prefix="turning_shutter.wanted_timePrefix"
suffix="turning_shutter.timeUnit" />
</table_composite>
......@@ -93,10 +73,15 @@
</table_composite>
</group>
</switchable_composite>
<newLine />
<button role="turning_shutter1" command="raz" prefix="turning_shutter.raz"/>
<summary>
<summary_content>
<label role="turning_shutter1" property="exec_mode" valuesAndLabels="turning_shutter.modeStop,turning_shutter.modeSquare,turning_shutter.modePulse,turning_shutter.modeContinu" />
<newLine />
<switchable_composite switch_values="2" switcher_key="exec_modeSwitcher">
<label role="turning_shutter1" property="actualPulseSeqNb" prefix="turning_shutter.actual_continuSeqPrefix" spaceBefore="false"/>
</switchable_composite>
......@@ -107,15 +92,7 @@
<label role="turning_shutter1" property="actualSquareSeqNb" prefix="turning_shutter.actual_continuSeqPrefix" spaceBefore="false"/>
</switchable_composite>
<newLine />
<label role="turning_shutter1" property="controllerStatus" prefix="turning_shutter.controllerstatusPrefix" valuesAndLabels="turning_shutter.statusInit,turning_shutter.statusAttente,turning_shutter.statusSinus,turning_shutter.statusSpeed,turning_shutter.statusError,turning_shutter.statusPosition" />
<newLine />
<newLine />
<label role="turning_shutter1" property="axis_status" prefix="turning_shutter.statusPrefix" valuesAndLabels="turning_shutter.statusAttente,turning_shutter.statusError,turning_shutter.statusMoving" />
<newLine />
<newLine />
<label role="turning_shutter1" property="idStatus" prefix="turning_shutter.idstatusPrefix" />
<newLine />
<label role="turning_shutter1" property="locStatus" prefix="turning_shutter.locstatusPrefix" />
<label role="turning_shutter1" property="status" prefix="turning_shutter.statusPrefix" valuesAndLabels="turning_shutter.statusAttente,turning_shutter.statusError,turning_shutter.statusMoving" />
<newLine />
<newLine />
<label role="turning_shutter1" property="connectStatus" prefix="turning_shutter.connectstatusPrefix" valuesAndLabels="turning_shutter.statusDisconnected,turning_shutter.statusConnected" />
......
......@@ -81,6 +81,7 @@ static const char COMMAND_MRESET_DEVICE_CONTAINER[] = "mreset";
static const char COMMAND_CRESET_DEVICE_CONTAINER[] = "creset";
static const char COMMAND_SET_TEMP_DEVICE_CONTAINER[] = "setTemp";
static const char COMMAND_RESET_VOLUME_DEVICE_CONTAINER[] = "resetVolume";
static const char COMMAND_RESET_POS_DEVICE_CONTAINER[] = "raz";
// Rio Chopper
static const char COMMAND_NEW_FREQUENCY_DEVICE_CONTAINER[] = "newFrequency";
......
......@@ -34,6 +34,8 @@ void PerfectPfc200Driver::init() {
void PerfectPfc200Driver::read() {
}
void PerfectPfc200Driver::raz() {
}
void PerfectPfc200Driver::start() {
owner()->commandProgression = PROGRESSION_END_DEVICE_CONTAINER;
......
......@@ -77,6 +77,10 @@ public:
*/
virtual void continuMove();
/*
* reset Position command implementation
*/
virtual void raz();
/**
......
......@@ -41,6 +41,7 @@ const int32 Pfc200Driver::SQUARE_MODE = 1;
const int32 Pfc200Driver::PULSE_MODE = 2;
const int32 Pfc200Driver::CONTINU_MODE = 3;
const int32 Pfc200Driver::MOVE_MODE = 4;
const string Pfc200Driver::RESET_POS_COMMAND = "resetPos";
Pfc200Driver::Pfc200Driver(const string& name) :
......@@ -95,15 +96,18 @@ Pfc200Driver::Pfc200Driver(const string& name) :
initCommand(COMMAND_STATUS_DEVICE_CONTAINER);
initCommand(COMMAND_START_DEVICE_CONTAINER);
initCommand(COMMAND_STOP_DEVICE_CONTAINER);
initCommand(COMMAND_RAZ_DEVICE_CONTAINER);
initCommand(RESET_POS_COMMAND);
registerFunction(NONE_FUNCTION);
updateValue(DEVICE_TYPE_DEVICE_CONTAINER, string(LEAF_DEVICE_TYPE_DEVICE_CONTAINER));
registerSpyCommand(COMMAND_READ_DEVICE_CONTAINER, 2);
registerSpyCommand(COMMAND_STATUS_DEVICE_CONTAINER, 2);
registerObserverCommand(COMMAND_READ_DEVICE_CONTAINER, 1);
registerObserverCommand(COMMAND_STATUS_DEVICE_CONTAINER, 1);
registerSpyCommandMs(driver::READ_COMMAND, 1);
registerSpyCommandMs(driver::STATUS_COMMAND, 1);
registerObserverCommand(driver::READ_COMMAND, 1);
registerObserverCommand(driver::STATUS_COMMAND, 1);
}
Pfc200Driver::~Pfc200Driver() {
......@@ -132,10 +136,14 @@ void Pfc200Driver::execute(const string& aCommand) {
startActivated = true;
currentState->start();
} else if (aCommand == RESET_POS_COMMAND) {
currentState->raz();
} else if (aCommand == COMMAND_STOP_DEVICE_CONTAINER) {
currentState->stop();
} else {
} else if (aCommand == COMMAND_RAZ_DEVICE_CONTAINER) {
currentState->raz();
}else {
//Error bad command
}
}
......
......@@ -65,18 +65,18 @@ public:
/**
* Properties
*/
Property<int32, SETPOINT> squareSpeed1;
Property<float64, SETPOINT> squareSpeed1;
Property<int32, SETPOINT> squareAngle1;
Property<int32, SETPOINT> squareTimems1;
Property<int32, SETPOINT> squareSpeed2;
Property<float64, SETPOINT> squareSpeed2;
Property<int32, SETPOINT> squareAngle2;
Property<int32, SETPOINT> squareTimems2;
Property<int32, SETPOINT> pulseSpeed;
Property<float64, SETPOINT> pulseSpeed;
Property<int32, SETPOINT> pulseAngle;
Property<int32, SETPOINT> pulseTimems;
DynamicProperty<int32> continuSpeed;
DynamicProperty<float64> continuSpeed;
DynamicProperty<int32> continuTimems;
Property<int32> idStatus;
......@@ -110,6 +110,7 @@ public:
static const int32 PULSE_MODE;
static const int32 CONTINU_MODE;
static const int32 MOVE_MODE;
static const std::string RESET_POS_COMMAND;
private:
......
......@@ -47,6 +47,11 @@ public:
*/
virtual void read() = 0;
/**
* raz the value.
*/
virtual void raz() = 0;
/**
* Start the execution.
*/
......
......@@ -35,7 +35,7 @@ namespace pfc200 {
RealPfc200Driver::RealPfc200Driver(Pfc200Driver * owner) :
Pfc200State(owner) {
Pfc200State(owner) {
}
RealPfc200Driver::~RealPfc200Driver() {
......@@ -47,8 +47,8 @@ void RealPfc200Driver::init() {
}
void RealPfc200Driver::read() {
cout << "RealPfc200Driver::read() "<<endl;
// cout << "RealPfc200Driver::read() "<<endl;
readStatus();
// Read actual angle
int32 value = static_cast<int32>(owner()->readModbus(ACTUAL_POSITION_REGISTER));
owner()->actualPosition = value ;
......@@ -60,6 +60,8 @@ void RealPfc200Driver::read() {
// Read actual amplitude
owner()->locStatus = static_cast<int32>(owner()->readModbus(LOC_ERROR_REGISTER));
owner()->idStatus = static_cast<int32>(owner()->readModbus(ID_ERROR_REGISTER));
// cout << "locStatus -->"<< owner()->locStatus()<<endl;
// cout << "idStatus -->"<< owner()->idStatus()<<endl;
usleep(10000);
......@@ -74,13 +76,13 @@ void RealPfc200Driver::read() {
usleep(10000);
owner()->remainingTimeSquareSeq= (static_cast<int32>(owner()->readModbus(REMAINING_TIME_SQUARE_MSB_REGISTER))<< 16) + static_cast<int32>(owner()->readModbus(REMAINING_TIME_SQUARE_LSB_REGISTER));
owner()->remainingTimeSquareSeq= (static_cast<int32>(owner()->readModbus(REMAINING_TIME_SQUARE_MSB_REGISTER))<< 16) + static_cast<int32>(owner()->readModbus(REMAINING_TIME_SQUARE_LSB_REGISTER))/1000;
usleep(10000);
owner()->remainingTimePulseSeq= (static_cast<int32>(owner()->readModbus(REMAINING_TIME_PULSE_MSB_REGISTER))<< 16) + static_cast<int32>(owner()->readModbus(REMAINING_TIME_PULSE_LSB_REGISTER));
owner()->remainingTimePulseSeq= (static_cast<int32>(owner()->readModbus(REMAINING_TIME_PULSE_MSB_REGISTER))<< 16) + static_cast<int32>(owner()->readModbus(REMAINING_TIME_PULSE_LSB_REGISTER))/1000;
usleep(10000);
owner()->remainingTimeContinuSeq= (static_cast<int32>(owner()->readModbus(REMAINING_TIME_CONTINU_MSB_REGISTER))<< 16) + static_cast<int32>(owner()->readModbus(REMAINING_TIME_CONTINU_LSB_REGISTER));
owner()->remainingTimeContinuSeq= (static_cast<int32>(owner()->readModbus(REMAINING_TIME_CONTINU_MSB_REGISTER))<< 16) + static_cast<int32>(owner()->readModbus(REMAINING_TIME_CONTINU_LSB_REGISTER))/1000;
......@@ -103,6 +105,10 @@ void RealPfc200Driver::start() {
} else if (owner()->execMode() == Pfc200Driver::CONTINU_MODE) {
continuMove();
}
else if (owner()->execMode() == Pfc200Driver::STOP_MODE) {
stop();
}else {
cerr << "execution mode for PFC200 driver does not exist" << endl;
owner()->commandStatus.setError();
......@@ -116,18 +122,18 @@ void RealPfc200Driver::start() {
void RealPfc200Driver::stop() {
cout << "executing stop command" << endl;
cout << "RealPfc200Driver executing stop command" << endl;
if (owner()->execMode() == Pfc200Driver::SQUARE_MODE) {
owner()->writeModbus(COMMAND_REGISTER, STOP_SQUARE);
// if (owner()->execMode() == Pfc200Driver::SQUARE_MODE) {
owner()->writeModbus(COMMAND_REGISTER, STOP_SQUARE);
} else if (owner()->execMode() == Pfc200Driver::PULSE_MODE) {
owner()->writeModbus(COMMAND_REGISTER, STOP_PULSE);
// } else if (owner()->execMode() == Pfc200Driver::PULSE_MODE) {
owner()->writeModbus(COMMAND_REGISTER, STOP_PULSE);
} else if (owner()->execMode() == Pfc200Driver::CONTINU_MODE) {
owner()->writeModbus(COMMAND_REGISTER, STOP_CONTINU);
// } else if (owner()->execMode() == Pfc200Driver::CONTINU_MODE) {
owner()->writeModbus(COMMAND_REGISTER, STOP_CONTINU);
}
// }
owner()->commandStatus.setIdle();
owner()->commandProgression = 100;
......@@ -139,7 +145,7 @@ void RealPfc200Driver::stop() {
*/
void RealPfc200Driver::pulseMove() {
int32 valtowrite;
//Split
int32 valmsb = owner()->wantedPulseSeqNb() >> 16;
......@@ -152,11 +158,12 @@ void RealPfc200Driver::pulseMove() {
usleep(10000);
owner()->writeModbus(WANTED_PULSE_ANGLE_REGISTER, owner()->pulseAngle.setpoint());
usleep(10000);
owner()->writeModbus(WANTED_PULSE_SPEED_REGISTER, owner()->pulseSpeed.setpoint());
owner()->writeModbus(WANTED_PULSE_SPEED_REGISTER, owner()->pulseSpeed.setpoint()*10);
usleep(10000);
valmsb = owner()->pulseTimems.setpoint() >> 16;
vallsb = owner()->pulseTimems.setpoint() & 0x0000FFFF;
valtowrite= owner()->pulseTimems.setpoint()*1000;
valmsb = valtowrite >> 16;
vallsb = valtowrite & 0x0000FFFF;
// Write registers
owner()->writeModbus(WANTED_PULSE_TIME_LSB_REGISTER, vallsb);
......@@ -174,6 +181,8 @@ void RealPfc200Driver::pulseMove() {
*/
void RealPfc200Driver::squareMove() {
int32 valtowrite;
//Split
int32 valmsb = owner()->wantedSquareSeqNb() >> 16;
......@@ -186,11 +195,12 @@ void RealPfc200Driver::squareMove() {
usleep(10000);
owner()->writeModbus(WANTED_SQUARE_ANGLE1_REGISTER, owner()->squareAngle1.setpoint());
usleep(10000);
owner()->writeModbus(WANTED_SQUARE_SPEED1_REGISTER, owner()->squareSpeed1.setpoint());
owner()->writeModbus(WANTED_SQUARE_SPEED1_REGISTER, owner()->squareSpeed1.setpoint()*10);
usleep(10000);
valtowrite= owner()->squareTimems1.setpoint()*1000;
valmsb = owner()->squareTimems1() >> 16;
vallsb = owner()->squareTimems1() & 0x0000FFFF;
valmsb = valtowrite >> 16;
vallsb = valtowrite & 0x0000FFFF;
// Write registers
owner()->writeModbus(WANTED_SQUARE_TIME1_LSB_REGISTER, vallsb);
......@@ -200,11 +210,12 @@ void RealPfc200Driver::squareMove() {
owner()->writeModbus(WANTED_SQUARE_ANGLE2_REGISTER, owner()->squareAngle2.setpoint());
usleep(10000);
owner()->writeModbus(WANTED_SQUARE_SPEED2_REGISTER, owner()->squareSpeed2.setpoint());
owner()->writeModbus(WANTED_SQUARE_SPEED2_REGISTER, owner()->squareSpeed2.setpoint()*10);
usleep(10000);
valtowrite=owner()->squareTimems2.setpoint()*1000;
valmsb = owner()->squareTimems2.setpoint() >> 16;
vallsb = owner()->squareTimems2.setpoint() & 0x0000FFFF;
valmsb = valtowrite >> 16;
vallsb = valtowrite & 0x0000FFFF;
// Write registers
owner()->writeModbus(WANTED_SQUARE_TIME2_LSB_REGISTER, vallsb);
......@@ -224,6 +235,8 @@ void RealPfc200Driver::squareMove() {
*/
void RealPfc200Driver::continuMove() {
int32 valtowrite;
// Write registers
......@@ -233,10 +246,12 @@ void RealPfc200Driver::continuMove() {
for (int32 i = 0; i < owner()->wantedContinuSeqNb(); i++) {
owner()->writeModbus(WANTED_CONTINU_PARAM_REGISTER + i *WANTED_CONTINU_OFFSET_REGISTER , owner()->continuSpeed.get(i));
owner()->writeModbus(WANTED_CONTINU_PARAM_REGISTER + i *WANTED_CONTINU_OFFSET_REGISTER , owner()->continuSpeed.get(i)*10);
valtowrite=owner()->continuTimems.get(i)*1000;
int32 valmsb = owner()->continuTimems.get(i) >> 16;
int32 vallsb = owner()->continuTimems.get(i) & 0x0000FFFF;
int32 valmsb = valtowrite >> 16;
int32 vallsb = valtowrite & 0x0000FFFF;
// Write registers
owner()->writeModbus(WANTED_CONTINU_PARAM_REGISTER + i *WANTED_CONTINU_OFFSET_REGISTER+WANTED_CONTINU_TIME_LSB_OFFSET_REGISTER, vallsb);
usleep(10000);
......@@ -249,39 +264,58 @@ void RealPfc200Driver::continuMove() {
}
/*
* resetVolume
*/
void RealPfc200Driver::raz() {
// Write registers
owner()->writeModbus(COMMAND_REGISTER, ZERO);
usleep(10000);
}
void RealPfc200Driver::readStatus() {
// get status
int32 status = owner()->readModbus(STATUS_REGISTER);
int32 sta = owner()->readModbus(STATUS_REGISTER);
sta= sta & 0xFFF;
cout << "status before-->"<< hex<<sta<<dec <<endl;
cout << "status -->"<< hex<<status <<dec<<endl;
int32 valueout = 0;
if (status & MOVING) {
valueout |= axis::AxisCommon::MOVING;
} else if (status & STOPPED) {
valueout |= axis::AxisCommon::BRAKE_ACTIVATED;
owner()->commandProgression = PROGRESSION_END_DEVICE_CONTAINER;
}else if (status & VAR_ERROR) {
valueout |= axis::AxisCommon::EMERGENCY_STOP;
if ((sta & MOVING)==MOVING) {
valueout = axis::AxisCommon::MOVING;
owner()->status.update(MOVING);
cout << "MOVING" <<endl;
} else if ((sta & STOPPED)==STOPPED) {
valueout = axis::AxisCommon::IN_PRECISION;
owner()->status.update(STOPPED);
// owner()->commandProgression = PROGRESSION_END_DEVICE_CONTAINER;
cout << "STOPPED"<<endl;
}else if ((sta & VAR_ERROR)==VAR_ERROR) {
valueout = axis::AxisCommon::BRAKE_ACTIVATED;
owner()->status.update( VAR_ERROR);
owner()->commandProgression = PROGRESSION_END_DEVICE_CONTAINER;
cout << "VAR_ERROR " <<endl;
}
if (status & COM_OK) {
if (sta & COM_OK) {
owner()->connectStatus=1;
}else{
owner()->connectStatus=0;
}
status= status & 0x7FF;
owner()->status.update(status);
owner()->axisStatus.update(valueout);
// owner()->commandProgression = PROGRESSION_END_DEVICE_CONTAINER;
// stop();
}
owner()->axisStatus.update(owner()->status());
cout << "status -->"<<owner()->status() <<endl;
// owner()->commandProgression = PROGRESSION_END_DEVICE_CONTAINER;
// stop();
}
}
......@@ -80,6 +80,10 @@ public:
*/
virtual void continuMove();
/*
* reset Position command implementation
*/
virtual void raz();
/**
* Read status
......
......@@ -38,6 +38,9 @@ void SimulatedPfc200Driver::init() {
void SimulatedPfc200Driver::read() {
}
void SimulatedPfc200Driver::raz() {
}
void SimulatedPfc200Driver::start() {
owner()->commandProgression = PROGRESSION_END_DEVICE_CONTAINER;
}
......
......@@ -78,6 +78,10 @@ public:
*/
virtual void continuMove();
/*
* reset Position command implementation
*/
virtual void raz();
/**
* Read status
......
......@@ -52,7 +52,7 @@ void TcpPfc200Driver::openModbus() {
*/
void TcpPfc200Driver::writeModbus(int32 reg, int32 value) {
cout<< "TcpPfc200Driver::writeModbus"<< endl;
//cout<< "TcpPfc200Driver::writeModbus"<< endl;
writeSingleRegister(reg, value);
}
......@@ -62,7 +62,7 @@ void TcpPfc200Driver::writeModbus(int32 reg, int32 value) {
*/
int32 TcpPfc200Driver::readModbus(int32 reg) {
int32 i32;
cout<< "TcpPfc200Driver::readModbus"<< endl;
//cout<< "TcpPfc200Driver::readModbus"<< endl;
i32 = readInputRegister(reg);
return i32;
......
TcpPfc200.statusPrefix=Actual status:
TcpPfc200.statusPrefix=Status:
TcpPfc200.controllerstatusPrefix=Controller status:
TcpPfc200.idstatusPrefix=ID Error Code:
TcpPfc200.locstatusPrefix=LOC Error Code:
......@@ -42,6 +42,8 @@ TcpPfc200.wanted_continuSeqPrefix=Number of Sequences
#Combo mode
TcpPfc200.modeStopValue=0
TcpPfc200.modeStopLabel=Stop mode
TcpPfc200.modeSquareValue=1
TcpPfc200.modeSquareLabel=Square mode
TcpPfc200.modePulseValue=2
......@@ -50,12 +52,12 @@ TcpPfc200.modeContinuValue=3
TcpPfc200.modeContinuLabel=Continu mode
#Values & Labels of Status
TcpPfc200.statusAttenteValue=0
TcpPfc200.statusAttenteValue=32
TcpPfc200.statusAttenteLabel=Idle
TcpPfc200.statusErrorValue=32
TcpPfc200.statusErrorValue=4
TcpPfc200.statusErrorLabel=Error
TcpPfc200.statusMovingValue=64
TcpPfc200.statusMovingLabel=Speed
TcpPfc200.statusMovingValue=16
TcpPfc200.statusMovingLabel=Moving
#Values & Labels of FunctionStatus
TcpPfc200.statusDisconnectedValue=0
......@@ -71,6 +73,6 @@ TcpPfc200.continuGroup=Continu
#Units
TcpPfc200.frequencyUnit=Hz
TcpPfc200.speedUnit=rpm
TcpPfc200.speedUnit=%Vmax
TcpPfc200.degreeUnit=~degree
TcpPfc200.timeUnit=ms
TcpPfc200.timeUnit=s
......@@ -3,9 +3,11 @@
<controller type="TcpPfc200">
<property name="actual_squareSpeed1" type="long" max_length="4">
<property name="actual_squareSpeed1" type="double" max_length="4">
<decimal_format nb_decimal_places="1"/>
</property>
<property name="wanted_squareSpeed1" type="long" max_length="4">
<property name="wanted_squareSpeed1" type="double" max_length="4">
<decimal_format nb_decimal_places="1"/>
</property>
......@@ -20,13 +22,14 @@
<property name="wanted_squareTimems1" type="long" max_length="6">
</property>
<property name="actual_squareSpeed2" type="long" max_length="4">
<property name="actual_squareSpeed2" type="double" max_length="4">
<decimal_format nb_decimal_places="1"/>
</property>
<property name="wanted_squareSpeed2" type="long" max_length="4">
<property name="wanted_squareSpeed2" type="double" max_length="4">
<decimal_format nb_decimal_places="1"/>
</property>
<property name="actual_squareAngle2" type="long" max_length="4">
</property>
<property name="wanted_squareAngle2" type="long" max_length="4">
......@@ -43,9 +46,11 @@
<property name="actual_pulseSpeed" type="long" max_length="4">
<property name="actual_pulseSpeed" type="double" max_length="4">
<decimal_format nb_decimal_places="1"/>
</property>
<property name="wanted_pulseSpeed" type="long" max_length="4">
<property name="wanted_pulseSpeed" type="double" max_length="4">
<decimal_format nb_decimal_places="1"/>
</property>
......@@ -61,7 +66,9 @@
</property>
<dynamic_property name="continuSpeed" size_property="wantedContinuSeqNb" type="long" max_length="6">
<dynamic_property name="continuSpeed" size_property="wantedContinuSeqNb" type="double" max_length="6">
<decimal_format nb_decimal_places="1"/>
</dynamic_property>
<dynamic_property name="continuTimems" size_property="wantedContinuSeqNb" type="long" max_length="6">
</dynamic_property>
......
......@@ -4,7 +4,7 @@
switcher_key="exec_modeSwitcher" />
<newLine />
<combo role="TcpPfc2001" property="exec_mode"
valuesAndLabels="TcpPfc200.modeSquare,TcpPfc200.modePulse,TcpPfc200.modeContinu" />
valuesAndLabels="TcpPfc200.modeStop,TcpPfc200.modeSquare,TcpPfc200.modePulse,TcpPfc200.modeContinu" />
<newLine />
<switchable_composite switch_values="1"
switcher_key="exec_modeSwitcher">
......@@ -107,8 +107,6 @@
<label role="TcpPfc2001" property="actualSquareSeqNb" prefix="TcpPfc200.actual_continuSeqPrefix" spaceBefore="false"/>
</switchable_composite>
<newLine />
<label role="TcpPfc2001" property="controllerStatus" prefix="TcpPfc200.controllerstatusPrefix" valuesAndLabels="TcpPfc200.statusInit,TcpPfc200.statusAttente,TcpPfc200.statusSinus,TcpPfc200.statusSpeed,TcpPfc200.statusError,TcpPfc200.statusPosition" />
<newLine />
<newLine />
<label role="TcpPfc2001" property="axis_status" prefix="TcpPfc200.statusPrefix" valuesAndLabels="TcpPfc200.statusAttente,TcpPfc200.statusError,TcpPfc200.statusMoving" />
<newLine />
......