• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 3741
  • Last Modified:

What is CTS/RTS - DTR/DSR and how do I use it in java <--> gsm modem

I think the title is quite obvious :)
What is CTS/RTS - DTR/DSR and how do I use it in java <--> gsm modem
1 Solution
Once you understand the above links remains your job of getting it work with Java.
Which means you have to Open a COM port using Java libraries (javax.comm) as below.


Now write the required AT command into this COM port and there you go.

They are handshake lines.

CTS is Clear To Send, and indicates that a modem is ready to receive data.
RTS is Request to Send, normally set by a controller (PC) and request to send data.
DTR is Data Terminal Ready, asserted by the controller to indicate (normally) that a port is open and ready.
DSR is Data Set Ready, sometimes used by a modem (or sometimes CD - Carrier Detect) to indicate that the modem is on-line.


We Need Your Input!

WatchGuard is currently running a beta program for our new macOS Host Sensor for our Threat Detection and Response service. We're looking for more macOS users to help provide insight and feedback to help us make the product even better. Please sign up for our beta program today!

renwickAuthor Commented:
Thx for the comment guys, so, can I (programatically from java) control the RTS signal? Or it's just a simple interface which not every device (an itegno gsm modem for example) will support this RTS flag?
I've been dealing with java <--> gsm modem and so far I can't figure them out.
RTS, CTS yes or no? If you would like to send SMS only, then you can switch of the hardware flow control. Much more important is to change to the enhanced Error messages and not to send an AT command, before you have got the "OK" or other feeback on the serial link.
What kind of communication you do with your GSM modem?
SMS, CSD, voice calls or GPRS?
renwickAuthor Commented:
Well, I'm using a gsm modem to send & receive sms over GSM network. I'm using a (NMI) New Message Indication method of 3,2,0,1 (AT+CNMI=3,2,0,1) which requires me to synchronize  the reading and sending thread. Here is what I've done: turn on the hardware flow control for input/output, I don't use RTS/CTS mechanism (I don't call setRTS method when I try to send data to gsm modem), and synchronizing my own thread. The problem is sometimes, strange behaviour occurs. (actually I did post another more technical question here: http://www.experts-exchange.com/Programming/Wireless_Programming/GSM/Q_20958465.html)

and I was wondering whether I can come up with another approach for that NMI method (like CTS/RTS).
renwickAuthor Commented:
Can I split points? I would like to give points also to meff
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

SMB Security Just Got a Layer Stronger

WatchGuard acquires Percipient Networks to extend protection to the DNS layer, further increasing the value of Total Security Suite.  Learn more about what this means for you and how you can improve your security with WatchGuard today!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now