This week's giveaway is in the EJB and other Java EE Technologies forum. We're giving away four copies of EJB 3 in Action and have Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan on-line! See this thread for details.
I'm creating this thread in order to get some details about the applications i'm currently coding.
I have to create a system based on TINI module which acqauires datas from a satellite sensor, gets it y serial comm, to the TINI, which sends it over Ethernet to a computer.
At the moment, I can read by RS232, send over Ethernet. So overally it works fine. However I still have to follow some requirements :
-I have to read and send every seconds.
-Any datas that has not changed since the previous one must not be sent.
here is the code :
I commented the code as much as I can unfortunatly it's in french.
I meet the following problems , I don't see how to time this operation, I thought it was thanks to the setEnableReceiveTimeOut function but it doesn't seem so.
I have to give a clear defintion of my thread management, is the volatile attribute I used for this running variable correct?
Anyway, do you really need multiple threads for something that should only happen once a second? If not, you could probably use java.lang.Timer to handle the scheduling. If you really need multiple thread, then java.util.concurrent.ScheduledThreadPoolExecutor is probably more appropriate. I've never had to that class myself though.
In any case, it doesn't seem that the actual I/O is causing you any trouble. If you want, I can move this over to our Threads forum, where you might get some better feedback on the concurrency issues.
Joined: Mar 28, 2011
Hi and thanks for your answer, I will try to use those 2 libraries you just gave me, however I'm not sure if my TINI board can handle those. Yes I maybe forgot to mention that the application must be uploaded on the card. So this is the JVM embedded on the card that runs everything.
About the thread management, I will move it into the right section asap.