Accès Bluetooth en Rebol
ldci11-Nov-2008/12:46:39+1:00
Salut à tous
Avec un collègue, nous avons développé une série de capteurs divers qui communiquent en bluetooth de façon très simple:
Bluetooth profile: SSP (donc en série)
Data transmission: 9600 bds
8 bit
No parity
1 bit stop

Les données sont en ascii

Qd le capteur est reconnu, il attend la chaine "ENABLE" pour transmettre ses informations

A première vue un code rebol semble simple

gs: open/string serial://port4/9600/8/none/1
insert ps "ENABLE"

cela devrait suffire pour établir la connexion, non?
En fait, non: rebol n'arrive pas ouvrir le port série
Quelqu'un a-t-il une idée géniale? J'aimerais bien, pour la pub, que ces capteurs fonctionnent sous Rebol.

Merci à tous de vos lumières
DocKimbel11-Nov-2008/15:36:41+1:00
Par défaut, seul les ports COM1 et COM2 sont définis dans REBOL.

>> system/ports/serial
== [com1 com2]


Il faut donc ajouter PORT4 (ou COM4 plutôt?) à la liste avant de l'utiliser.
--
DocKimbel
ldci11-Nov-2008/15:55:18+1:00
Hello DocKimbel
Bien évidemment c'est fait "append system/ports/serial 'com3 ... comN"
On voit bien que Rebol attaque le bon port car il met du temps à répondre, mais j'ai qd même une erreur qui signale l'impossiblité d'ouverture du port.
Les docs rebol et mailing list sont peu explicites....
A +
DocKimbel11-Nov-2008/17:33:06+1:00
As-tu essayé d'ouvrir le port en /binary/direct/no-wait ?
ldci11-Nov-2008/20:08:25+1:00
Bien DocKimbel
A première vue, j'ai deux ports: COM4 en entrant et COM5 en sortant. L'utilisation avec le com5 semble logique, puisque c'est effectivement le port que le PC doit utiliser pour communiquer avec le périphérique BT. Avec la console, ta solution semble fonctionner, mais ce n'est pas stable. Avec rebolView: nenni. On renvoie un erreur.
Je vais continuer les tests, mais prise de tête.
A +
ldci15-Nov-2008/9:48:53+1:00
Ce que j'aimerais voir avec Rebol !

/**
* Grey-Soft Bluetooth Test
* by F. Jouen.
*
* Sends an "ENABLE" out the serial port, and reads string in.
*/


import processing.serial.*;

Serial port; // The serial port
boolean firstContact = false; // Whether we've heard from the microcontroller
String inBuffer; // to get response from GS/BT


void setup() {
size(256, 256); // Stage size
noStroke(); // No border on the next thing drawn

// Print a list of the serial ports, for debugging purposes:
println(Serial.list());

// I know that the 8 port in the serial list on my mac
// is always my GS/BT adaptor, so I open Serial.list()[8].
// Open whatever port is the one you're using.
port = new Serial(this, Serial.list()[8], 9600);
port.write("ENABLE"); // Send a command to start the microcontroller sending
}

void draw() {

while (port.available() > 0) {
serialEvent();
// Note that we heard from the microntroller:
firstContact = true;
}
// If there's no serial data, send again until we get some.
// (in case you tend to start Processing before you start your
// external device):
if (firstContact == false) {
delay(300);
port.write("ENABLE");
}
}

void serialEvent() {
String inBuffer = port.readString();
if (inBuffer != null) {
println(inBuffer);
}
}

Bien sûr Processing, c'est du Java-Like, mais ça marche et ça communique très bien avec Rebol.
ldci3-Dec-2008/2:29:25+1:00
Finalement j'ai trouvé et ça peut intéresser du monde.
L'astuce consiste à initialiser le bloc system/ports/serial de Rebol avec le nom du port série qu'utilise le dispositif bluetooth comme par exemple:
system/ports/serial: [cu.GREY-SOFTXYZacceleromet-1] pour les systèmes unix ou system/ports/serial: [COM5] pour windows.
Rebol traite dès lors ce port comme le port1 par défaut et un simple open comme par exemple "p: open/no-wait serial://port1/9600/8/none/1" ouvre le port en communication.
Le reste est enfantin: envoi des chaînes de commande et lecture des données transmises par le dispositif.
Amitiés à tous.
Didec4-Dec-2008/13:34:24+1:00
Super nouvelle !

Mais quid des difficultés rencontrées au départ ?
Quel est le bon code ?
ldci15-Dec-2008/14:37:06+1:00
Bon
Je n'y comprends plus rien

Sous Mac OSX ce code fonctionne parfaitement

#! /usr/bin/rebview
REBOL [
]
;for Windows
;system/ports/serial: [com5]
; for Mac OSX
system/ports/serial: [cu.GREY-SOFTXYZacceleromet-1]
print "Connecting...."
p: open/no-wait serial://port1/9600/8/none/1
insert p "ENABLE"
Print "Activating Device ..."
wait [p 0:00:10]
data: copy p
print join "Data : " mold data
close p
print "Done"
input

Voici la réponse

Connecting....
Activating Device ...
Data : {ENABLE

GREY-SOFT(c)
Bluetooth Pressure Sensor Rev. 2.4
Firmware Rev. 2.1
Pressure Sensor ID: 01
Sensibility: 0.5 PSI = 0x700000 counts
Auto-calibration in progress, please wait ...
}
Done


Sous Windows VISTA

Le même code renvoie
Connecting ...
** Acces Error: Cannot open com5
** Near: p: open/no-wait serial://port1/9600/8/none/1
insert p


QUI AURAIT une IDEE LUMINEUSE ?
ldci15-Dec-2008/15:51:48+1:00
Bien
C'est VISTA qui m...
Le code marche avec XP sans problème...
A +
Didec15-Dec-2008/17:21:44+1:00
Ne serait-ce pas une simple histoire de droits !
VISTA ferme un peu tout aux utilisateurs ou "SandBox" pas mal de chose.

Donc a essayer en ADMIN... voir il faut peut-être donner des droits spéciaux à l'admin (droits des utilisateurs).
ldci15-Dec-2008/18:12:34+1:00
Salut Didier
Je n'avais pas pensé à ce détail. Je teste et te tiens au courant.
A +
ldci16-Dec-2008/10:16:58+1:00
Re
Finalement, en installant la pile bluetooth de Toshiba, qui est manifestement mieux conçue, tout est en ordre et marche impeccable.
Pour ce que ça peut intéresser voici les infos sur le Bluetooth Stack for windows by Toshiba

Toshiba has created its own Bluetooth stack for use on Microsoft Windows. Toshiba licenses their stack to other original equipment manufacturers (OEM) and has shipped with some Fujitsu Siemens, ASUS, Dell and Sony laptops. A non-disclosure agreement must be signed to obtain the API. The Toshiba stack is also available with certain non-oem Bluetooth accessories such as USB Bluetooth dongles and PCMCIA cards from various vendors.
The Toshiba stack supports one of the more comprehensive list of Bluetooth profiles including: SPP, DUN, FAX, LAP, OPP, FTP, HID, HCRP, PAN, BIP, HSP, HFP (including Skype support), A2DP, AVRCP, GAVDP

On peut la trouver ici : http://www.updatestar.com/fr/detail/bluetooth-stack-for-windows-by-toshiba

ou sur d'autre sites comme clubic.com.
A +
ldci16-Dec-2008/10:19:37+1:00
Encore mieux comme lien : http://aps2.toshiba-tro.de/bluetooth/?page=download
A +

Login required to Post.


Powered by RebelBB and REBOL 2.7.8.4.2