Quote:
Originally Posted by flameout
In the C++ WPILib, is there a way to set thread priorities? I believe it can be done in both LabVIEW and Java.
|
Use the class Task. In the constructor: Task("myTask", function, priority), where function is a pointer to the thread's main and priority is thread priority (100 is default). Call Start with any arguments to the main function to start the task.
Quote:
Originally Posted by flameout
What about UDP communication? I know LabVIEW contains primitives, but is this doable in Java and C++?
|
vxWorks implements the socket system in C++. You can see how it's used in the CANJaguar SpeedControl example or in Vision/PCVideoServer.cpp (the former copy-pasted the latter)
Quote:
Originally Posted by flameout
Is there some sort of event handling available? Could I, for example, run a section of code whenever a new image is available from the camera, or run a section of code when a digital input changes without polling?
|
I don't have the exact code in front of me, but I can push you in the right direction on how to do this. Team 639 used a rotating kicker and had a IR sensor that pulsed a Digital Line whenever the kicker reached a certain angle.
Any class that inherits from InterruptableSensorBase (That means DigitalInput, but not AnalogChannel) can interrupt the code. I think the code was somewhere along the lines of this:
Code:
DigitalInput *sensor;
void InterruptFunction() {
//do stuff here
}
Init() {
//blah
sensor = new DigitalInput(1);
sensor->RequestInterrupts( (tInterruptHandler)InterruptFunction);
sensor->EnableInterrupts();
//blah
}
I'm unsure of the line with the RequestInterrupts function, other than that I'm sure of everything.
No idea if an equivalent exists in Java