I’m from Brazil, and I am helping my wife in her phd in arts, and we are using the MDEK1001.
Since I would need to develop some code to get the tags positions, record, generate graphics, connect to unity3d, and other tasks, I decided to use websockets to connect these apps.
Like a good free software developer, I thought that sharing the code would be a good idea, and someone could reuse the code for its own purpose.
The code is available in https://github.com/quilombodigital/decawave-position-server .
s, Ricardo Andere de Mello (gandhi)
Thank you for you for sharing and community spirit!
What is the server doing?
Well, the server is quite simple, it connects to a listener tag through the serial port, sends two enters, and then the “lep” command. After this it starts collecting the positions. When any other client connects through websocket, the server will start sending the positions to these clients. This allows multiple clients receiving the positions in a non exclusive way, and having a protocol (websocket) that has tons of available libraries, in many languages, and can be easily embedded in any application (even mobile).
You can even, for testing purposes, connect from chrome using an extension: https://chrome.google.com/webstore/detail/simple-websocket-client/pfdhoblngboilpfeibdedpjgfnlcodoo?hl=en
s, Ricardo Mello (gandhi)
I am trying to bring up my DW1001 using your wonderful websocket. I managed to run the dummy examples you provided.
But when I try to use a real DW1001 connected to a USB port of my Macbook (macOS), I am not able to open position server (using java -cp ./bin/postracker.jar org.quilombo.postracker.apps.PositionServer). I am getting the following error message : could not open port COM9.
I changed COM9 in server_config.json to the usb port name in ls /dev/tty.usb* (e.g., usbmodem00076005184391), but I would get a similar error message for this port name as well.
Can you please assist?
The best idea is to first try to communicate with the dwm directly, using any serial terminal client, like realterm, coolterm, etc. after that, this should be easier.