Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   C/C++ (http://www.chiefdelphi.com/forums/forumdisplay.php?f=183)
-   -   New Jaguars on CAN bus (http://www.chiefdelphi.com/forums/showthread.php?t=80706)

ellisk 20-01-2010 18:07

New Jaguars on CAN bus
 
I'm trying to get the code for the new Jaguars to compile in C++ using Windriver. Here is my setup and the errors I'm getting:

I got the sources for the CAN jaguar code off of http://firstforge.wpi.edu/sf/frs/do/...r_c_revision_6
I then imported the files "CANJaguar.cpp", "can_proto.h", "CANJaguar.h", and "JaguarCANDriver.h" into my project. In the file which I wanted to use the new Jaguars, I put:
Code:

#include "CANJaguar.h"
When I compiled my new project, I got a ton of compiler errors. They were:
Code:

In file included from C:/windriver/workspace/Spy/CANJaguar.cpp:3:
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:13: error: `tNIRIO_i32' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:16: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:19: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:28: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:35: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:38: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:47: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:50: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:53: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:56: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:64: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:67: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:70: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:74: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:78: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:84: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:87: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:90: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:98: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:101: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:104: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:107: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:110: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:117: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:120: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:123: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:130: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:133: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:136: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:143: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:146: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:149: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:152: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:162: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:165: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:168: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:171: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:174: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:177: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:180: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:183: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:186: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:189: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:192: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:195: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:198: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:206: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:209: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:212: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:215: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:218: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:221: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:224: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:227: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:230: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:233: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:236: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:239: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:242: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:245: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:248: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:251: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:258: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:261: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:264: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:267: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:270: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:277: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:280: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:287: error: `tRioStatusCode' does not name a type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:293: error: expected `,' or `...' before "status"
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:294: error: ISO C++ forbids declaration of `tRioStatusCode' with no type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h: In function `bool rioStatusIsFatal(int)':
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:295: error: `status' undeclared (first use this function)
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:295: error: (Each undeclared identifier is reported only once for each function it appears in.)
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h: At global scope:
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:298: error: expected `,' or `...' before "status"
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:299: error: ISO C++ forbids declaration of `tRioStatusCode' with no type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h: In function `bool rioStatusIsNotFatal(int)':
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:300: error: `status' undeclared (first use this function)
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h: At global scope:
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:306: error: expected `,' or `...' before "newStatus"
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:307: error: ISO C++ forbids declaration of `tRioStatusCode' with no type
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h: In function `T& rioSetStatus(T&, int)':
C:/WindRiver/vxworks-6.3/target/h/WPILib/ChipObject/NiRioStatus.h:308: error: `newStatus' undeclared (first use this function)
C:/windriver/workspace/Spy/CANJaguar.cpp: In member function `void CANJaguar::InitJaguar()':
C:/windriver/workspace/Spy/CANJaguar.cpp:31: error: `kRIOStatusVersionMismatch' undeclared (first use this function)
C:\WindRiver\vxworks-6.3\host\x86-win32\bin\make.exe: *** [SimpleTemplate_partialImage/Debug/Objects/Spy/CANJaguar.o] Error 1
Build Failed in Project 'Spy' (Process Exit Value was 2):  2010-01-20 14:45:55  (Elapsed Time: 00:01)

Does anyone know what's wrong?

Thanks.

byteit101 20-01-2010 19:16

Re: New Jaguars on CAN bus
 
modify the include header in CANJaguar.cpp
#include "CANJaguar.h"
#include "ChipObject/NiRio.h" <-add this line
#include "ChipObject/NiRioStatus.h"
...

woodk 20-01-2010 20:47

Re: New Jaguars on CAN bus
 
Quote:

Originally Posted by byteit101 (Post 903399)
modify the include header in CANJaguar.cpp
#include "CANJaguar.h"
#include "ChipObject/NiRio.h" <-add this line
#include "ChipObject/NiRioStatus.h"
...

You beat me to it! You'll also find that it only supports the Voltage control mode. Too bad :(

Joe Ross 20-01-2010 21:00

Re: New Jaguars on CAN bus
 
Quote:

Originally Posted by woodk (Post 903455)
You'll also find that it only supports the Voltage control mode. Too bad :(

If you install the firmware development package from http://www.luminarymicro.com/products/mdl_bdc.html in the docs folder it has the CAN protocol spec, so you could implement whatever mode you want.

woodk 21-01-2010 09:53

Re: New Jaguars on CAN bus
 
Quote:

Originally Posted by Joe Ross (Post 903468)
If you install the firmware development package from http://www.luminarymicro.com/products/mdl_bdc.html in the docs folder it has the CAN protocol spec, so you could implement whatever mode you want.

Thanks! I figured most of that out by monitoring the communication between BDCOM and the Jaguar, but that doc is much easier!

However, it doesn't include the modifications made in the FRC firmware, which we are required to use. I have managed to get speed control working with the FRC firmware, but they seem to have done something to the current control that I haven't figured out yet.

- Kevin


All times are GMT -5. The time now is 04:34.

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