ID 6 – Button – ISO 11783-6 – B.7
Auswertung des Buttons:
wird der Button gedrückt so werden folgende Nachrichten am ISOBUS abgesetzt:
BUTTON_STATE_PRESSED
in dem Moment wo der Knopf gedrückt wurde
BUTTON_STATE_HELD
falls der Knopf länger gehalten wurde
TODO Verweis auf ISO
BUTTON_STATE_RELEASED
wenn der Knopf losgelassen wurde
BUTTON_STATE_ABORTED
wenn der Knopf gedrückt, aber dann abgebrochen wurde
TODO besser beschreiben.
daraus ergibt sich:
normale „Knopfdrücke“ dürfen nur auf „released“ oder „held“ ausgewertet werden,
weil ein auswerten von „pressed“ die Abort Möglichkeit nehmen würde.
TODO: verweis auf internationale Standards, Safety etc..
es gibt 2 Wege der Auswertung:
Makro (ISO-Designer)
über einen Callback im C-Code (Eclipse)
Call Hierarchy:
iso_u32 Tageszaehler = 0;
iso_u32 Gesamtzaehler = 0;
iso_u32 Hugo = 0;
void VTC_handleSoftkeysAndButtons_RELEASED(const struct ButtonActivation_S *pButtonData) {
// what button was released
switch (pButtonData->objectIdOfButtonObject) {
case SoftKey_PlusPlus:
case Button_PlusPlus:
Tageszaehler++;
Gesamtzaehler++;
break;
case SoftKey_Reset_Gesamtzaehler:
case Button_Reset_Gesamtzaehler:
Gesamtzaehler = 0;
break;
case SoftKey_Reset_Tageszaehler:
case Button_Reset_Tageszaehler:
Tageszaehler = 0;
break;
default:
break;
}
IsoVtcCmd_NumericValue(pButtonData->u8Instance, NumberVariable_Tageszaehler, Tageszaehler);
IsoVtcCmd_NumericValue(pButtonData->u8Instance, NumberVariable_Gesamtzaehler, Gesamtzaehler);
setU32("CF-A", "Tageszaehler", Tageszaehler);
setU32("CF-A", "Gesamtzaehler", Gesamtzaehler);
}