View Single Post
  #11   Spotlight this post!  
Unread 14-08-2015, 14:56
ShawnTheProgram's Avatar
ShawnTheProgram ShawnTheProgram is offline
The Best Programmer
AKA: Shawn Hice
FRC #2471 (Team Mean Machine)
Team Role: Programmer
 
Join Date: Feb 2015
Rookie Year: 2013
Location: Camas WA
Posts: 3
ShawnTheProgram is an unknown quantity at this point
Re: Custom roboRIO HAL: Where to find C library for roboRIO fpga?

Quote:
Originally Posted by CodeYeti View Post
Alright, I guess I'll inquire of NI if they plan on providing something like these C bindings in future years as well. Thanks for your help, I'll be sure to report back with results if/when I get this working.

Any idea of a good way to contact them?

EDIT: Also: is there any documentation on the operation of the registers for the FPGA or is that all fairly secretive as well?

EDIT2: I'm thinking I could write a parser to parse the lvbitx file and dump out my necessary register definitions for zinc's ioreg macro. This way I can access libNiFpga directly instead of having to go through the roborio-specific frontend. I was able to get some rudimentary parsing done with a crappy python script.
Okay, so I work with the BXD team for creating the BXD:Synthesis simulator for robots. My specific job is to work on exactly what you are talking about and to configure the wpilibs for the simulator. Earlier this year we got access to the repository for the wpilibs. If you need any help directly you can always email me at shawn.hice@autodesk.com

My little tidbits for some of these questions:
Please for your sanity use C++ for the development of the fpga unless you want to completely recreate it, in that case look at how you can access networks and how you would be able to send and receive data efficiently.

If you do not want to go through an actual robot and field system you are going to have to use a couple of things to make your life ALOT easier. Use a fixed IP that is configured on your computer with a loopback adapter.

The FPGA is of course an interface layer between the robotcode and the wpilib in order to interpret commands that are being sent. So naturally you need to start with doing a couple of things:
-Compile your base version of WPILibs for C++
-Use Visual studios 2013 or higher because you will need C++11

Finally, a little hint into finding a good way to figure out how to use this is to use a windows computer and find the version of the fpga meant for 2014 and reconfigure the FRCComm.h file to the packets that you receive with the 2015 driverstation. If you want any specific help with that you can feel free to email me.

I wish you luck in your ventures!