|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||||
|
|||||
|
I'm working on a new scripting framework (inspired by the premise of the navigation code of yesteryear, but implemented radically differently). I've completed basic coding but have not had the chance to test it on real hardware (I'm working on getting real hardware).
What I'm wondering is how many people would be interested in helping me test it before I release it? I plan on releasing it as freely (open source) as allowed. "scripting" is a bit of a mis-nomer. It's created in such a way as to allow a mixture of C and script. It (hopefully) addresses some of the issues of the navigation code (esp. when you have multiple scripts loaded at once). Instead of having to iterate through an array and read the data (which has two setbacks: indirect referencing and preventing certain optimizations), it creates function calls. How is this implemented? Preprocessor voodoo. ![]() Here is an example command: Code:
COMMAND cmd_wait(dTIME time)
{
long int end_time = robot_time + time;
bool done = FALSE;
COMMAND_LOOP(done) {
CMDHEARTBEAT;
if (robot_time > end_time)
done = TRUE;
}
printf("Done CMD_WAIT\n");
CMD_RETURN;
}
Code:
SCRIPT example_script() {
while (autonomous_mode) {
CMD_GYRO_BIAS();
CMD_WAIT_FOR_BUMP(100);
CMD_WAIT(1000);
CMD_DRIVE(1500);
CMD_WAIT(4000);
CMD_TURN(-1500, 40);
CMD_WAIT(3000);
CMD_DRIVE(2400);
CMD_WAIT(4000);
CMD_TURN(PI_ANGLE / 2, 50);
CMD_WAIT(4000);
CMD_DRIVE(2400);
CMD_TURN(-1500, 40);
CMD_WAIT(1000);
CMD_DRIVE(0);
CMD_KEEP_HEADING(240000, 100);
}
}
|
|
#2
|
||||
|
||||
|
Re: New script system
Wow... that's a pretty nice.
I would offer to help, but we unfortunately don't have quadrature encoders on our robot right now. (I'm assuming you need 'em. Do you?) |
|
#3
|
|||||
|
|||||
|
Re: New script system
Quote:
I've tried to make it as open-ended as possible, so you don't have to use my encoder/gyro implementation. The easiest way to insert your code is to add hooks in script_every_cycle(), and have your routines update my variables. I will, however, probably include Kevin's gyro/encoder code as a default implementation. (If I can clear it with him, that is.) Last edited by Astronouth7303 : 27-12-2005 at 13:47. |
|
#4
|
|||||
|
|||||
|
I've now got full implementation using Kevin's gyro and encoder code (unmodified). I still have not had the opportunity to test or debug this code.
You can grab the code from my site (1.32MB). I used Eclipse to create this from the beginning, so no MPLAB project is included. (Although some of us may consider that a good thing...) |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Students, what is your fantasy education system? | Ken Leung | General Forum | 28 | 04-01-2006 09:20 |
| Boilermaker Regional Wireless Scouting System. | Josh Hambright | Regional Competitions | 4 | 21-03-2005 19:48 |
| **FIRST EMAIL**/A note on the FRC scoring system | sanddrag | FIRST E-Mail Blast Archive | 13 | 17-03-2005 04:37 |
| guidelines for modifying the linker script??? | gnormhurst | Programming | 2 | 06-03-2005 02:03 |
| control system worth more than $500 | archiver | 2001 | 8 | 24-06-2002 02:00 |