@@ -48,6 +48,8 @@ const NO_TOOLS = [...EXPRESS_BOARDS];
4848const NO_ETHERNET = [ "express_k10" ] ;
4949const NO_ZERO_2 = [ "express_k10" ] ;
5050const NO_EXTRA_BUTTONS = [ ...EXPRESS_BOARDS ] ;
51+ const MANY_BUTTONS =
52+ [ "farmduino_k14" , "farmduino_k15" , "farmduino_k16" , "farmduino_k17" ] ;
5153const NO_TMC = [ "arduino" , "farmduino" , "farmduino_k14" ] ;
5254const HAS_WEEDER = [
5355 "arduino" , "farmduino" , "farmduino_k14" , "farmduino_k15" , "farmduino_k16" ,
@@ -61,11 +63,25 @@ export const isTMCBoard = (firmwareHardware: FirmwareHardware | undefined) =>
6163export const isExpress = ( firmwareHardware : FirmwareHardware | undefined ) =>
6264 ! ! ( firmwareHardware && EXPRESS_BOARDS . includes ( firmwareHardware ) ) ;
6365
66+ export const btnIndexList = (
67+ firmwareHardware : FirmwareHardware | undefined ,
68+ ) : { btns : number [ ] , leds : number [ ] } => {
69+ if ( ! firmwareHardware ) { return { btns : [ ] , leds : [ ] } ; }
70+ if ( NO_BUTTONS . includes ( firmwareHardware ) ) { return { btns : [ ] , leds : [ ] } ; }
71+ if ( NO_EXTRA_BUTTONS . includes ( firmwareHardware ) ) {
72+ return { btns : [ 0 ] , leds : [ ] } ;
73+ }
74+ if ( MANY_BUTTONS . includes ( firmwareHardware ) ) {
75+ return { btns : [ 0 , 1 , 2 , 3 , 4 ] , leds : [ 0 , 1 , 2 , 3 ] } ;
76+ }
77+ return { btns : [ 0 , 1 , 2 ] , leds : [ 0 , 1 ] } ;
78+ } ;
79+
6480export const hasButtons = ( firmwareHardware : FirmwareHardware | undefined ) =>
65- ! firmwareHardware || ! NO_BUTTONS . includes ( firmwareHardware ) ;
81+ btnIndexList ( firmwareHardware ) . btns . length > 0 ;
6682
6783export const hasExtraButtons = ( firmwareHardware : FirmwareHardware | undefined ) =>
68- ! firmwareHardware || ! NO_EXTRA_BUTTONS . includes ( firmwareHardware ) ;
84+ btnIndexList ( firmwareHardware ) . btns . length > 1 ;
6985
7086export const hasEncoders = ( firmwareHardware : FirmwareHardware | undefined ) =>
7187 ! firmwareHardware || ! NO_ENCODERS . includes ( firmwareHardware ) ;
0 commit comments