gethy
Messages postés4Date d'inscriptionjeudi 15 juin 2006StatutMembreDernière intervention16 octobre 2007
-
16 oct. 2007 à 15:00
gethy
Messages postés4Date d'inscriptionjeudi 15 juin 2006StatutMembreDernière intervention16 octobre 2007
-
16 oct. 2007 à 16:38
Salut a tous.
Voila, j'ai un petit soucis.
J'ai creer un programme en java qui lit ce qui se passe sur un port serie.
Sur ce port est connecté un flasheur, qui envoie les informations a certains moments de la journee.
Ces informations sont recuelli dans un fichier txt qui est envoyé soit au bout de 30 flashages, soit au bout de 30 minutes d'inactivité.
Sauf que voila, J'ai le programme qui s'arrete au bout d'1h30/2h malgres la boucle infini que j'ai mis.
Est ce normal?
The_Guardian
Messages postés317Date d'inscriptionvendredi 25 mai 2007StatutMembreDernière intervention19 octobre 20071 16 oct. 2007 à 15:22
Bonjour,
C'est pas normal qu'un programme qui est censé tourner à l'infini s'arrête au bout d'1h30/2h
_ maintenant, il y a certainement une erreur dans la programmation (ou un autre phénomène)
_ pourrais-tu coller le bout de ton code avec la boucle infini et la lecture ?
gethy
Messages postés4Date d'inscriptionjeudi 15 juin 2006StatutMembreDernière intervention16 octobre 2007 16 oct. 2007 à 16:38
Voila mon code :
debutducode------------------------------------------------------------------------------------------
while(true)
{
int i=0;
String NomFile=com+"-"+dat+hour+min+sec+milsec;
System.out.println("Nouveau fichier txt créé : "+NomFile);
FileWriter txt = null;
String titretxt="C:/flasheur/txt/"+NomFile+".txt";
txt = new FileWriter(titretxt);
PrintWriter pretxt = new PrintWriter(txt);
pretxt.flush();
//Attente de 30 min (le temps est en ms)
serialPort.enableReceiveTimeout(1800000);
System.out.println(dat+hour+min+sec+milsec);
try
{
do
{
//pour lire avec des streams:
in=new BufferedReader(new InputStreamReader(serialPort.getInputStream()));
int amount;
String c="";
do
{
amount = in.read();
c+=DecToChar(amount);
}while(DecToChar(amount)!="ETX");
System.out.println(c);
if(c.length()==38)
{
String barcode=c.substring(19, 27);
pretxt.println("BARCODE="+barcode+";DATETIME="+dat+hour2+min2+sec2+milsec2);
pretxt.flush();
i++;
}
if(i==30)
{
ok=false;
}
if(c.compareTo("STXCLOTURE_HILLSETX")==0)
{
System.out.println("CLOTURE DE LA JOURNEE");
ok=false;
}
}while(ok);
pretxt.close();
System.out.println("Nouveau fichier BOUCHON créé : "+NomFile);
FileWriter bch = null;
String titrebch="C:/flasheur/txt/"+NomFile+".bouchon";
bch = new FileWriter(titrebch);
PrintWriter prebch = new PrintWriter(bch);
prebch.flush();
prebch.close();
envoieFTP(NomFile);
Properties sys = System.getProperties();
String os = sys.getProperty("os.name");
Runtime r = Runtime.getRuntime();
try
{
r.exec("C:/flasheur/start.bat");
}
catch (IOException ex)
{
ex.printStackTrace();
}
in.close();
}
catch(Exception f)
{
System.out.println("----Nouveau fichier BOUCHON créé : "+NomFile);
FileWriter bch = null;
String titrebch="C:/flasheur/txt/"+NomFile+".bouchon";
bch = new FileWriter(titrebch);
PrintWriter prebch = new PrintWriter(bch);
prebch.flush();
prebch.close();
envoieFTP(NomFile);
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
finducode-----------------------------------------------------------------------------------------------
Une petite question :
J'ai fais en sorte que le programme se lance au lancement d'une session windows grace à un .bat.
Ma question est : Apres verrouillage de la session, quand on se reconnecte a celle-ci, l'invite de cimmande est toujours presente mais le programme cess-t-il de fonctionner ?