-
Notifications
You must be signed in to change notification settings - Fork 1
Dawn Runtime Communication
Current updates to the communication's protocol can be found in this doc.
Due to complexities in guaranteeing file integrity, it has been resolved to use an SFTP implementation to deal with larger files. To do so, we currently use the ssh2 package's SFTP-streams implementation as it is relatively OS-independent.
Currently, the main mechanism for background communication is through sockets created from the Node.js Dgram (UDP) and Net (TCP) modules. To reduce latency, most data will be passed as Protocol Buffers, implemented through the protobuf.js package. This means that data, commonly represented as objects, will need to be converted to and from protobufs throughout the communication process; the current implementation can be found in Ansible.js. The schema for what is to be sent to and received from the robot is found in the ansible-protos folder. Any changes made to this must be clearly communicated to all, as changes here will affect implementation on both Dawn and Runtime's sides.