Compilation de 2 softs JAVA open source
Bonjour,
Je suis professeur de Génie Electrique, et je souhaite développer des outils innovants & motivants pour mes étudiants. De par mon parcours professionnel, j'ai des compétences en développement (C essentiellement) mais pas en Java.
Je contribue à collaborer à développer des composants industriels à partir d'un open source Lushprojects de Paul FALSTAD développé en JAVA (compilation du projet sous eclipse).
Pour que mon projet aboutisse, j'ai besoin de pouvoir communiquer en modbus TCP (API, maquettes sous Unity3D, etc ...) , et j'ai trouvé un open source en JAVA qui fait cela très bien (easymodbus).
Le problème, je ne suis pas un expert en Java pour arriver à faire compiler les 2 softs open source. Il me faudrait intégrer le projet easymodbus dans le projet lushprojects.
J'aurais besoin d'un expert Java ou d'un coup de main, pour m'aider à unifier les 2 softs, afin de créer des formations motivantes pour mes étudiants.
Liens vers les softs sous :
https://github.com/pfalstad/circuitjs1
Si quelqu'un peut m'aider, je lui en serais très reconnaissant !!!
Par avance, merci,
Franck VIARD
2 pièce(s) jointe(s)
COM entre 2 applis open source JAVA en modbus TCP
Bonjour,
Tout d'abord, un grand merci d'avoir répondu à ma problématique. :D
Oui j'ai téléchargé les jar du site easymodbus, et je confirme, ça marche très bien en client comme en serveur en modbus TCP. Les sources en Java sont disponibles d'ailleurs (https://github.com/rossmann-engineer...ModbusTCP.Java).
Je vais essayer d'expliquer plus en détails, ce que je souhaite faire.
J'ai participé à un développement Open Source (http://lushprojects.com/circuitjs/circuitjs.html) d'un soft en Java, qui simule des composants électroniques.
Pour le moment, j'ai traduit en français tous les termes anglais utilisés dans le soft.
Et comme ce soft a beaucoup d'intérêts pour moi et ce que je souhaite faire avec mes étudiants, je développe des composants industriels pour le soft, que je mettrais à la disposition de la communauté, si cela intéresse l'auteur (Paul Falstad) de Lushprojects. Pour ma part, aucun but commercial.
Je ne suis pas du tout expert en Java, pour ne pas dire débutant, même si j'ai développé des applis en C, dans une vie antérieure. Paul m'a expliqué comment à partir de ses sources Java, compiler avec Eclipse son projet. J'utilise donc Eclipse comme IDE, mais sans rien maitriser !!! Ca compile et je crée mes fichiers Java que j'insère dans son projet.
Je me débrouille, mais là je bloque !!! Voir en PJ pdf.
Mon idée, c'est de pouvoir faire des COM Modbus TCP à partir de son projet. Et là , c'est le drame, car je ne sais absolument pas comment faire pour intégrer les sources Easymodbus dans le projet Lushproject et que cela compile et que ca marche.
Pour ma part, je ai juste besoin de la COM en modbus TCP, pas des interfaces en Jframe.
D'après ce que j'ai compris, on n'a pas forcement besoin des sources Java, je peux intégrer directement les Jar dans mon projet ? J'ai mis en PJ, mes sources du projet Java Lushproject (src JAVA LUSHPROJECT.zip) que je compile donc sous eclipse (utilisation de GWT).
C'est très important pour moi, car si j'arrive, et il faut que j'y arrive, à faire des coms modbus tcp, je pourrais interfacer avec des automates, et des applis que je développe sous Unity3D.
Je ne sais pas si c'est plus clair, ne pas hésiter à me solliciter car ce projet me tient à coeur !!! :D
ENCORE merci de l'aide !!! Seul je ne m'en sortirais pas !!!
Cordialement,
Franck VIARD (franck.viard@ac-dijon.fr)
------------------------- RAJOUT à mon message !!! :D
Je viens de faire des essais à partir d'un bout de code Java (https://paginas.fe.up.pt/~pfs/recurs...s/sources.html) que j'ai adapté et que je compile avec javac.
Ca marche, bon je dois faire mes trames modbus TCP à la main pour le moment, mais j'ai les mêmes trames qu'avec Easymodbus et je modifie bien les valeurs du serveur.
Le problème, c'est que j'essaye d'intégrer cela dans Lushproject sous eclipse et ca me plante à la compil !!!! mais j'avance, donc ....
Si vous avez une idée et/ou une solution, je suis preneur et je serai le roi du pétrole :ptdr: , même s'il faut que je reconstruise toutes les trames modbus tcp.
En tout cas, je sais maintenant que c'est possible et que ca marche !!!!
Code:
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| import java.io.* ;
import java.net.* ;
import java.util.*;
public class test3 {
public static void main(String argv[]) {
try {
String ip_adrs = "127.0.0.1";
// set up socket
Socket es = new Socket(ip_adrs,502);
OutputStream os= es.getOutputStream();
FilterInputStream is = new BufferedInputStream(es.getInputStream());
byte obuf[] = new byte[261];
byte ibuf[] = new byte[261];
int c = 0;
int i;
// READ COIL Adr : 0 Quantify : 1 -> Req & Rep : TRAMES Ok avec easymodbus
obuf[0] = 0x00;
obuf[1] = 0x01;
obuf[2] = 0x00;
obuf[3] = 0x00;
obuf[4] = 0x00;
obuf[5] = 0x06;
obuf[6] = 0x01;
// Function Code
obuf[7] = 0x01;
// Start ADr
obuf[8] = 0x00;
obuf[9] = 0x00;
// Quantité
obuf[10] = 0x00;
obuf[11] = 0x02;
/* WRITE COIL Adr : 0 Value : 1 -> Req & Rep : TRAMES Ok avec easymodbus
obuf[0] = 0x00;
obuf[1] = 0x01;
obuf[2] = 0x00;
obuf[3] = 0x00;
obuf[4] = 0x00;
obuf[5] = 0x06;
obuf[6] = 0x01;
obuf[7] = 0x05;
obuf[8] = 0x00;
obuf[9] = 0x00;
obuf[10] = 0x00;
obuf[11] = 0x01;
*/
System.out.println("Request : ");
for (int ind=0; ind < 12; ind++)
System.out.format("0x%x ", obuf[ind]) ;
System.out.println(" ");
System.out.println("Attente Reponse .... ");
// send request
os.write(obuf, 0, 12);
// read response
i = is.read(ibuf, 0, 261);
System.out.println("Taille Rep : "+i );
for (int ind=0; ind < i; ind++)
System.out.format("0x%x ", ibuf[ind]);
// close down
es.close();
} catch (Exception e) {
System.out.println("exception :"+e);
}
}
} |