setFilter#
Command description#
The command setFilter command moves a filter to ONLINE
position.
The filter is selected through its ID.
Synopsis#
setFilter <filter_id>
where <filter_id>
is the id of the filter to move ONLINE
.
Example#
If we want to put filter G ONLINE
, as id of filter G is 3 :
setFilter 3
If another filter is on autochanger trucks, it stores this filter on the carousel, then moves empty autochanger trucks to HANDOFF
position. Then it rotates the carousel in order to put the required filter at STANDBY
position. Then autochanger trucks move to STANDBY
, latches are closed. Carousel unlocks the clamps. And eventualy autochanger trucks moves the required filter to ONLINE
.
Conditions to execute setFilter command#
Command setFilter is available only for whole subsystem fcs, when carousel and autochanger are on the same CANbus.
To be able to execute setFilter commands, all the following conditions must be respected :
- the filter id given as argument must exist, and the required filter must be on the camera, on autochanger or on carousel.
- loader is not connected
- all the CAN open devices for subsystems carousel and autochanger must be present on the CANbus and responding
- no motor controller is in default mode
- carousel is stopped at
STANDBY
position and there is no error on the clamps sensors - autochanger trucks are stopped at position :
ONLINE
,HANDOFF
orSTANDBY
- there is no error on trucks position sensors, latches, online clamps and inclinometers.
- if a filter is on autochanger trucks at
HANDOFF
orONLINE
, the carousel socket atSTANDBY
position must be empty and in state :READY_TO_CLAMP
, the autochanger latches must beCLOSED
- if a filter it on autochanger trucks at
STANDBY
position, the carousel or the autochanger must hold the filter : latches must be in stateCLOSED
or carousel clamps must beCLAMPEDONFILTER
- if a filter is at
ONLINE
, the online clamps must be in stateLOCKED
- When command setFilter is launched, all these conditions above are checked.
If one of this conditions is not respected, the FCS FilterReadinessState is set to NOT_READY
and the command setFilter is rejected.
Condition non respected | Action to perform | FCS command | Expected result | FCS command to check result |
---|---|---|---|---|
loader is connected | loader must be disconnected | loader/isConnectedOnCamera response: FALSE | ||
error on sensors | See hardware recovery procedure | human intervention is required to change or repair sensors in error | sensors are no more in error | |
a CAN open device is not powered on or does no respond on CAN bus | check and repair CANbus cable, electric power | initializeHardware | FilterReadinessState should be READY | fcs/getFilterReadinessState response: READY |
a motor controller is in fault | send a command to the controller to reset the fault | controller/faultReset | the controller is no more in fault | controller/checkFault |
carousel is not stopped at STANDBY | rotate carousel in order to put it at STANDBY position | carousel/rotateSocketToStandby | carousel should be stopped at STANDBY | carousel/isAtStandby response: true |
a filter is on autochanger trucks and trucks are in state IN_TRAVEL AND the filter on autochanger is the one we want to put at ONLINE ,AND the filter is free to move | move filter to ONLINE | autochanger/moveAndClampFilterOnline | filter is at ONLINE | autochanger/isAtOnline response: TRUE |
a filter is on autochanger trucks and trucks are in state IN_TRAVEL AND the filter on autochanger is the NOT the one we want to put at ONLINE AND carousel socket at STANDBY is empty | store filter on carousel | storeCurrentFilterOnCarousel | filter is on carousel at STANDBY | carousel/isAtStandby response: TRUE |
The Filter is on Auto Changer at Stand-By position AND The filter is locked on the Carousel clamps One of the latches or the two latches are in TRAVEL | close the Latches | autochanger/closeLatches | latches are closed | latches/isClosed response: true |
Commands useful for setFilter recovery#
setFilter command is a sequence of lower level commands.
Each of this lower level commands can be launched individualy.
setFilter sub-commands sequence#
Seq # | Target component | Command name |
---|---|---|
1 | fcs | storeFilterOnCarousel |
2 | carousel | rotateSocketToStandby arg : socket name |
3 | autochanger | grabFilterAtStandby |
4 | fcs | disengageFilterFromCarousel |
5 | autochanger | moveAndClampFilterOnline |
Subsystems state during sequence#
Autochanger states#
Command name | Initial State | Final State |
---|---|---|
storeFilterOnCarousel | old filter at HANDOFF onlineClamps OPEN or old filter at ONLINE onlineClamps LOCKED | empty at HANDOFF onlineClamps OPEN |
rotateSocketToStandby arg : socket name | empty at HANDOFF | empty at HANDOFF |
grabFilterAtStandby | empty at HANDOFF latches OPEN | new filter at STANDBY latches CLOSED |
disengageFilterFromCarousel | new filter at STANDBY latches CLOSED | new filter at approachStandbyPosition |
moveAndClampFilterOnline | new filter at approachStandbyPosition | new filter at ONLINE onlineClamps LOCKED |
Carousel states#
Command name | Initial State | Final State |
---|---|---|
storeFilterOnCarousel | empty socket at STANDBY clamps READYTOCLAMP | old filter at STANDBY clamps CLAMPEDONFILTER |
rotateSocketToStandby arg : socket name | old filter at STANDBY clamps CLAMPEDONFILTER | new filter is at STANDBY clamps CLAMPEDONFILTER |
grabFilterAtStandby | new filter at STANDBY clamps CLAMPEDONFILTER | new filter at STANDBY clamps CLAMPEDONFILTER |
disengageFilterFromCarousel | new filter at STANDBY clamps CLAMPEDONFILTER | empty socket at STANDBY clamps READYTOCLAMP |
moveAndClampFilterOnline | empty socket at STANDBY clamps READYTOCLAMP | empty socket at STANDBY clamps READYTOCLAMP |