Je ne suis pas un developpeur AS3 (loin de là !!!), moi je suis plutôt sur les micro controleur et, justement, j'essaye de piloter un peripherique avec une appli Flash.
Le principe est relativement simple :
- Mon peripherique a son propre code dans lequel est stockée une variable "maVar". Quand celle-ci change de valeur, le peripherique execute telle ou telle chose (imprimer ou scanner par exemple ou tout autres choses qu'un peripherique pourrait faire)
- Dans l'appli Flash, on retrouve "maVar" et quand on clic sur un bouton de l'appli, on change la valeur de cette variable et on l'envoi dans un socket
- le socket est une entité se trouvant ENTRE l'appli Flash et le peripherique. En effet, pour faire le pont entre les 2, il faut utiliser un proxy (c'est une appli qui permet d'envoyer et recevoir des infos de l'USB de l'ordi). Le socket est donc une entité stockée DANS le proxy.

Tout fonctionne mais j'ai un probleme avec ce proxy et le soucis vient PEUT ETRE de mon code Flash. C'est pour cette raison que j'ai besoin de vous !

Pourriez vous me dire si, structurellement, il y a un probleme dans mon code SVP ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
// les classes dont j'ai besoin
import flash.display.Sprite;
import flash.net.Socket;
import flash.events.MouseEvent;
 
//creation d'1 entité socket
var _socket:Socket;
_socket = new Socket();
 
//ça, ce sont les adresses de mon port USB
var _proxyAddress:String = "127.0.0.1";
var _proxyPort:uint = 5331;
 
//fonction de clic sur un bouton
function onClic1(pEvt:Event):void
{	                    
    // je me connecte au proxy
    _socket.connect(_proxyAddress, _proxyPort);
 
    //la variable qui sera reconnue dans le peripherique	
    var maVar:String = "E";
 
	//j'ecris ma variable dans l'entité socket
	_socket.writeUTFBytes(maVar);
 
}
 
btn1.addEventListener(MouseEvent.CLICK, onClic1);
Voila, ce petit monde fonctionne mais, plus j'envoie de requetes plus les connexions avec le proxy sont refusées !
Je pense donc qu'il faut peut-être FERMER le socket après chaque utilisation !? j'utilise donc une methode .close() mais là, impossible !!! Flash m'envoi des message d'erreurs. Voila comment j'ecris ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// les classes dont j'ai besoin
import flash.display.Sprite;
import flash.net.Socket;
import flash.events.MouseEvent;

//creation d'1 entité socket
var _socket:Socket;
_socket = new Socket();

//ça, ce sont les adresses de mon port USB
var _proxyAddress:String = "127.0.0.1";
var _proxyPort:uint = 5331;

//fonction de clic sur un bouton
function onClic1(pEvt:Event):void
{	                    
    // je me connecte au proxy
    _socket.connect(_proxyAddress, _proxyPort);

    //la variable qui sera reconnue dans le peripherique	
    var maVar:String = "E";
	
	//j'ecris ma variable dans l'entité socket
	_socket.writeUTFBytes(maVar);
	
        _socket.close();

}

btn1.addEventListener(MouseEvent.CLICK, onClic1);
-Arrivez vous à voir quelque chose de pas bien foutu ?
-Comprenez vous pourquoi il refuse cette methode ?
-Sur un autre forum, quelqu'un me dit de ne pas mettre mon code sur la timeline.... ça peut changer quelque chose ?
Il me dit également de faire une classe et de mettre le code a l'interieur ????? je ne comprends rien !! peut être que vous oui !?