Skip to content

Dawn Runtime Communication

HaileyJang edited this page Aug 20, 2020 · 1 revision

Dawn - Runtime Communication

Current updates to the communication's protocol can be found in this doc.

Manual Communications: Student Code and Update Files

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.

Background Communications

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.