How to control it?
How can you have an impact on what it sent through these two 16-bit fields?
1: Through switch functions
As mentioned in the previous chapter, many switch functions will automatically send info to pre-defined slots in the fields. Such as current preset selected is sent to buttonField bits 11-14 (or 10-13 if we're being strict, but in DDC we're not counting from 0 to be more user friendly). Using 4 bits, we can make a number between 0 and 15. DDC being capped at 12 presets will need 4 bits to express this number. 3 bits would only get us to 7.
If you have dual clutches set up, you're already getting info on:
Bite button pressed
Dual clutch modes
Bite point setting sequence
Clutch calibration active
Some switch functions however, does not have a reserved slot in any of the fields. You'll have to select a slot in one of the fields when you use that function in 30_Switches. For instance rotaryAnalog2Modes(). This function lets you use a rotary switch as an absolute 12-position switch OR as a pulsing incremental switch. You can swap between these two settings, and you'll send info to rotaryField about which mode you're in. 0 is for 12-position mode, 1 is for incremental mode. This function only needs one bit in the field. This function forces you to use rotaryField, others will force you to use buttonField. I've tried to balance this out so you'll end up using both and having enough bits to use.
2: Direct control
You can manipulate values in the bit fields directly by using editors. Editors are functions that lets you manually change a lot of things running under the hood. This moves us over to the more advanced parts of DDC, but it unlocks a whole bunch of possibilities for creative minds.
The functions sendToButtonField() and sendToRotaryField() can be used in 30_Switches to edit the fields however you like.
Last updated