Finds all ways from start (s) to goal (g) in a labyrinth such as
|x|g|x|
| | | |
|s|x| |
| | | |
where x-fields are blocked tiles. Uses (CL)S to compute the solution. The example is taken from:
Jan Bessai, Anna Vasileva: User Support for the Combinator Logic Synthesizer Framework. F-IDE@FLoC 2018: 16-25. Online here.
Results are served via MQTT.
Anna Vasileva and Moritz Roidl created a video demonstration using the laser based visualization facilities of the test lab at FLW Dortmund. In the demo results are interpreted by Unity3D which then controlls the laser system to show computed movements.
The protocol is as follows:
0. Start an MQTT broker, e.g. Mosquitto via mosquitto -c mosquitto.conf
with the provided config.
- Start an Agent using
sbt run
. - Send a JSON-encoded Task to the broker under the taskTopic.
- Send a JSON-encoded request for solutions to the broker under the topicForRequests specified in your task.
- Receive maxCount JSON-encoded Solution replies under the topicForSolutions specified in your task.
The agent can be cleanly exited by pressing enter.
Solutions will be ordered by the number of necessary steps and 'wrap around' (be repeated) if more solutions are requested than possible. Protocol data is encoded and decoded using circe.
You can use sbt run
to start a Demo client.
To avoid trouble, make sure the agent is running before starting the demo client.
By default the log level is configured to DEBUG
.
This will print all JSON messages exchanged with the agent.