Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   RoboDS Android 2015 Driverstation (http://www.chiefdelphi.com/forums/showthread.php?t=136481)

raystubbs 08-04-2015 17:42

RoboDS Android 2015 Driverstation
 
RoboDS is a project that I've been working on since the Hub City Regionals. I almost have all I need to release the alpha version. I've figured out almost all I need of the driverstation communication protocol; all I lack is to reverse engineer the DS connection packet, if anyone is willing to help with this I would really appreciate it, and I'd be able to release the app much sooner.

virtuald 08-04-2015 18:25

Re: RoboDS Android 2015 Driverstation
 
Quote:

Originally Posted by raystubbs (Post 1467853)
RoboDS is a project that I've been working on since the Hub City Regionals. I almost have all I need to release the alpha version. I've figured out almost all I need of the driverstation communication protocol; all I lack is to reverse engineer the DS connection packet, if anyone is willing to help with this I would really appreciate it, and I'd be able to release the app much sooner.

Use the source, Luke!

Thad House 08-04-2015 18:59

Re: RoboDS Android 2015 Driverstation
 
Quote:

Originally Posted by virtuald (Post 1467866)

Is that the actual driver station source code? I always assumed it was closed source, plus I thought it was written in LV.

EDIT: Nevermind looks like its just a driver station simulator. Still interesting though, because it looks like it has the packet format for the FMS as well.

virtuald 08-04-2015 19:36

Re: RoboDS Android 2015 Driverstation
 
Quote:

Originally Posted by Thad House (Post 1467877)
Is that the actual driver station source code? I always assumed it was closed source, plus I thought it was written in LV.

EDIT: Nevermind looks like its just a driver station simulator. Still interesting though, because it looks like it has the packet format for the FMS as well.

You're correct that the DS is closed source and written in LV. I believe it is a test harness used for running the WPILib integration tests, which needs to be able to speak the DS protocol.

raystubbs 08-04-2015 22:18

Re: RoboDS Android 2015 Driverstation
 
Quote:

Originally Posted by virtuald (Post 1467866)

Thanks a lot for this, it should work perfect. If I'd known about it sooner I could have saved a LOT of work.

EDIT: Ok, I take that back, after reviewing the source I realized that this is for the pre-2015 protocol. The 2015 control system uses a new protocol and I've figured out most of it but I don't know much about the connection packet. The connection packet is sent after the DS receives its first packet from the RoboRio, it is the normal communications packet with a ~21 byte extension that I presume contains connection information. I know that it contains a time zone in some of its bytes but that does not account for the full length of the packet. Any and all help is appreciated, thanks.

raystubbs 08-04-2015 22:47

Re: RoboDS Android 2015 Driverstation
 
Quote:

Originally Posted by virtuald (Post 1467866)

Even if the source you gave me is outdated, it gave me an idea of where to find the current version. I never even looked because I assumed it was closed and protected. But here is the 2015 FRCComm.h file if anyone is interested.

https://github.com/Dreadbot/WPILib/b...tion/FRCComm.h

Thanks.

EDIT: Except I can't find an FRCComm.cpp so I may still be stuck.

virtuald 08-04-2015 23:10

Re: RoboDS Android 2015 Driverstation
 
Heh, I hadn't noticed that it was pre-2015. Good to know.

gixxy 13-04-2015 11:15

Re: RoboDS Android 2015 Driverstation
 
As a developer for the Cross Platform DriverStation.js we too have been working to reverse engineer the 2015 protocol, not that we have made it too far...

What we DO have is here: https://github.com/gluxon/node-drive.../2015-Protocol

raystubbs 13-04-2015 12:26

Re: RoboDS Android 2015 Driverstation
 
Quote:

Originally Posted by gixxy (Post 1470276)
As a developer for the Cross Platform DriverStation.js we too have been working to reverse engineer the 2015 protocol, not that we have made it too far...

What we DO have is here: https://github.com/gluxon/node-drive.../2015-Protocol

I don't have my notes with me right now but here is what comes after your general packet data, according to my memory:

The rest of the data is divided into joystick structures, each structure has the following:

1 byte: Size, in bytes, of the joystick structure
1 byte: Unknown, according to my memory it has always been 12, 0x0c in hex.
1 byte: 'a' the number of axis' available on the joystick.
'a' bytes: The values of each of the axis'.
1 byte: 'b' the number of buttons on the joystick.
'b'/8 rounded up, bytes: The state of every button, one per bit, button 1 is far right and button 'b' is far left.
3 bytes: Unknown, always seems to be 01-ff-ff.

The data for any other joysticks follows.

This may be slightly wrong, I do not have a perfect memory but I think this is mostly correct. If you want details or clarifications then contact me and I'll find my notes. If you find anything new with the 'Connection Packet' structure please let me know, thanks.


All times are GMT -5. The time now is 01:40.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi