Programmeren in TI-Basic/Linkpoort

Uit Wikibooks
Naar navigatie springen Naar zoeken springen

Dit hoofdstuk gaat over de linkpoort(en) op een TI GR.

We maken allereerst onderscheid tussen een TI-83(+) en een TI-84 (+)(SE). De TI-83 heeft slechts één poort op de GR zitten. Dit is een I/O - poort, waar een snoer met jack-plug ingestoken moet worden. De TI-84 heeft daarnaast ook een kleine usb-poort.

Algemeen[bewerken]

Allereerst een waarschuwing. Stel je bij het programmeren niet teveel voor van het gebruik van de volgende functies. Ze zijn net zo langzaam als wanneer je normaal gesproken via het [2nd][link] menu een variabele zou versturen. Daarnaast moet de andere rekenmachine in pauzestand stand staan. Dit kan bijvoorbeeld via Pauze (var) of Input "TEKST",(var). Wanneer de andere rekenmachine niet gepauzeerd is gedurende de overdracht, kan het programmatje crashen, maar vaker gebeurd het dat de variabele niet verstuurd wordt. Omdat de gebruiker van de andere rekenmachine per definitie onberekenbaar is (en zomaar pauze weg kan drukken), kan je beter niet proberen via kabels gegevens versturen.

Onder de volgende kopjes bestuderen we de volgende functies:

  • Send(
  • Get(
  • GetCalc(

Aan de slag[bewerken]

Maar goed, je hebt een GR en wil via een programmaatje iets versturen naar een andere rekenmachine. Dit kan al niet... Hoewel de optie Send( doet vermoeden dat je een variabele kan versturen, kan alleen een CBL 2 of een CBR er mee overweg[1]

De functie Get( heeft hetzelfde probleem. Ook hier kan je alleen gegevens ophalen van een CBL 2 of een CBR-systeem.

Het is alleen mogelijk om gegevens op te halen van een andere rekenmachine via de optie GetCalc(. Het gebruik van deze functie is vrij simpel. Door de functie aan te roepen met een variabele, zal de rekenmachine proberen die variabele van de anderen rekenmachine op te halen. Dit lukt alleen maar als de andere rekenmachine in de pauze-stand staat en blijft staan (Zie hier). Wanneer de rekenmachine klaar is met het ophalen van de door jou gekozen variabele, zal deze doorgaan met het uitvoeren van de rest van de code.

Gebruik: GetCalc(var)

TI 84+: Omdat de TI-84+ twee poorten heeft, kan deze ook gebruik maken van de port-flags. GetCalc(var, portflag) zal proberen var op te halen via portflag (opgegeven poort).

Er zijn dan drie mogelijkheden:
0. Probeer var op te halen via de usb-poort, mits deze is aangesloten. Anders probeert de rekenmachine het nogmaals op de I/O-poort. (dit is de standaard portflag, dus maak je niet druk).
1. Gebruik de usb-poort. Als deze niet is aangesloten, zal de variabele niet worden opgehaald.
2. Gebruik de I/O-poort. Als deze niet is aangesloten, zal de variabele niet worden opgehaald.

Zodoende kan je dus ook twee of meer rekenmachines aansluiten via I/O en usb-poorten... Voor de programmeur wordt het dan wel erg lastig om alle dingen op een rijtje te zetten....

Voorbeeld[bewerken]

Huh, wat, een voorbeeld? Dit spreekt toch voor zich? Nou goed dan, een klein voorbeeldje van een klein chat-programma (overigens zonder stopscript)

PROGRAM:TALK
:""->Str1
:""->Str2
:""->Str3
:""->Str4
:Repeat max({A,A}={1,2    //Door 1 of 2 in te voeren, komt hier {1,0} of {0,1} uit (max = 1)
:Input "Calc num   (1/2)",A
:End
:While A=1
:Input "C1:",Str1
:GetCalc(Str3
:If Str3 =/= Str4:Then    //Als hetgene wat opgehaald is hetzelfde is als wat
:Str3 -> Str4             //wat er al stond, is het nutteloos dat weer te geven
:Disp("C2:",Str3
:End
:End                      //EINDE 1STE CALC
:While A=2
:Input "C2:",Str3
:GetCalc(Str1
:If Str1 =/= Str2:Then
:Str1 -> Str2
:Disp("C1:",Str1
:End
:End                      //EINDE 2DE CALC
:
:"BY SUMURAI8             //Deze code zal nooit worden uitgevoerd

Merk bij dit voorbeeld op dat als je 2x iets snel na elkaar zegt, de kans HEEL groot is dat de ander je eerste tekst nooit zal zien. Een oplossing is om elke 30 seconde een spatie naar de ander te sturen...

Referenties[bewerken]

  1. Applicatie voor gebruik met deze twee 'sensoren'-systemen
Informatie afkomstig van http://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.