Module: | Button |
Description: | button i/o driver |
Source: | button.asm |
Wrapper: | button.c |
button.h |
Description:
The Button module allows the user to detect incoming button presses, and "push" one of the Coke machine's soda stacks. Button pushing and the soda stacks used to be closely linked; now they are completely seperate activities.
When a button is pressed or released, the appropriate message is generated.
Messages:
MESSAGE_Button_Button0Hit | button 0 was pressed |
MESSAGE_Button_Button0Released | button 0 was released |
MESSAGE_Button_Button1Hit | button 1 was pressed |
MESSAGE_Button_Button1Released | button 1 was released |
MESSAGE_Button_Button2Hit | button 2 was pressed |
MESSAGE_Button_Button2Released | button 2 was released |
MESSAGE_Button_Button3Hit | button 3 was pressed |
MESSAGE_Button_Button3Released | button 3 was released |
MESSAGE_Button_Button4Hit | button 4 was pressed |
MESSAGE_Button_Button4Released | button 4 was released |
Commands:
cokerr Button_QueryVersion (char* versionstring)
returns the version string.
cokerr Button_QueryPattern (byte* pattern)
returns in *pattern the current state of the buttons, with each
of the five lowest bits corresponding to a button. This command is
usually only necessary to detect multiple simultaneous button pushes.
cokerr Button_Push (byte stacknum)
starts "pushing" a soda stack.
This only (physically) has an effect after
Money_AllowPurchase has been called. Button_ReleaseBeverage () is
recommended instead if the resetting problem has been fixed.
stacknum is a number between 1
and 6, indicating which soda stack to push. The command will fail if
a soda stack is already being pushed.
Errors: | ERROR_Button_InvalidStackNumber |
ERROR_Button_AlreadyPushing |
cokerr Button_ReleaseBeverage (byte stacknum)
invokes Money_AllowPurchase followed by Button_Push,
with the proper delay in between. This command will fail if the
Money driver has not been loaded.
stacknum is a number between 1
and 6, indicating which soda stack to push. This command is not
recommended until the controller resetting problem is fixed, because it is
good to know whether AllowPurchase or Push caused it to
reset.
Errors: | ERROR_Button_InvalidStackNumber |
ERROR_Button_MoneyModuleNotLoaded | |
ERROR_Button_AlreadyPushing |