7fffd33e3a
Remove dup library in mos.yml; cast 'value' to bool in Relay.Set()
2018-01-05 01:43:38 +01:00
9dbf9be428
Simplify MQTT messaging
...
Simply add the entire mosquitto message as a JSON entity, not a string.
The simple case now looks like:
"mqtt": [ {"topic": "/s/cmnd/5C:CF:7F:20:29:6E/Power", "message": "On"} ]
Sending an RPC to Mongoose OS looks like:
"mqtt": [ {"topic": "esp32_XXXXXX/rpc/Button.Touch", "message": {"args": {"idx":0}}} ]
2018-01-02 00:20:15 +01:00
0ea78abf4c
Add extra debounce delay in button presses. Trigger on button-up.
2018-01-02 00:19:37 +01:00
0dae252eb4
Add device_id to widget_name.c
2017-12-22 17:13:35 +01:00
ecf0a9a2fc
Add tft.enable flag, gate the use of ILI9341/STMPE610 on it.
...
- For esp8266 (lightswitch w/o touchscreen), set tft.enable=false
- For esp32 (lightswitch w/ touchscreen), set it to true.
Clean up mos.yml flags per architecture type.
- Button is always 0,2
- Relay0 at 16 for ESP8266, as that's NodeMCU v2's onboard LED.
- Relay0 at 13 for ESP32, as that's Featherwing's onboard LED
2017-12-22 10:23:15 +01:00
44a84dd1bc
Fix some compiler lint for esp8266
2017-12-21 22:38:23 +01:00
1cbd2130db
Add lightswitch to this firmware
2017-12-20 17:04:51 +01:00
7ba19c8372
Make screen work at 480x320 as well as 320x240
2017-12-07 01:28:27 +01:00
7c3f699275
Make widgets span the get_screenWidth() value
2017-12-07 00:00:13 +01:00
84ff733bbb
Call mgos_ili9341_set_rotation(); Reduce inactivity_timeout to 10s
2017-12-03 14:12:34 +01:00
84dfb7c516
Register prometheus callback only once
2017-12-02 23:49:53 +01:00
fae52bb543
Add MQTT buttons!
2017-12-02 23:34:16 +01:00
2b756cee3d
Add 'mqtt' field -- a \001 delimited string of topics+messages to send
2017-12-02 21:29:42 +01:00
b8e5637c8b
First start of MQTT buttons
2017-12-02 16:51:09 +01:00
c315de560f
Fix non-void return in screen_widget_broadcast()
2017-12-02 15:33:56 +01:00
cda842da53
Implement EV_WIDGET_DRAW and call screen_widget_broadcast() on screen loads
2017-12-02 14:23:14 +01:00
f7a62fce48
Add screen_widget_broadcast()
2017-12-02 14:18:54 +01:00
ef4451b81f
Initial stab at WIDGET_LOADSCREEN and navigation
2017-12-02 14:15:22 +01:00
980ac4c7cf
Remove 'user_data' arg from widget_set_handler
2017-12-02 13:42:32 +01:00
5a283bd87f
Set w->user_data to 'screen' for type=WIDGET_TYPE_LOADSCREEN
2017-12-02 13:37:00 +01:00
c3a71a9b69
Add widget_default_destroy()
2017-12-02 13:33:51 +01:00
4e1a9f4c2a
Change images to DIFs for faster drawing
2017-12-02 12:22:14 +01:00
b9a0578d5b
Allow app to compile for ESP8266 - add some conditionals based on mos.platform
2017-12-01 19:21:01 +01:00
95e2835871
Draw images as blue roundrects; Add labels to non-imagery widgets, if they are set
2017-12-01 16:16:57 +01:00
e7f674fa6f
Show the use of multiple fonts
2017-12-01 15:43:03 +01:00
eab5f31a92
Move to Native SPI implementations of ILI9341 and STMPE610
2017-12-01 13:57:43 +01:00
5b80d88b86
Extend keepalive if the user is currently touching the screen -- this avoids the screen fading out on presses longer than the inactivity timeout
2017-11-28 15:58:46 +01:00
7041526a39
Small formatting changes; Set backlight on before SMTPE610
2017-11-28 15:32:54 +01:00
9fc40fd800
New implementation of backlight based on persistent keepalive timer, rather than oneshot timer
2017-11-28 15:32:27 +01:00
c35d959c1a
Rewrite widget_battery_render() to assume full at 4100mV, clipping 'h' between [0,12]
2017-11-28 10:26:29 +01:00
801e4435ce
Call battery 'full' at 4100mV
2017-11-28 09:01:13 +01:00
4b851ef144
Measured the MCU to shut off at 3500mV -- update widget_battery() to match what I saw
2017-11-28 07:02:33 +01:00
f87fec5ed0
Add battery calibration values
2017-11-27 23:14:17 +01:00
72f757a913
Add prometheus hook for battery voltage
2017-11-27 22:59:26 +01:00
4aa8c56f40
add widget_battery() which shows the LiPo state of charge
2017-11-27 22:36:38 +01:00
d07a0e053c
Backlight support. TOUCH events feed backlight_keepalive(); After a timeout, we fade the backlight to 0 using timers. When the backlight is not active, TOUCH events are not passed to widgets, but the backlight is re-enabled; Add some flags to mos.yml to drive timeout and PWM pin for the backlight on Featherwing
2017-11-27 21:30:01 +01:00
ed9906a0bf
Move to RoundRect() -- draw RED on TOUCH_DOWN, GREEN on TOUCH_UP
2017-11-26 22:23:35 +01:00
ed98d2de7c
Trigger draw on TOUCH_UP
2017-11-26 22:13:49 +01:00
25cad76432
Move to PNG imagery
2017-11-26 21:04:58 +01:00
d5e01dedd2
Simplify screen: make it absolute and fill the whole TFT
2017-11-26 20:07:26 +01:00
3cb5fc18e7
add widget_ev_to_str(); Pass 'ed' through to EV_WIDGET_TOUCH_{UP,DOWN} calls
2017-11-26 19:27:57 +01:00
e826324244
Plumb default_widget_handler and default_user_data for widgets read from JSON/File
2017-11-26 19:06:44 +01:00
fda8b332db
Add 'type', 'label', rename 'icon' to 'img' in widget
2017-11-26 18:41:17 +01:00
c6f5fc3b8f
Fix use-after-free bug
2017-11-26 18:06:17 +01:00
fb7e2a650d
Allow screen to be seen by other files (needed by widget_name.c)
2017-11-26 17:32:29 +01:00
5f07481d22
Do not destroy on TIMER/TOUCH_{UP,DOWN}
2017-11-26 17:32:00 +01:00
82c9999138
Add WIDGET_NAME_SCREEN; Fix null deref in WIDGET_NAME_SSID
2017-11-26 17:31:24 +01:00
ddb026217a
Avoid calling widgets without handlers
2017-11-26 17:14:11 +01:00
63f1088e7a
Call EV_WIDGET_CREATE upon first installing of set_handler()
2017-11-26 16:25:05 +01:00
64af496314
Factor out widget_set_{handler,timer}() from app
2017-11-26 16:10:51 +01:00