XML:
Code: Alles auswählen
<parameter id="MLR_ALPHA">
<logical type="float" min="0" max="4294.967295" />
<physical type="integer" interface="config" list="1" index="1.0" size="4" />
<conversion type="float_integer_scale" factor="1000000.0" />
</parameter>
Und im Sketch nimmst du einen uint32_t-Wert,
Code: Alles auswählen
unt32_t MLR_ALPHA () const {
return
((uint32_t)(this->readRegister(0x01, 0)) << 24) +
((uint32_t)(this->readRegister(0x02, 0)) << 16) +
((uint32_t)(this->readRegister(0x03, 0)) << 8) +
((uint32_t)(this->readRegister(0x04, 0)))
;
}
bool MLR_ALPHA (uint32_t value) const {
return
this->writeRegister(0x01, (value >> 24) & 0xff) &&
this->writeRegister(0x02, (value >> 16) & 0xff) &&
this->writeRegister(0x03, (value >> 8) & 0xff) &&
this->writeRegister(0x04, (value) & 0xff)
;
}
den du dann an der Stelle, wo du ihn unbedingt mit Dezimalstellen brauchst, wieder durch 1000000 dividierst
Ein Problem wird evtl. noch sein, dass der Dezimalwert in den Geräteeinstellungen auf 1 Stelle abgeschnitten wird.
Dann müsstest du dir noch unter
/www/config/easymodes eine eigene Konfigurationsseite bauen.
Siehe z.B. hier
https://github.com/jp112sdl/JP-HB-Devic ... master.tcl