User Tools

Site Tools


commands:bcustom

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Previous revision
commands:bcustom [2019/04/12 00:16]
commands:bcustom [2019/05/13 22:36] (current)
vik
Line 1: Line 1:
 +====== Command:​BCUSTOM (BCA) ======
  
 +--> MS2000 or RM2000 syntax#
 +
 +^Shortcut ​ |BCA   ​| ​
 +^Format ​ |BCA [X=@ Normal Press] [Y = @ Long Press] [ Z= @ Extra Long Press] [F= Home Long Press] [T= Home Extra Long Press] [R=JS Normal Press] [M = JS Long Press] ​  |
 +^Units |Integer code (see table below)|
 +^Firmware Version Required |9.2g+ |
 +^Remembered |Using SS Z |
 +
 +<--
 +
 +--> Tiger syntax# ​
 +
 +^Shortcut ​ |BCA   ​| ​
 +^Format ​ |[addr#]BCA [X=@ Normal Press] [Y = @ Long Press] [ Z= @ Extra Long Press] [F= Home Long Press] [T= Home Extra Long Press] [R=JS Normal Press] [M = JS Long Press] ​  |
 +^Units |Integer code (see table below)|
 +^Type    |Card-Addressed ​ |
 +^Firmware Version Required |3+ |
 +^Remembered |Using [addr#]SS Z |
 +
 +<--
 +
 +In Tiger version 3.0+ and MS2000 version 9.2g+ the Button Function assignment has been rewritten to be more flexible. Every possible button function is now assigned a number. This function can be assigned to any button (@,Home and Joystick Button) and any press duration (Normal, Long and Extra Long press) thru the BCA commands X,Y,Z,F,T,R and M arguments.
 +
 +The settings of BCUSTOM are automatically saved in non-volatile memory when changed, they will be available even on controller restart.
 +
 +As of Tiger version 3.18 and MS2000 version 9.2l a button function can be initiated over serial using the ''​BE F''​ command ([[commands:​benable|BENABLE]]). ​ The function doesn'​t need to be assigned to a particular button for this to work.
 +
 +<WRAP center round box 60%>
 +Note: Behavior of this command is very different pre Tiger version 3.0 and MS2000 version 9.2g
 +</​WRAP>​
 +
 +
 +
 +
 +== Press Dur: ==
 +
 +  * When button is held down for an instant to 1 sec, it's a Normal Press
 +  * When button is held down for 1sec to 3sec, it's a Long Press
 +  * When button is held down for 3sec and more, it's an Extra Long Press
 +
 +== Table below lists and describes all possible button functions ==
 +
 +^No ^Function ^
 +|0 |No function performed ​                                                                                                    |
 +|1 |Smart Move related, ​                                                                                                      |
 +|2 |Toggles Knob between two axis, like Z and F                                                                               |
 +|3 |TRACKING,​CRISP,​LSRTRK related, short press functions. Steps from IDLE to Calibration states to lock and unlock state. ​    |
 +|4 |CLOCKED DEVICE related, moves clocked devices like Turret and slider to next position ​                                    |
 +|5 |ARRAY MODULE related,​same as [[commands:​array|Command:​ARRAY (AR)]]. When [[commands:​ttl|TTL X=7]] does move to next array position. ​                                                               |
 +|6 |RING BUFFER related, move to next ring buffer position; On TGLED card, button press mimics TTL pulse <wrap lo>​verion 3.24+</​wrap>​. ​                                            |
 +|7 |SCAN MODULE related, halts scan move                                                                                      |
 +|8 |AUTOFOCUS related, performs autofocus routine. ​                                                                           |
 +|9 |CRIFF related, toggle CRIFF lock                                                                                          |
 +|10 |AT_XYZ_KNOB related, changes xyz knob state. Cycles knob control between x,y,z axis.                                      |
 +|11 |AT_XYZF_KNOB related, changes xyzf knob state. Cycles knob control between x,y,z and f axis.                              |
 +|12 |ZLOADER related, Moves Z to its lower limit and back.                                                                     |
 +|13 |CRISP and TRACKING related, performs CRISP very long press functions ​                                                                  |
 +|14 |ADEPT related, toggles between piezo external and internal input mode                                                     |
 +|15 |CRISP and TRACKING related, performs CRISP long press functions. Stops current CRISP operation like stop dither, unlock etc.           |
 +|16 |ARRAY MODULE related, puts ARRAY Module in start state                                                                    |
 +|17 |CRIFF related, change CRIFF state. ​                                                                                       |
 +|18 |RING BUFFER related, loads current stage position into ring buffer ​                                                       |
 +|19 |AT RAMM LOAD related, moves Y and F axis to their upper and lower limits. ​                                                |
 +|20 |SCAN MODULE related, puts SCAN MODULE is start state                                                                      |
 +|21 |AUTOFOCUS related, performs autofocus calibration ​                                                                        |
 +|22 |ZOOM related, sets up zoom profile ​                                                                                       |
 +|23 |PLANAR CORRECTION related, sets  planar correction points ​                                                                |
 +|24 |RING BUFFER related, clears ring buffer ​                                                                                  |
 +|25 |TOGGLE ALL AXES related, swaps knob control between two axes.                                                             |
 +|26 |TRACKING related, short press function ​                                                                                   |
 +|27 |JS PULSE related, sets TTL in ready state                                                                                 |
 +|28 |JS_FASTSLOW related, toggles joystick speed between fast and slow                                                         |
 +|29 |PLANAR CORRECTION related, resets planar correction ​                                                                      |
 +|30 |CLOCKED DEVICE related, moves clocked devices like Turret and slider to previous position ​                                |
 +|31 |JS_FASTSLOW related, sets joystick speed to fast                                                                          |
 +|32 |JS_FASTSLOW related, sets joystick speed to slow                                                                          |
 +|33 |LED related, increase LED intensity ​                                                                                      |
 +|34 |LED related, decrease LED intensity ​                                                                                      ​| ​  
 +|35 |LED related, toggle LED ON and OFF                                                                                       ​| ​                                                                               ​
 +== Example: ==
 +Take a firmware build like  ''​STD_XY''​ . This firmware is packed with modules like,
 +  * Ring Buffer module
 +  * JS_FASTSLOW,​ joystick button press toggles joystick speed between fast slow.
 +
 +In a built like this there are a lot of modules fighting for control of the buttons. There is a priority list that sets up the defaults button function . Lets Query the controller on what the default assignments ended up being. ​
 +
 +--> Tiger Example#
 +
 +<asi> $ 1BCA X? Y? Z? F? T? R? M?
 +X=0 Y=0 Z=0 F=0 T=0 R=28 M=18 
 +X: @ Normal ​
 +Y: @ Long 
 +Z: @ Ext Long 
 +F: Home Long 
 +T: Home Ext Long 
 +R: Js btn Normal ​
 +M: Js btn Long 
 +<LF>
 +</​asi>​
 +
 +<--
 +
 +--> MS2000 Example#
 +
 +<asi> $ BCA X? Y? Z? F? T? R? M?
 +X=0 Y=0 Z=0 F=0 T=0 R=28 M=18 
 +X: @ Normal ​
 +Y: @ Long 
 +Z: @ Ext Long 
 +F: Home Long 
 +T: Home Ext Long 
 +R: Js btn Normal ​
 +M: Js btn Long 
 +<LF>
 +</​asi>​
 +
 +<--
 +
 +So 
 +@ normal press, does nothing
 +@ long press, does nothing
 +@ extra long press, does nothing
 +Home long press, does nothing
 +Home extra long press, does nothing
 +Joystick button normal press, toggles joystick speed
 +Joystick button long press, loads current position into ring buffer. ​
 +
 +If user wants the Ring Buffer to be more prominent, then following command can be issued.
 +
 +-->Tiger Example#
 +
 +<asi> $ 1BCA X=6 F=24 R=18 M=28
 +:A
 +<​LF></​asi>​  ​
 +
 +<--
 +
 +-->​MS2000 Example#
 +
 +<asi> $ BCA X=6 F=24 R=18 M=28
 +:A
 +<​LF></​asi>​  ​
 +
 +<--
 +
 +Now,
 +@ normal press, moves to next ring buffer position
 +Home long press, clear the ring buffer
 +Joystick button normal press, loads current stage position into ring buffer
 +Joystick button long press, toggles joystick speed
 +
 +==== Tiger example scenario ====
 +
 +<​asi>​30:​ Comm v3.26 TIGER_COMM Apr 09 2019:​15:​52:​41 ​
 +31: X:​XYMotor,​Y:​XYMotor v3.25 STD_XY_LED Mar 18 2019:​15:​56:​27 ​
 +32: Z:​ZMotor,​S:​Slider v3.26 STDZ_SLDR8 Apr 30 2019:​08:​40:​35 ​
 +33: O:Tur v3.26 TURRET_SINGLE Apr 30 2019:​08:​41:​10</​asi>​
 +
 +A user with a Tiger system in the above configuration has two clocked position devices. A filter slider on card #2 and turret on card#3. They would like to move these devices with button presses. Lets set it up so that on short '​@'​ button press (less than 1-sec press) Filter slider moves, then on long'​@'​ button press (1 to 3-sec press) the turret moves. The button function that does this is '# 4' (see the table above). '​@'​ short press assigned with '​X'​ variable, and '​@'​ long press is assigned with '​Y'​ variable. ​
 +
 +<wrap cmd> 2BCA X=4 Y=0 </​wrap>,​ this tells card#2 which drives the filter slider to respond to short @ press with slider move, and ignore any long @ button presses. ​
 +
 +<wrap cmd> 3BCA X=0 Y=4 </​wrap>,​ this tells card#3 which drives the turret to respond to long @press with turret move and ignore any short @ button presses. ​
 +
 +<wrap cmd> 1BCA X=0 Y=0 </​wrap>,​ this tells card#1 which drives XY stage to ignore any short or long @ button presses. ​
 + 
 +Try it out. If you like the behavior, commit it to systems onboard memory with serial commands
 + 
 +<asi> $ 1SS Z 
 +$ 2SS Z
 +$ 3SS Z</​asi>​
 + 
 +More info on SS Z command is here, http://​www.asiimaging.com/​docs/​commands/​saveset
 + 
 +
 +
 +
 +{{tag>​commands tiger ms2000}}