Connor Rigby
1ff2a7d153
Implement `every_point` and `point_group` Celery nodes
2019-10-22 14:19:32 -07:00
Connor Rigby
8a816ba1f4
Change if and read_pin to function the same as v7
...
this prevents the possibility of reading a sensor and it changing
by the time an if statement is executed
2019-09-13 16:03:34 -07:00
Connor Rigby
cf2877c76e
Ensure firmware/rpc logs always dispatch
2019-09-13 16:03:33 -07:00
Connor Rigby
f400b2746f
Add new RPC for `toggle_pin`
...
This was previously implemented as a "macro" that just expanded
`toggle_pin` to a series of `read_pin` -> `write_pin` -> `read_pin` this
lead to three logs instead of just one. The implementation is still
mostly the same, but now there is less logging.
Also factored all pin control into it's own module
2019-09-13 16:03:32 -07:00
Connor Rigby
209ded96cb
Add Lua helpers for updating and getting resources
2019-09-13 16:03:32 -07:00
Connor Rigby
7e1ceaf7be
Implement new AST: `assert`.
...
This is a new AST that will allow executing a
simple expression and conditionally pass/fail
and cleanup when it completes.
2019-09-13 16:03:31 -07:00
Connor Rigby
fcadeebe6e
Add `update_farmware` rpc back
2019-09-13 16:03:31 -07:00
connor rigby
05eeb74fc8
Re-implement set_pin_io_mode
2019-09-13 16:03:30 -07:00
connor rigby
55533675f5
Reenable sequence init and sequence complete logs
...
Sort of a hack, but store some metadata about a sequence in the AST
format, and if it exists, log it
2019-09-13 16:03:26 -07:00
Connor Rigby
a160d6a41b
Fix factory_resetting the arduino-firmware
...
* Adds `api_migrated` field to FirmwareConfig
* Changes `factory_reset()` syscall to be `factory_reset(package)`
2019-09-13 16:03:25 -07:00
Connor Rigby
c92c79347f
Add back step logs
2019-09-13 16:03:24 -07:00
Connor Rigby
e6b29ea559
Refactor CeleryScript execution
...
* FarmEvents now schedule all events up front
* Executions are stored in the database
* Regimens now schedule all items up front
* Executions are stored in the database
* fix Deleting a FarmEvent with a running RegimenInstance
* `execute`int and `schedule`ing a CeleryScript are not separate things
* Everywhere `scheduling` and `executing` CeleryScript updated to use
the new API
2019-09-13 16:03:23 -07:00
Connor Rigby
00d0897672
Dry up celery_script compilation
...
This adds much more type checking and error
handling in the compiled celery_script.
Also removes the hack/shortcut in the StubSysCalls
module.
2019-09-13 16:03:23 -07:00
Connor Rigby
2d66f09485
Enable `warnings_as_errors` for each app
2019-09-13 16:03:21 -07:00
Connor Rigby
9a6857bf98
Add new sys_calls to test_sys_calls
2019-09-13 16:03:20 -07:00
Connor Rigby
2a1db21546
Implement remaining celery nodes
2019-09-13 16:03:19 -07:00
Connor Rigby
db54e2117d
Update find_home to not take a speed arg
2019-09-13 16:03:18 -07:00
connor rigby
d842c3a123
🎉 Implement Variables in Regimen
2019-09-13 16:03:17 -07:00