|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||
|
|||
|
Re: Feedback Thread: WPILib
We experienced the same problem. In the end we had to stop using CAN on the competition bot, because the entire drive system thread would crash if it lost a single packet. With the heavy vibrations and impacts of competition shaking the connectors around in the CAN ports, this happens sometimes.
|
|
#2
|
|||
|
|||
|
Re: Feedback Thread: WPILib
Quote:
Thanks, -Joe |
|
#3
|
|||
|
|||
|
Re: Feedback Thread: WPILib
Quote:
|
|
#4
|
|
|
Re: Feedback Thread: WPILib
Quote:
Instead of a C++ assert that prints on the debug, the java implementation uses an unchecked exception. Seeing as the exception doesn't have a compile time warning, it is easy to overlook. If not handled, the exception will kill the main thread thus the bot, which means that one jag failure results in a dead bot. |
|
#5
|
||||
|
||||
|
Re: Feedback Thread: WPILib
Several things I'd like integrated into the WPI library:
I think all of these things would be pretty simple to implement. I can provide examples if my descriptions are unclear. |
|
#6
|
|||
|
|||
|
Re: Feedback Thread: WPILib
Quote:
|
|
#7
|
||||
|
||||
|
Re: Feedback Thread: WPILib
One thing that particularly annoys me in C++ (but I realize isn't exactly a WPILib problem) is that calling assert() doesn't trigger a breakpoint in the debugger at all -- which really, that is the whole *point* of assert().
|
|
#8
|
||||
|
||||
|
Re: Feedback Thread: WPILib
How about more use of the semaphore notification lists (in Axis camera, they "fire an event" when a new image is received)
some areas where that would be nice: DS new Data DS send data (dashboard) limit switch/digital input It would be helpful if there was a class for these semaphore events (how about SemaphoreEvent?). It would also be nice if the simple robot (which need a better name, IMO) was threaded, and you could tell it to kill auto if it is taking too long: Code:
class myrobot:public betternameforsimplerobot
{
//..
myrobot()
{
this->killAutoifItRunsTooLong=true
}
void Auto()
{
while(true)
{
printf("Bwa ha ha! You are stuck in an infinite loop!");
}
}
|
|
#9
|
|||
|
|||
|
Re: Feedback Thread: WPILib
Quote:
http://www.chiefdelphi.com/forums/sh...ad.php?t=86289 |
|
#10
|
|||
|
|||
|
Re: Feedback Thread: WPILib
If there was one part of the WPILib that bothered me, it was that when it got ported to the java platform, it didn't get redesigned to match java paradigms and features. As an example, it doesnt use OOP or exceptions as effectively as it might.
The bigger, and more interesting, feature that seems to be wholly missing from the WPILib is events & asynchronous action. In my experience, these are particularly useful, if not essential, in robotics & other realtime applications... Case in point, see TinyOS, the embedded development platform where EVERYTHING is event based and asynchronous. The iOS platform also actively demonstrates this system effectiveness. Developers from my team implemented and successfully used our own event models in java, and I would encourage you to look at their work in improving the WPILib. http://code.google.com/p/grtframework |
|
#11
|
||||
|
||||
|
Re: Feedback Thread: WPILib
In the LabVIEW version, I'd like the refnum registries more tightly integrated with the act of opening and closing references for diagnostic purposes, so that when a reference is opened twice, the second time it will state for what purpose that channel was originally opened.
I realize that it's only as good as the naming, but I think it's a good attempt to aid in diagnostics and troubleshooting. (For that matter, it'd be neat to automatically start the execution trace tool when the watchdog starts timing out in Teleop. However, I think that could impact the performance of the user code.) But more about the refnum registries: There are some things that should not require a name, because there cannot be more than one of them. Here's a list:
Last edited by kamocat : 08-15-2010 at 03:02 AM. |
|
#12
|
|||||
|
|||||
|
Re: Feedback Thread: WPILib
Quote:
There is only one watchdog and only one DMA resource available to the user, but keeping the general scheme intact and avoiding special cases seems worthwhile. The robot rules customarily permit only one air compressor. The software support is not that limited; you can define as many as you want until you run out of relay outputs. |
|
#13
|
||||
|
||||
|
Re: Feedback Thread: WPILib
Here's some more ideas for improvement of the FRC LabVIEW framework:
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Feedback Thread: Driver Station and Dashboard | Greg McKaskle | FRC Control System | 10 | 10-13-2010 11:26 PM |
| WPILib in Dev C++ | mikelowry | C/C++ | 2 | 09-22-2009 10:41 AM |
| Importing WPILib? | lingomaniac88 | C/C++ | 1 | 01-12-2009 08:39 PM |
| Using WPILib | RyanW | Programming | 1 | 01-19-2008 05:15 PM |