aldweb

Fermer I. aldweb

Fermer II. Gratuitiels PC

Fermer III. Gratuitiels Palm

Fermer IV. Partagiciels Palm

Fermer V. iziBasic Palm

Fermer VI. Connaissance Palm

Fermer VII. Ordinateur Poche

Fermer VIII. miniPortail

Spécial !



Version mobile
de l'aldweb Site

m.aldweb.com


Ni Français, ni Anglais ?

Essayez donc l'un de ces drapeaux :
[de] [es] [it] [pt]
Recherche




Météo / Spam / www

Météo Lyon


aldweb contre le SPAM


Newsletter
Pour avoir des nouvelles de ce site, inscrivez-vous à notre Newsletter.
S'abonner
Se désabonner
298 Abonnés
Sites web de la famille

Webmaster - Infos
News Amis
Visites

   visiteurs

   visiteurs en ligne

Sondage
Comment trouve-tu le nouvel habillage de l'aldweb Site ?
 
Superbe !
Joli
Moyen
Moche...
Résultats
Poster une réponse

Je vous remercie de prendre le temps d'écrire ce message.

Votre nom (ou pseudo) :

Votre e-mail :

Masquer aux visiteurs votre adresse e-mail :      
Note : l'adresse e-mail utilisée est protégée contre le SPAM.

S'abonner à ce fil de discussion :      

Vous répondez à Pokey qui a écrit :


Hi,

I can't give you Pascal because I'm not a Pascal programmer. However, I just finished writing a serial routine in C and tested it tonight on my IIIxe. It sends "hello" 99 times and then waits 9 seconds for 1 byte.

Hopefully this may help you put it in iziBasic as coding in C is such a pain.

//*********************************************
//* Main routine
//*********************************************
int myMain() {
UInt16 iPort=0;
UInt32 iBytes=0;
UInt32 iLen=0;
UInt32 iCnt=0;
UInt16 iTicks=0;
UInt32 iErr=0;

Char caBuffer[64];
Char caOut[16];

Char *pcData;
Char *pcBuffer;

int i=0;
MemHandle h;

FrmCustomAlert(Alert1,"nStarting serial"," "," " );
iPort=openPort();

if(! iPort) {
FrmCustomAlert(Alert1,"Couldn't open the port"," ", " ");
return -1;
}

StrCopy(caBuffer,"Hellox0Dx0A"); //hello with CRLF

iLen=StrLen(caBuffer);

for(i=0; i < 99; i++) { //send 99 times for test

iBytes=sendToPort(iPort, caBuffer, iLen);

if(! iBytes) {
FrmCustomAlert(Alert1,"No bytes sent"," ", " ");
closePort(iPort);
return -1;
}
}

//wait 9 secs to receieve 1 byte of data

iTicks=9 * SysTicksPerSecond();

iErr=SrmReceiveWait(iPort, 1, iTicks);

if(iErr) {
printError(iErr);
return 0;
}

//check to see if data showed up on bus

if(! checkRecv(iPort, &iCnt)) { //check for any bytes on recv bus
closePort(iPort);
return -1;
}

if(iCnt) { //data available to read
h = MemHandleNew(iCnt+1); // iCnt = # bytes to get

if(h == 0) {
FrmCustomAlert(Alert1,"Couldn't obtain handle to memory"," ", " ");
closePort(iPort);
return -1;
}

pcBuffer= (Char *)MemHandleLock (h);

if(pcBuffer == NULL) {
FrmCustomAlert(Alert1,"Couldn't obtain pointer to memory"," ", " ");
closePort(iPort);
return -1;
}

if(! recvFromPort(iPort, pcBuffer, iCnt)) {
FrmCustomAlert(Alert1,"No bytes read"," ", " ");
closePort(iPort);
MemHandleUnlock(h);
MemHandleFree(h);
return -1;
}

StrNCopy(caOut,pcBuffer,iCnt);
caOut[iCnt+1]='';

FrmCustomAlert(Alert1,"Received a byte:",caOut," ");

MemHandleUnlock(h);
MemHandleFree(h);

}

closePort(iPort);

return 0;

}

//*********************************************
//* open the port
//* Returns: port # opened or 0 if fail
//*********************************************
UInt16 openPort() {
UInt32 iErr=0;
UInt16 iPort=0;

iErr=SrmOpen (serPortCradleRS232Port, 9600, &iPort); //9600 baud, default is 8N1

if(iErr) {
printError(iErr);
return 0;
}

return iPort;
}

//**********************************************
//* check the receive buffer
//*
//* Parms: iPort - port #
//* piCnt - Pointer to integer which will
//* contain number of bytes ready.
//* Returns: 1 on success, 0 on failure
//**********************************************
UInt32 checkRecv(UInt16 iPort, UInt32 *piCnt) {

UInt32 iErr=0;

iErr=SrmReceiveCheck (iPort, piCnt);


if(iErr) {
printError(iErr);
return 0;
}

return 1;
}


//**************************************************
//* receive data from port
//*
//* Parms: iPort - port #
//* caData - pointer to Char buffer to place
//* data received
//* iCnt - length of receive buffer pcData
//* Returns: # bytes received
//**************************************************
UInt32 recvFromPort(UInt16 iPort, Char *pcData, int iRecCnt) {

UInt32 iErr=0;
UInt16 iTicks;
UInt32 iCnt=0;

iTicks=5 * SysTicksPerSecond();
iCnt=SrmReceive (iPort, (void *)pcData, iRecCnt, iTicks, &iErr); //ticks is timeout

if(iErr) {
printError(iErr);
return 0;
}

return iCnt;
}


//**********************************************
//* send data to port
//*
//* Parms: pcData - Pointer to data to send
//* iCnt - # of bytes to send
//* Returns: # bytes actually sent or -1 if fail
//**********************************************
UInt32 sendToPort(UInt16 iPort, Char *pcData, int iCnt) {

UInt32 iBytes=0;
UInt32 iErr=0;

iBytes=SrmSend (iPort, (void *)pcData, iCnt, &iErr);

if(iErr) {
printError(iErr);
return 0;
}

return iBytes;
}


//*********************************************
//* close the port
//*********************************************
UInt16 closePort(UInt16 iPort) {

UInt32 iErr=0;

iErr=SrmClose (iPort);

if(iErr) {
printError(iErr);
return 0;
}

return 1;
}


//*********************************************
//* Print serial error codes.
//* Parms: iErr the error # to check
//* Returns: Nothing
//*********************************************
void printError(int iErr) {

Char caErr[99];

switch(iErr) {
case 0:
break;
case serErrBadParam:
FrmCustomAlert(Alert1,"Parm exceeds size of th


Aide :

Syntaxe du code :

  • <color=CodeHexadécimale></color> permet de colorer un texte.
    Remarque : Vous pouvez préciser à la place du code hexadécimal (#??????), le nom de la couleur (red, yellow, orange, green, blue, etc...). Pour plus de détails...
  • <bgcolor=CodeHexadécimale></bgcolor> permet de surligner en couleur un texte.
    Remarque : Vous pouvez préciser à la place du code hexadécimal (#??????), le nom de la couleur (red, yellow, orange, green, blue, etc...). Pour plus de détails...
  • <b></b> permet de mettre en gras un texte.
  • <i></i> permet de mettre en italique un texte.
  • <u></u> permet de souligner un texte.
  • <cite></cite> permet d'insérer une citation.
    Remarque : Vous pouvez préciser le nom de l'auteur de la citation en écrivant <cite=Auteur>
  • <code></code> permet d'insérer du code.
    Remarque : Vous pouvez préciser le langage en écrivant <code=NomduLangage>
  • <left></left> permet d'aligner à gauche.
  • <center></center> permet d'aligner au centre.
  • <right></right> permet d'aligner à droite.
  • <link></link> permet d'insérer un lien.
    Remarque : Vous pouvez préciser l'url du lien en écrivant <link=URL>texte</link>. Si vous ne précisez pas l'url du lien, l'url sera ce qui se trouve entre les deux balises.<link>URL</link>
  • <img=NomduSmiley> permet d'insérer un smiley.
    Remarque : Les noms des smileys de base disponibles sont : cool, wink, biggrin, smile, frown, eek, mad, confused, rolleyes, tongue, cry. Pour plus de détails...

Raccourcis clavier (sous Windows) :

  • Touche SHIFT + flèche (droite ou gauche) permet de sélectionner du texte
  • Touche ALT + 2 permet de sélectionner la barre d'outils
  • Touche ALT + 3 permet de sélectionner la zône d'édition
  • Touche ALT + 4 permet d'afficher l'aide
  • Touche ALT + 5 permet de masquer l'aide
  • Touche TAB permet de passer d'une sélection à la suivante
  • Touche SHIFT + TAB permet de passer d'une sélection à la précédente
  • Touche ALT + flèche (vers le bas ou vers le haut) permet de déplier le menu sélectionné
  • Touche ALT + flèche (vers le bas ou vers le haut) permet de replier un menu déplié
  • Touche flèche (vers le bas ou vers le haut) permet de naviguer dans un menu déplié
  • Touche ALT + s permet d'envoyer le formulaire

   |     |  Gras  Italique  Souligné  Insérer une Citation    Aligner à Gauche  Centrer  Aligner à Droite  Insérer un Lien  Insérer un Smiley (popup)  Prévisualiser (popup)  Afficher l'aide   
smiley tranquille  smiley complice  smiley content  smiley souriant  smiley sidéré  smiley perturbé  smiley en colère  smiley mécontent  smiley étonné  smiley moqueur  smiley malheureux 
Captcha reload
Recopier le code :


 
 
^ Haut ^