J'aimerais savoir s'il est possible de piloter le clavier d'un ordianteur distant, tout en étant sur de ne jamais perdre un click sur une touche.
Pour l'instant j'utilise un IdTCPServer (l'ordianteur à pilotrer) et un idTCPclient (sur l'ordinateur pilote)
Dans une boucle je regarde le caractere appuyé (pour l'instant je ne gere pas les virtuals keys car je communique en ascii (writeln readln)ce qui semble etre un probleme et je dis au client d'envoyer le caractere.
Le serveur recoit bien le caractere...
Mais comme on doit effectuer des traitements entre chaque read on rate des appuis.
Je voudrais etre sur de ne pas rater de key stroke.
La mauvaise "solution" que j'ai trouvé c'est d'envoyer tous les X ms un message au client (en ascii encore)... Message quit dit 'next stroke'
Le client ne peux pas renvoyer de nouvelle touche avant d'avoir recut un 'next stroke'
malheureusement, ca hache trop la communication...
Comme j'envisage d'utiliser cette technique dans des projets aussi variés que le pilotage d'un jeu video, un telecommande pour robot etc... Il me faut quelque chose d'efficace.
Par exemple avec le robot voici les symptomes de ma methodes d'aujourd'hui.
En mode local:
Lorsque j'appuye sur une touche directement, le moteur fait n pas, et ne relis le clavier qu'une fois les n pas executés... Si j'ai toujours le doigts appuyés il refait n pas. Bien qu'il y ait eu une interruption celle ci est si coutre que cela donne l'apparence d'une parfaite fluidité.
En remote avec ma methode:
le moteur fait un arret entre chaque étape (le temps d'envoyer next step etc...)
Bon ben voila... piloter un clavier par internet avec une "sensation" de temps reel et sans perdre de key stroke... C'est possible?
Qu'elle la bonne méthode?
La mienne est très mauvaise.
Partager