Phonebot developer's reference/Object reference/Using Phonebot services
From EtherWiki
Services are non-visual components that monitor different environment states and trigger an event when the state changes.
Object reference
Service | Properties | Description |
---|---|---|
http
|
url
|
Makes a GET request to a URL. Returns a single event in the queue containing the response. |
sensor
|
sensors - array of sensor names
|
Monitors one or more hardware sensors. Returns an event containing a comma-delimited list of values beginning with the sensor name (e.g. orientation,60.0,-28.0,3.0 ). The range of each value is dependent on the sensor.
|
timer
|
duration - time between updates, formatted as h:m:s , m:s , or s
|
Fire the update events at regular intervals. The event will first fire immediately after the service is started. Returns an event containing the datetime value when the update happened.
|
Events can be manipulated in the following manner:
HTTP:
event = http_service.pop_event() // query with XPath items = event:xml.query("//root/item") // read json data root = event:json.get_element("root") items = event:json.get_element("item")
Sensor:
event = sensor_service.pop_event() event = event:string.split(",") name = event:array.get_element(0) // get values from index 1 and greater
Timer:
event = timer_service.pop_event() event = event:datetime.format("HH:mm:ss")
Sensor types:
Name | Structure of event value
(actual values are prefixed with the name, i.e. |
Description |
---|---|---|
accelerometer
|
x,y,z
|
Acceleration in meters/second^2 |
gps
|
latitude,longitude,accuracy,altitude,bearing,speed
|
|
gravity
|
x,y,z
|
Gravity in meters/second^2 |
gyroscope
|
x,y,z
|
Angular speed in radian/second |
light
|
l
|
Ambient light in lux units |
linear_acceleration
|
|
Acceleration in meters/second^2 |
magnetic_field
|
x,y,z
|
Magnetic field in micro-Teslas |
orientation
|
azimuth,pitch,roll
|
Measured in degrees. 0=North, 90=East, 180=South, 270=West; -180..180; -90..90 |
pressure
|
p
|
Atmospheric pressure in millibars |
proximity
|
p
|
Proximity in centimeters |
rotation_vector
|
|
|
temperature
|
|
Properties
Syntax | Description |
---|---|
auto_start
|
Read-only. |
event_size
|
Read-only. The number of events in the queue. When monitoring multiple services, this property can be used in on_service events to determine which service was updated.
|
name
|
Read-only. |
text
|
Read-only. |
Methods
Syntax | Description |
---|---|
size = clear_events()
|
Delete all events and return how many were deleted. |
event = get_event()
|
Retrieve the next event in the queue. |
value = get_property(name)
|
Retrieve a service property. |
event = pop_event()
|
Retrieve and delete the next event in the queue. |
set_property(name, value)
|
Set a service property. |
start()
|
Start the service. |
stop()
|
Stop the service. |
Events
Syntax | Description |
---|---|
on_service
|