Aide - Recherche - Membres - Calendrier
Version complète : Recevoir des impulsions en temps reel sur clié ou palm.
Les Forums de PalmAttitude.org > GENERAL PalmOS > Développement sous PalmOS
up_garde
Salut !!

Je dispose d’un petit récepteur donnant des impulsions ‘tout ou rien’ donc sur deux fils…
Je souhaite connecter se récepteur sur des cliés ou des palms enfin de stoker, analyser les données. L’application fonctionnera en temps réel.

Mon problème en fait est de trouver le branchement de se récepteur ainsi que faire la fonction de capture des impulsions et quel outil de développement me permettrait d’atteindre se but (facilement) je précise que je ne souhaite pas programmer en C…

Merci pour votre aide !!
aldweb
Salut,

J'ai essayé de te répondre sur le forum de mon site où tu as posé la même question anim_wink.gif

C'est ici : http://www.aldweb.com/thread.php?lng=fr&pg...82&fid=1&cat=80
Destino
En fait la réponse de aldweb ne te convient pas icon_cry.gif
pourtant il me semble que c la chose à faire en réalité, à moins que quelqu'un d'autre ait une VISION
Corto
IL y a plusieurs problèmes:
- comme dis amlweb, il faut faire de l'éléectronique pour faire un cable série, mais si tu poses une tel question, je pense que ce n'est pas un problème pour toi. Tu peux trouver le schéma des connecteurs de chaque machine chez son constructeur.
- pour la comm, en effet il faut passer par le "serialmanager" ce qui en 68K n'est pas un problème, je pense que tu peux trouver les API qu'il te faut sur à peu près tous les langages éxistant.
- le gros problème est le temps réel, sur OS 5 pour un développeur indépendant, c'est tout simplement IMPOSSIBLE. Tu dois passer par l'émulateur 68K qui n'est pas du tout temps réel. Pour un OS 3 ou 4, cela ne pose pas de problème car ceux sont des OS temps réel (il y a un seul processus qui tourne à la fois). Pour l'OS 6 ce sera du temps réel mous sauf si tu as des accords avec PalmSource, mais comme il n'y a pas de devices OS6 cette solution avorte automatiquement.
delirii
Je reprends ce message qui m'interesse un peu :
Je souhaite aussi faire de l'acquisition de signaux du même type (tout ou rien) via un capteur connecté sur le port série d'un Palm, mais avec une notion temps réel en moins (faut juste que ça réagisse assez vite, pas forcement en temps réel au sens strict)

Avez vous des informations sur un tel montage pour communiquer simplement au port serie des impulsions et savoir réagir (en langage C) à ce type de signal ? J'ai bien trouvé des solutions utilisant l'IRQ de la HotSync mais je souhaiterais plutot recourir à une comm serie.

Dans l'esprit, ça semble simple : sur front montant => réagir

Merci par avance !
Patrice
Si tu utilises le port série, ton "détecteur" doit fournir des signaux RS232 et il ne te reste qu'à consulter le "Serial Comm Manager" du SDK pour la partie soft.
Khertan
Je suppose que ton detecteur est un simple capteur ... et je suppose qu'il ne fourni pas en standart des signaux rs232 ...

Dans ce cas un tout piti montage s'impose avec un MAX232 pour transformer les signaux ... tu trouvera partout sur le net de tel shema a base de MAX232.

Ensuite les different connecteur de palm sont decrit sur le site de palm (pas palmsource).

Et le serial manager, cela se fait tres bien avec pp sourire.gif Bon il faut juste lire un peu la doc au sujet du serial manager dans l'api sourire.gif
snark
Les infos de capteur pour VeloAce te seront peut-être utiles?
Pierre R.
hello
tu trouveras ici et 2 logiciels que j'ai fait qui récupère l'info du port serie (1/0) pour declencher une action sur le palm (dans un cas un chrono, dans l'autre une alarme).
Le programme C est très simple, je detecte tout simplement la presence d'un signal ou pas.
si tu le fais dans une boucle à la vitesse que tu souhaites, (tout en laissant la main à la pompe à message de temps à temps) tu peux faire du pseudo temps réél tout en restant dans ton appli.
je te copie le code ici ce soir...
delirii
Quelle bonne surprise de voir qu'après une demi journée, j'ai plusieurs réponses qui m'apportent des infos bien utiles !

CITATION(Patrice @ 01/06/2006 à 09:36 ) *
Si tu utilises le port série, ton "détecteur" doit fournir des signaux RS232[...]


Ca, c'est effectivement la piste "high tech" que j'aimerais prendre à terme !

CITATION(Khertan @ 01/06/2006 à 10:19 ) *
Je suppose que ton detecteur est un simple capteur ... et je suppose qu'il ne fourni pas en standart des signaux rs232 ...

Dans ce cas un tout piti montage s'impose avec un MAX232 pour transformer les signaux ... tu trouvera partout sur le net de tel shema a base de MAX232.


C'est exactement le cas actuellement : le capteur n'est autre qu'un interrupteur (certes pas mécanique, mais interrupteur quand même.
Pour ce qui est d'exemples de montage de MAX232 pour Palm, j'ai rien trouvé de bien précis mais je n'ai cherché que 2 minutes...

CITATION(snark @ 01/06/2006 à 12:08 ) *
Les infos de capteur pour VeloAce te seront peut-être utiles?


Ca, c'est plutot TRES interessant !!! Merci pour ce lien magique qui remplira à merveille la première version désirée (detection de signal O/1).


CITATION(Pierre R. @ 01/06/2006 à 13:25 ) *
hello
tu trouveras ici et 2 logiciels que j'ai fait qui récupère l'info du port serie (1/0) pour declencher une action sur le palm (dans un cas un chrono, dans l'autre une alarme).
Le programme C est très simple, je detecte tout simplement la presence d'un signal ou pas.
si tu le fais dans une boucle à la vitesse que tu souhaites, (tout en laissant la main à la pompe à message de temps à temps) tu peux faire du pseudo temps réél tout en restant dans ton appli.
je te copie le code ici ce soir...


Merci aussi pour cette réponse qui ne peut que m'aider !

------------------------------------------------------------------------

Pour donner plus d'infos sur ce projet :
- ce sera mon premier soft pour Palm et je compte le faire via l'environnement eclipse de Palm (que j'ai installé et avec lequel j'ai pondu mon propre "Hello World" qui s'impose dans ces cas là wink.gif )
- autant je connais bien Java (mais les Palm entrée de gamme en sont privés) autant le C/C++ commence à remonter dans mon esprit : la remise en route va se faire doucement... et surement dans la douleur smile.gif L'avantage est aussi de bien connaitre eclipse !
- mon "interface à capteurs" à terme pourrait lire (c'est mon rève un peu fou) des informations booléennes (du type de l'interrupteur => pour ça, je pense avoir ici reçu les infos qui vont bien) et variables (signaux analogiques issus de capteurs comme un capteur de t°), tout ça en même temps... Et là, ça devient tout de suite plus complexe car ça sens le CAN et le montage electronique que mes cours trop lointains d'electronique ne me permettront pas de faire seul sad.gif

Allez, pour divulguer un peu plus sur "la chose" : ça se rapprocherait fortement du principe du veloace... avec des infos mécaniques en plus (t°, tr/min, inclinaison, acceleration, ...).
L'idée serait d'avancer en deux temps :
- une première version qui sait detecter une commutation sur le port serie (bon, c'est quasi fait avec ce dont je dispose maintenant => reste plus qu'à coder et souder)
- une seconde version multi capteurs par la suite.

Encore merci wink.gif
Elceb
Ce ne serai pas plus simple de faire fontionner le cateur en IRDA?
delirii
CITATION(Elceb @ 01/06/2006 à 18:06 ) *
Ce ne serai pas plus simple de faire fontionner le cateur en IRDA?


Peut etre, mais faut me dire pourquoi... Une interface IR est plus simple à réaliser ?
J'irai au plus simple, si on me demontre par A+B que la solution IRDA est plus simple, GO GO GO !
Mais ce que je prefere au port du Palm, c'est le coté "bien fixé" de l'interface du capteur...
Pierre R.
je ne sais pas si cela va t'aider, mais avec le cable dont le schéma est dans les URL que je t'ai donné, le code est assez simple (ouverture port serie + pompe a message + detection du signal) :
PS : l'indentation est toute pourrie, mais j'arrive pas à faire mieux avec cet éditeur !!!! icon_confused.gif )
Err err;
EventType event;
UInt16 serRefNum;
Boolean b1,b2,bEnd;
UInt16 data;
UInt16 dataLen;
FormType * frmP;
FieldType *pField;
frmP = FrmGetActiveForm();

err = SysLibFind("Serial Library", &serRefNum);
if (err)
{
FrmCustomAlert (CustomAlert,"Serial Lib not found","","");
serRefNum = 0;
}
else
{
SerClose(serRefNum);
dataLen = sizeof(UInt16);

err = SerOpen(serRefNum,serPortCradleRS232Port,300);
if (err)
{
if (err==serErrAlreadyOpen )
{
SerClose(serRefNum);
}
FrmCustomAlert (CustomAlert,"SerOpen Error","","");
serRefNum = 0;
}
else
{
bEnd = false;
while(1)
{
err = SerGetStatus (serRefNum,&b1,&b2);
if (err)
{

// signal detecte
//

SerClearErr (serRefNum);
}

// catch event, pompe a message
EvtGetEvent(&event, SysTicksPerSecond()/3);
switch (event.eType)
{
case penUpEvent :
{
SysTaskDelay(SysTicksPerSecond()/3);
}break;

case penDownEvent :
{
bEnd=true;
}break;


case ctlSelectEvent:
{
if (event.data.ctlSelect.controlID == MainStartButton)
{
bEnd = true;
break;
}
}
break;
}
if (bEnd)
{
break;
}


}
SerClose(serRefNum);

}
}

}
Khertan
Et pis d'autre exemple de montage sur le port serie d'un palm :

http://www.palmopensource.com/index.php?category=25
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.