Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

not sending sms #2

Open
elvindeguzman opened this issue Mar 26, 2021 · 30 comments
Open

not sending sms #2

elvindeguzman opened this issue Mar 26, 2021 · 30 comments
Assignees

Comments

@elvindeguzman
Copy link

Hi,

was trying to use your code sending the sms is not throwing any error also the reading but seems to be not working is there a way you can give me sample code

@souhaib100
Copy link
Owner

Hi,
I will try send you a working simple as soon as possible.

@elvindeguzman
Copy link
Author

Thanks appreciate it

@elvindeguzman
Copy link
Author

hey sorry bother you again, i'm really stuck at the reading part and confused, hoping you could help me.

@souhaib100
Copy link
Owner

Hi,
I almost done, I will update the library soon.
Sorry about that.

@souhaib100 souhaib100 self-assigned this Mar 29, 2021
@souhaib100
Copy link
Owner

@elvindeguzman
I update the code with fixes and added an example class.
Try it please.
Thanks

@elvindeguzman
Copy link
Author

appreciate it so much!

@elvindeguzman
Copy link
Author

its sending the sms but I'm still having issue reading the sms

@souhaib100
Copy link
Owner

Could you please share the output

@elvindeguzman
Copy link
Author

elvindeguzman commented Mar 29, 2021

looks like the event data registering is not getting the response like the +CMGL

I tried changing the listener to this:

            @Override
            public int getListeningEvents() {
                return SerialPort.LISTENING_EVENT_DATA_RECEIVED;
            }
            
            
            @Override
            public void serialEvent(SerialPortEvent event) {
            	result="";
                byte[] msg = event.getReceivedData();
                serialPort.readBytes(msg, msg.length);
                StringBuffer sb = new StringBuffer();
                for (int i = 0; i < msg.length; i++) {
                	char charVal = (char)msg[i];
                	System.out.println("msg["+i+"] : "+charVal);
                	sb.append(charVal);
				}
                logger.info("serial event = "+sb.toString());
                
                result = sb.toString();
            }

The only issue i'm having is sometimes the strings get cut for example when executing the command AT+CMGR=1 it should give me something like +CMGR: "REC UNREAD","+9999999999",,"21/03/30,04:39:39+32"
;1000000249;test;xxxxxx,5009;TCP;00002; but i'm getting some like the cut version of that string for example TCP:0002

@souhaib100
Copy link
Owner

I think it's modem model related

@elvindeguzman
Copy link
Author

I'm using wavecom modem

@souhaib100
Copy link
Owner

Could you debug the example and see the content of strs?

1 similar comment
@souhaib100
Copy link
Owner

Could you debug the example and see the content of strs?

@elvindeguzman
Copy link
Author

printed the result from the event listener here:

COM4
result from listener::AT
result from listener::E1

result from listener::

result from listener::

result from listener::OK

OK

result from listener::A
result from listener::T
result from listener::+CSCS="GSM"
result from listener::

result from listener::

result from listener::
OK

OK

result from listener::A
result from listener::T
result from listener::+CMGF=1

result from listener::

result from listener::

result from listener::OK

OK

result from listener::A
result from listener::T
result from listener::+CMGS="+639
result from listener::985851
result from listener::509"

result from listener::

result from listener::>

result from listener::W
result from listener::W
result from listener::W

result from listener::

result from listener::>
result from listener::

result from listener::�
result from listener::

result from listener::

result from listener::

result from listener::+CMGS: 104

result from listener::
OK

OK

OK

result from listener::A
result from listener::TE
result from listener::0

result from listener::

result from listener::

result from listener::OK

OK

result from listener::

result from listener::
OK
result from listener::

result from listener::

result from listener::

result from listener::OK

OK

result from listener::

result from listener::
E
result from listener::RROR

RROR

result from listener::

result from listener::

result from listener::+
result from listener::C
result from listener::MGL: 1,"REC
result from listener::UNREAD","+63
result from listener::9985851509"
result from listener::,,"21/03/30,
result from listener::04:49:23+32
result from listener::"
;10000002
result from listener::49;ASAKA123
result from listener::;tracker.as
result from listener::aka.ph,5009;
result from listener::TCP;00002;

result from listener::
OK

OK

result from listener::

result from listener::

result from listener::+CPMS: 1,35,
result from listener::1,35,1,35

result from listener::
OK

OK

result from listener::

result from listener::

result from listener::+
result from listener::CMGL: 1,"RE
result from listener::C READ","+6
result from listener::39985851509"
result from listener::,,"21/03/30,
result from listener::04:49:23+3
result from listener::2"
;1000000
result from listener::249;ASAKA12
result from listener::3;tracker.asa
result from listener::ka.ph,5009;
result from listener::TCP;00002;

result from listener::

OK

OK

result from listener::

result from listener::
E
result from listener::RROR

RROR

result from listener::

result from listener::

result from listener::OK

OK

@elvindeguzman
Copy link
Author

I'm not sure why the buffer is getting cut

@elvindeguzman
Copy link
Author

Looks like using byte delimited listener is what I need. I created something like this:

final class MessageListener implements SerialPortMessageListener
{
@OverRide
public int getListeningEvents() { return SerialPort.LISTENING_EVENT_DATA_RECEIVED; }

@OverRide
public byte[] getMessageDelimiter() { return new byte[] { (byte)0x0D0A }; }

@OverRide
public boolean delimiterIndicatesEndOfMessage() { return true; }

@OverRide
public void serialEvent(SerialPortEvent event)
{
StringBuffer sb = new StringBuffer();
byte[] delimitedMessage = event.getReceivedData();
for (int i = 0; i < delimitedMessage.length; i++) {
char charVal = (char)delimitedMessage[i];
sb.append(charVal);
}
System.out.println("event value is "+sb.toString());
}
}

@souhaib100
Copy link
Owner

Yes it may help

@souhaib100
Copy link
Owner

It may be also something related to the baudrate.

@souhaib100
Copy link
Owner

Try execute this
AT+IPR=?

@elvindeguzman
Copy link
Author

+IPR: (0,2400,4800,9600,19200,38400,57600),(300,600,1200,115200)
I'm using 115200 baud rate

@souhaib100
Copy link
Owner

The default for the serial library is 9600

@souhaib100
Copy link
Owner

Change it, and try again

@elvindeguzman
Copy link
Author

yep i change it and was using the 115200 and same issue

@souhaib100
Copy link
Owner

Try this
AT+IPR?

@elvindeguzman
Copy link
Author

+IPR: 115200

@souhaib100
Copy link
Owner

Can you try with serial communication application like putty?

@elvindeguzman
Copy link
Author

yep i'm using that and seems to be working properly on putty, no issue there, i'm also using 115200 rate when connecting using putty

@souhaib100
Copy link
Owner

Try reduce the baudrate speed

@elvindeguzman
Copy link
Author

tried lower baudrate speed still no luck :(

@ngethe
Copy link

ngethe commented Sep 16, 2023

were you able to send ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants