commits
Still fails on CI for mac/linux due to socket reuse timeouts
These haven't changed since the first time I implemented
this protocol. Don't generate every build, there's no need.
If a server disconnected, the client side may or may not have
actually registered the disconnect depending on a bunch of
different reasons. Try to align these better, though this really
just needs a through scrubbing at some point.
Fixes #421
If disconnect is called, set the disconnect status regardless of
whether or not calling disconnect succeeds.
Affects #421
Everything having to do with config files should live in the
config file module. We'll re-expose as needed when the
time comes to work on configuration UI.
getset all (or at least most of) the things
Now that we can have both Raw and Sensor Readings, we
shouldn't specialize to raw on receive.
Fixed #159
Finally singularized everything. Woo.
Don't break client API compat just to clean that up. Awkward but who cares.
Allow server to communicate to client how quickly messages
should arrive for a device.
Also up maximum wait time for commands to make
sure they come through.
Will see if this ends up breaking WASM.
As we'll have sensor readings that represent multiple values in the same
reading, like multi-axis accelerometers.
A few orders of magnitude faster than validate.
Really. No idea what it did.
Actually ship the display name alongside the regular name
v3 doesn't need unsubscribe for raw/sensor because we consider
the subscribe message symmetric. We can't do that in v2.
Instead of trying to just wildcard messages across all of the
protocol versions, actually pay attention to versions and
check them as one. Should fix issues with compat in the
future hopefully.
Make sure we specify the correct Id ranges for messages.
Add v3 messages to message spec (currently only works
with v3), and update device config for range serialization
to sequence instead of object
Add a test connector that just crosses two channels, and use it for
testing de/serialization of messages in remote instances (without
having to actually bring up a transport).
Instead of requiring the only message attributes class to conform to
what both the client AND server need, split attributes into server
(which will handle configuration) and client (which is what we'll fly
over the protocol).
Use object type instead of the vectorize crate, require full
definition of generic message arguments.
Make the base and user device configs all use the same setup.