146 lines
5.5 KiB
Markdown
146 lines
5.5 KiB
Markdown
|
# MES events
|
||
|
|
||
|
Events and event values are generated in the Message Event Service (MES). Using MES events allows orderly interactions between the @boardname@ and external devices. These events are sent to and received from other wireless devices paired with the @boardname@ (phone, game pad, etc.).
|
||
|
|
||
|
The event source IDs represent a device feature category. The event values are actions for, or notifications about a device feature.
|
||
|
|
||
|
### ~hint
|
||
|
|
||
|
**MES system sources**
|
||
|
|
||
|
The MES events are defined in this source file of the **[microbit-dal](https://github.com/lancaster-university/microbit-dal)**:
|
||
|
|
||
|
* [MESEvents.h](https://github.com/lancaster-university/microbit-dal/blob/master/inc/bluetooth/MESEvents.h)
|
||
|
|
||
|
Also, you can see how the message bus works in the DAL core files:
|
||
|
|
||
|
* [MemberFunctionCallback.cpp](https://github.com/lancaster-university/microbit-dal/blob/master/source/core/MemberFunctionCallback.cpp)
|
||
|
* [MicroBitListener.cpp](https://github.com/lancaster-university/microbit-dal/blob/master/source/core/MicroBitListener.cpp)
|
||
|
|
||
|
### ~
|
||
|
|
||
|
## Raised events
|
||
|
|
||
|
Events are generated, or _raised_, for by the @boardname@ for a paired device. These are raised using the [raise event](/reference/control/raise-event) function.
|
||
|
|
||
|
```typescript-ignore
|
||
|
control.raiseEvent(
|
||
|
control.eventSourceId(EventBusSource.MES_REMOTE_CONTROL_ID),
|
||
|
control.eventValueId(EventBusValue.MES_REMOTE_CONTROL_EVT_VOLUMEUP)
|
||
|
);
|
||
|
```
|
||
|
|
||
|
### Remote control
|
||
|
|
||
|
Events for using the @boardname@ as a remote control for audio play.
|
||
|
|
||
|
#### MES_REMOTE_CONTROL_ID
|
||
|
|
||
|
* `MES_REMOTE_CONTROL_EVT_PLAY`: Play the current track
|
||
|
* `MES_REMOTE_CONTROL_EVT_PAUSE`: Pause the current play in progress
|
||
|
* `MES_REMOTE_CONTROL_EVT_STOP`: Stop playing and reset to the beginning of the current track
|
||
|
* `MES_REMOTE_CONTROL_EVT_NEXTTRACK`: Skip to the next track
|
||
|
* `MES_REMOTE_CONTROL_EVT_PREVTRACK`: Skip to the previous track
|
||
|
* `MES_REMOTE_CONTROL_EVT_FORWARD`: Move forward in the current track
|
||
|
* `MES_REMOTE_CONTROL_EVT_REWIND`: Move backward in the current track
|
||
|
* `MES_REMOTE_CONTROL_EVT_VOLUMEUP`: Increase the play volume (audio)
|
||
|
* `MES_REMOTE_CONTROL_EVT_VOLUMEDOWN`: Decrease the play volume (audio)
|
||
|
|
||
|
### Camera
|
||
|
|
||
|
Control camera actions on a paired device.
|
||
|
|
||
|
#### MES_CAMERA_ID
|
||
|
|
||
|
* `MES_CAMERA_EVT_LAUNCH_PHOTO_MODE`: Turn on or set the camera to _photo_ mode.
|
||
|
* `MES_CAMERA_EVT_LAUNCH_VIDEO_MODE`: Turn on or set the camera to _video_ mode.
|
||
|
* `MES_CAMERA_EVT_TAKE_PHOTO`: Capture the picture in the camera view.
|
||
|
* `MES_CAMERA_EVT_START_VIDEO_CAPTURE`: Begin capturing video (start record)
|
||
|
* `MES_CAMERA_EVT_STOP_VIDEO_CAPTURE`: End capturing video (stop record)
|
||
|
* `MES_CAMERA_EVT_STOP_PHOTO_MODE`: Stop photo mode and return to the default mode
|
||
|
* `MES_CAMERA_EVT_STOP_VIDEO_MODE`: Stop video mode and return to the default mode
|
||
|
* `MES_CAMERA_EVT_TOGGLE_FRONT_REAR`: Switch from the front camera to rear camera or rear to front
|
||
|
|
||
|
### Alerts
|
||
|
|
||
|
Trigger standard alert notifications on a device.
|
||
|
|
||
|
#### MES_ALERTS_ID
|
||
|
|
||
|
* `MES_ALERT_EVT_DISPLAY_TOAST`
|
||
|
* `MES_ALERT_EVT_VIBRATE`
|
||
|
* `MES_ALERT_EVT_PLAY_SOUND`
|
||
|
* `MES_ALERT_EVT_PLAY_RINGTONE`
|
||
|
* `MES_ALERT_EVT_FIND_MY_PHONE`
|
||
|
* `MES_ALERT_EVT_ALARM1`
|
||
|
* `MES_ALERT_EVT_ALARM2`
|
||
|
* `MES_ALERT_EVT_ALARM3`
|
||
|
* `MES_ALERT_EVT_ALARM4`
|
||
|
* `MES_ALERT_EVT_ALARM5`
|
||
|
* `MES_ALERT_EVT_ALARM6`
|
||
|
|
||
|
## Received events
|
||
|
|
||
|
Events are received by the @boardname@ from a paired device. You capture these in an [on event](/reference/control/on-event) function.
|
||
|
|
||
|
```typescript-ignore
|
||
|
control.onEvent(EventBusSource.MES_DEVICE_INFO_ID, EventBusValue.MES_DEVICE_INCOMING_CALL, () => {
|
||
|
|
||
|
})
|
||
|
```
|
||
|
|
||
|
### Carrier signal strength
|
||
|
|
||
|
Signal strength to the subscribed carrier service.
|
||
|
|
||
|
#### MES_SIGNAL_STRENGTH_ID
|
||
|
|
||
|
* `MES_SIGNAL_STRENGTH_EVT_NO_BAR`: No service available or very low signal strength
|
||
|
* `MES_SIGNAL_STRENGTH_EVT_ONE_BAR`: Low signal strength
|
||
|
* `MES_SIGNAL_STRENGTH_EVT_TWO_BAR`: Medium signal strength
|
||
|
* `MES_SIGNAL_STRENGTH_EVT_THREE_BAR`: High signal strength
|
||
|
* `MES_SIGNAL_STRENGTH_EVT_FOUR_BAR`: Full signal strength
|
||
|
|
||
|
### Device information
|
||
|
|
||
|
Information about the current status of the device
|
||
|
|
||
|
#### MES_DEVICE_INFO_ID
|
||
|
|
||
|
* `MES_DEVICE_ORIENTATION_LANDSCAPE`: Display orientation is now in landscape
|
||
|
* `MES_DEVICE_ORIENTATION_PORTRAIT`: Display orientation is now in portrait
|
||
|
* `MES_DEVICE_GESTURE_NONE`: No gesture detected for device activation
|
||
|
* `MES_DEVICE_GESTURE_DEVICE_SHAKEN`: The device was shaken
|
||
|
* `MES_DEVICE_DISPLAY_OFF`: Device display is now turned off
|
||
|
* `MES_DEVICE_DISPLAY_ON`: Device display is now turned on
|
||
|
* `MES_DEVICE_INCOMING_CALL`: Currently receiving an incoming call
|
||
|
* `MES_DEVICE_INCOMING_MESSAGE`: A message was received (SMS or other messaging app)
|
||
|
|
||
|
### Game pad controller
|
||
|
|
||
|
Button events from a paired game pad.
|
||
|
|
||
|
#### MES_DPAD_CONTROLLER_ID
|
||
|
|
||
|
* `MES_DPAD_BUTTON_A_DOWN`: Button **A** pressed
|
||
|
* `MES_DPAD_BUTTON_A_UP`: Button **A** released
|
||
|
* `MES_DPAD_BUTTON_B_DOWN`: Button **B** pressed
|
||
|
* `MES_DPAD_BUTTON_B_UP`: Button **B** released
|
||
|
* `MES_DPAD_BUTTON_C_DOWN`: Button **C** pressed
|
||
|
* `MES_DPAD_BUTTON_C_UP`: Button **C** released
|
||
|
* `MES_DPAD_BUTTON_D_DOWN`: Button **D** pressed
|
||
|
* `MES_DPAD_BUTTON_D_UP`: Button **D** released
|
||
|
* `MES_DPAD_BUTTON_1_DOWN`: Button **1** pressed
|
||
|
* `MES_DPAD_BUTTON_1_UP`: Button **1** released
|
||
|
* `MES_DPAD_BUTTON_2_DOWN`: Button **2** pressed
|
||
|
* `MES_DPAD_BUTTON_2_UP`: Button **2** released
|
||
|
* `MES_DPAD_BUTTON_3_DOWN`: Button **3** pressed
|
||
|
* `MES_DPAD_BUTTON_3_UP`: Button **3** released
|
||
|
* `MES_DPAD_BUTTON_4_DOWN`: Button **4** pressed
|
||
|
* `MES_DPAD_BUTTON_4_UP`: Button **4** released
|
||
|
|
||
|
## See also
|
||
|
|
||
|
[raise event](/reference/control/raise-event), [on event](/reference/control/on-event),
|
||
|
[event value](/reference/control/event-value)
|