|Job #||Fee amount||Summary||Creator||Runner||Paid|
We have an app for Google glass and Android phones that lets you animate your avatar by sending UDP packets to the interface client over wifi, which uses the received gyro/accelerometer data to move the avatar head and/or joints.
But... right now you have to manually set the IP address of the interface client. This is a pain, and in the case of Glass, requires a recompile because there isn't a UI for entering IP addresses.
The goal of this project is to solve this problem by having a public server (pairing.highfidelity.io) which sends and receives UDP packets that help devices connect to interface clients:
Using the existing domain server C++ code as a framework, in the interface github repo create a new target called pairing-server. This server will listen on a known UDP port for packets:
When an interface device (glass, or android phone) starts up, it will send a packet to the pairing server containing the text command "Available", the type of the device ("ADRXXX" or "GLASS", etc), an optional text name ("Stephen's Headphones"), and the local IP address/port ("192.168.0.36:40505") on which it is connecting. The pairing server should remember this data, the IP address from which it was received, and the time the packet was received. It should store this in memory only, no need to persist to disk, etc.
In the interface client, add a menu item "Pair", with a sub-item "Find Device". When this option is chosen, the interface client should send a packet to the pairing server with the command "Find", as well as it's local IP/port.
When the pairing server receives the Find message, it should send a packet to the most recently received available device with the local port and IP information of the Find sender.
The receiving available device should then immediately begin sending sensor data to the specified interface client.
Work with Leo to get this pairing-server auto-launched by Jenkins and attached to the "pairing.highfidelity.io" domain name.
|Who||Amount||Done in ...|
|*name hidden*||$ ***||2 days|
You have started the Code Review. Please click ok to continue or cancel to abort the process.
You can click the 'End Code Review' button to cancel or finish the review later from this workitem page.
I agree that by adding either a bid or a fee, I accept that I will not be paid for this work unless hifi and the owner of this job approves payment.
Also, by clicking the 'I accept' button, I am contributing all code and work that I attach to this job or upload to the Worklist servers, including any and all intellectual property rights related thereto, whether or not I am paid.
All intellectual property and code I contribute is solely owned by hifi, and I hereby make all assignments necessary to accomplish the foregoing.