Kontrollera din iRobot skapa med en Palm Pilot (10 / 16 steg)
Steg 10: Programmet, del 2
Nu kan vi definiera GUI elementen. Överst i filen "robot.rcp" måste det finnas en rad som innehåller:#include "robot.h"
Utan denna linje inte skulle kompilatorn ersätta elementnamn för ID-nummer.
Den första formen (sida) i vårt program kommer att innehålla 2 bilder, några etiketter och vissa textområden. Texten bör inte vara redigeras av användaren. Jag vill inte att det finns en gräns, och det bör finnas en knapp som tillåter användaren att enkelt stoppa program från att uppdatera sensor displayen.
FORM-ID FormMain på (0 0 160 160)
NOFRAMEUSABLEMENUID huvudmeny
BÖRJA
TITELN "iRobot Status"
FORMBITMAP på (20 25) BITMAPP PicRobot
FORMBITMAP (110 21) BITMAPP PicWall_
ETIKETT "Program:" AUTOID på (10 120) FONT 0
FÄLTET ID FldProg vid (80 PREVTOP 70 AUTO) inte går att redigera UNDERSTRÖK MAXCHARS 15
ETIKETT "spänning:" AUTOID (10 PREVBOTTOM + 1) teckensnitt 0
FÄLTET ID FldVoltage vid (80 PREVTOP 70 AUTO) inte går att redigera UNDERSTRÖK MAXCHARS 15
KNAPPEN "Stopp" ID BtnDisconnect på (110 102 AUTO AUTO)
SLUTET
Den andra formen kommer att användas för att markera Demo program på iRobot skapa. Den bör ha en förklarande textetikett, en lista över möjliga alternativ och ett (icke-redigerbara) text-fält som kommer att visa en kort beskrivning av den valda demon. Den bör även innehålla en rubrik, men utan ram.
FORM-ID FormSelect på (0 0 160 160)
NOFRAMEUSABLEMENUID huvudmeny
BÖRJA
TITELN "Välj Script"
ETIKETT "Välj ett demo program eller makro:" AUTOID på (5 20) teckensnitt 0
LISTAN "täcka" "Täcka och docka" "Spot täcka" "mus" "Åtta" "Mes" "Hem" "Tag"
"Pachelbel" "Banjo" ID SelScript (30 35 90 1) teckensnitt 0 VISIBLEITEMS 5
FÄLTET ID FldDescription vid (5 PREVBOTTOM + 8 145 60) inte går att redigera teckensnitt 0 UNDERSTRÖK MULTIPLELINES MAXCHARS 255
SLUTET
Den slutliga utformningen kommer att användas för att skapa skript. Den bör innehålla några knappar som kontroll skriptet som en helhet (som "Kör Script" eller "Ta bort skriptet") samt knappar används för att lägga till kommandon till skriptet. För att skilja dessa 2 bör uppsättningar av knappar det en skiljelinje (i detta fall en bitmapp). Det bör också finnas en (igen, icke-redigerbara) textfält som visar kommandona i skriptet, textfältet bör åtföljas av en rullningslist. Som sista form bör det finnas en rubrik.
FORM-ID FormMacro på (0 0 160 160)
NOFRAMEUSABLEMENUID huvudmeny
BÖRJA
TITELN "Skapa/redigera makro"
KNAPPEN "Skicka till robot" ID BtnSend på (6 20 AUTO AUTO)
KNAPPEN "Rensa" ID BtnClear (PREVRIGHT + 3 PREVTOP AUTO AUTO)
KNAPPEN "Ta bort" ID BtnDel (PREVRIGHT + 3 PREVTOP AUTO AUTO)
FORMBITMAP på (0 35) BITMAPP PicBar
KNAPPEN "Upp" ID BtnUp på (23 45 13 13) NOFRAME grafiska BITMAPID PicUp
KNAPPEN "vänster" ID BtnLeft på (PREVLEFT-15 PREVTOP 13 13) NOFRAME grafiska BITMAPID PicLeft
KNAPPEN "Rätt" ID BtnRight på (PREVRIGHT + 17 PREVTOP 13 13) NOFRAME grafiska BITMAPID PicRight
KNAPPEN "Ner" ID BtnDown (PREVLEFT-15 PREVBOTTOM + 4 13 13) NOFRAME grafiska BITMAPID PicDown
KNAPPEN "Klocka" ID BtnClock vid (68 45 18 18) NOFRAME grafiska BITMAPID PicClock
KNAPPEN "CClock" ID BtnCClock på (PREVRIGHT + 7 PREVTOP 18 18) NOFRAME grafiska BITMAPID PicCClock
KNAPPEN "Paus"-ID BtnPause på (130 PREVTOP 18 18) NOFRAME grafiska BITMAPID PicPause
ETIKETT "Plus" AUTOID på (46 70) teckensnitt 0 knappen "1" ID BtnP1 på (PREVRIGHT PREVTOP 10 11) RECTFRAME
KNAPPEN "2" ID BtnP2 på (PREVRIGHT + 1 PREVTOP 10 11) RECTFRAME
KNAPPEN "4" ID BtnP4 på (PREVRIGHT + 1 PREVTOP 10 11) RECTFRAME
KNAPPEN "8" ID BtnP8 på (PREVRIGHT + 1 PREVTOP 10 11) RECTFRAME
KNAPPEN "16" ID BtnP16 på (PREVRIGHT + 1 PREVTOP 15 11) RECTFRAME
ETIKETT "sekunder" AUTOID på (PREVRIGHT + 2 PREVTOP) teckensnitt 0
FORMBITMAP på (0 PREVBOTTOM + 5) BITMAPP PicBar
FÄLTET ID FldScript vid (5 90 135 70) teckensnitt 0 inte går att redigera UNDERSTRÖK MULTIPLELINES MAXCHARS 500 HASSCROLLBAR
SCROLLBAR-ID SclScript (PREVRIGHT + 5 PREVTOP 7 PREVHEIGHT) värde 0 MIN 0 MAX 8 PAGESIZE 1
SLUTET
Varje form ska ha en meny. Menyn kan användaren välja mellan former och kontroll meddelande med robot.
MENY-ID huvudmeny
BÖRJA
PULLDOWN "Main"
BÖRJA
MENUITEM "Status" ID MnuStatus "S"
MENUITEM "skript" ID MnuScript "I"
MENUITEM "Redigera makron" ID MnuMacro "M"
SLUTET PULLDOWN "Robot"
BÖRJA
MENUITEM "Anslut" ID MnuConnect "C"
MENUITEM "Koppla" ID MnuDisconnect "D"
MENUITEM AVGRÄNSARE
MENUITEM "Kör" ID MnuRun "R"
MENUITEM "Stopp" ID MnuStop "O"
SLUTET PULLDOWN "Hjälp"
BÖRJA
MENUITEM "Hjälp"-ID MnuHelp "H"
MENUITEM "Om" ID MnuAbout "A"
SLUTET
SLUTET
Vi måste definiera skärmen "om".
MEDDELANDE-ID-AboutAlert
INFORMATIONBEGIN
TITELN "om iRobot"
MEDDELANDET "Ett program för att kommunicera med en iRobot Create\n" \
"------------------\n"\
"Av: Tristan Losier\n" \
"Släppt under GPL\n" \
"------------------\n"\
"iRobot är ett registrerat varumärke av iRobot Corporation"
KNAPPARNA "Ok"
SLUTET
Och sist men inte minst, vi måste definiera alla bitmappar och ikoner som används i programmet. Du kanske märker att många av bitmappar som definieras nedan inte är använt ovan, det är eftersom de används någon annanstans i programmet.
BITMAPP-ID PicBar "images/bar.bmp"
BITMAPP-ID PicRobot "images/irobot.bmp"
BITMAPP-ID PicWall_ "bilder/wall_.bmp"
BITMAPP-ID PicCliff "images/sensors/cliff.bmp"
BITMAPP-ID PicWhealL "images/sensors/lwheal.bmp"
BITMAPP-ID PicWhealR "images/sensors/rwheal.bmp"
BITMAPP-ID PicBumpL "images/sensors/bumpl.bmp"
BITMAPP-ID PicBumpR "images/sensors/bumpr.bmp"
BITMAPP-ID PicWall "images/sensors/wall.bmp"
BITMAPP-ID PicUp "images/buttons/up.bmp"
BITMAPP-ID PicDown "images/buttons/down.bmp"
BITMAPP-ID PicLeft "images/buttons/left.bmp"
BITMAPP-ID PicRight "images/buttons/right.bmp"
BITMAPP-ID PicClock "images/buttons/clock.bmp"
BITMAPP-ID PicCClock "images/buttons/cclock.bmp"
BITMAPP-ID PicPause "images/buttons/pause.bmp"
IKONEN "robot.bmp"
SMALLICON "robotsmall.bmp"