Closed IsaacIngram closed 2 years ago
Do you have any USB devices plugged in? Also what OS (+version) are you using?
I am using MacOS 12.0.1. I do not have any USB devices plugged in since my team uses Xbox Controllers and Mac doesn't have drivers for it. I have used the Bluetooth functionality of the Xbox Controllers to control a robot simulation, but a controller connected via Bluetooth doesn't appear to work with OpenDS. I suppose that's something for another issue.
Because I couldn't get an Xbox Controller to work with OpenDS, I selected my Mac's trackpad as the USB device to use. Doing this procuced some different errors:
java.net.UnknownHostException: github.com
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:567)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:333)
at java.base/java.net.Socket.connect(Socket.java:648)
at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:290)
at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:177)
at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:474)
at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:569)
at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:265)
at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:372)
at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:177)
at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1194)
at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1082)
at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:163)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1595)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1523)
at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:308)
at com.boomaa.opends.display.DisplayEndpoint.checkForUpdates(DisplayEndpoint.java:191)
at com.boomaa.opends.display.DisplayEndpoint.main(DisplayEndpoint.java:146)
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: arraycopy: source index -1 out of bounds for object array[10]
at java.base/java.lang.System.arraycopy(Native Method)
at java.base/java.util.Vector.insertElementAt(Vector.java:596)
at java.desktop/javax.swing.DefaultListModel.add(DefaultListModel.java:469)
at com.boomaa.opends.usb.ControlDevices.findAll(ControlDevices.java:35)
at com.boomaa.opends.display.DisplayEndpoint.main(DisplayEndpoint.java:152)
Exception in thread "rioTcp" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
at com.boomaa.opends.usb.HIDDevice.getAxis(HIDDevice.java:95)
at com.boomaa.opends.data.send.SendTag.lambda$static$3(SendTag.java:87)
at com.boomaa.opends.data.send.SendTag.getBytes(SendTag.java:357)
at com.boomaa.opends.data.send.creator.Creator2020.dsToRioTcp(Creator2020.java:59)
at com.boomaa.opends.display.DisplayEndpoint$1.onCycle(DisplayEndpoint.java:51)
at com.boomaa.opends.util.Clock.run(Clock.java:32)
It is worth noting that I am connecting to my robot over WiFi rather than over Ethernet.
To clarify the above, the original log output was posted without any USB devices connected. The log posted above is with the Trackpad/Keyboard set as a USB device using the "auto" feature.
Hmm okay MacOS is a bit tricky for me since I don't have regular access to a testing computer. I believe this is a similar issue to #5 though. I made a workaround to have that work but there might be some C driver issues with that. I'll look into it but it might be a while.
The UnknownHostException
thing is a different issue that I can fix and commit ASAP!
Bluetooth support...yeah that might be a very long time. But I can work on it if there's enough demand. Another issue would be a good idea.
EDIT: okay so the trackpad being a joystick will 100% not work IIRC due to it not having "axes" or something like that. Try with a normal joystick over USB if you can.
That's alright. FIRST supports Windows pretty much exclusively and I'm sure for good reason. I assume the UnknownHostException
is the culprit of the connection dropping out, and that's the reason for this particular issue.
I tried to use Logitech Extreme 3D Pro joystick instead of the keyboard and trackpad. My steps for doing so were as follows:
The controller briefly showed up in the list of Joysticks but went away as soon as I interacted with the UI. I tried using another Joystick of the same type and the issue still occurred. The errors can be found here.
My assumption is that there is a lack of drivers on MacOS, but I haven't done the research to be sure.
I'll open another issue for Bluetooth support, but that's more of a feature request than an actual issue.
Hi @IsaacIngram! Apologies for the long wait. I've patched the problem which had to do with not filtering out generic input devices (i.e. the keyboard) and incorrectly treating those devices as gamepads/joysticks with axes. You should be able to use any joystick/gamepad input device (including over bluetooth, I tested that too). Commit that fixes this is 4d5c2a99c0eec30f76b1372631461b8de20c4e81.
Please let me know if this works for you. I will close this issue now as the bug has been resolved.
No problem, thanks for patching! I don't have easy access to a robot now that the season is over but once I do have access I'll give it a go and let you know if it works.
I am able to connect to my robot over WiFi. I am on the correct network and I have my correct team number in the team number box. I can see the voltage oscillating, but as soon as I click the enable box I receive the following error:
This causes the driver station to disconnect from the robot. Both my Radio and Rio have been flashed with the latest version and my radio is configured with the correct team number.