Hi Vasile,

I want to read the answers from modem just like Hyperterminal or Termite 
does.
As example:
This the AT command to question modem for new SMS received:
AT+CMGL="ALL"
In my case I know theres a SMS in memory, so modem answers to that command:
+CMGL: 1,"REC READ","+351000MyNrHere000",,"2022/12/03,18:10:22+00"
Test

OK
Can see all this in Hyperterminal happening, but PIC doesn't get that 
answer from modem...
I need to read this answer from modem, and then extract the message "Test" 
part of modem answer
It would be enough to read the "+GMGL: 1" from the modem's answer.... but 
no luck so far.
Thanks anyway for the input.

Regards,
Filipe Santos

On Saturday, December 3, 2022 at 6:41:30 PM UTC vasile wrote:

> I'm not sure if this is your case, but if you need to identify the AT 
> during a string reception, but prior to store the string in any buffer, I 
> think the library will not work as is...
>
> On Sat 3 Dec 2022, 7:23 PM flyway38 <[email protected] wrote:
>
>> The oddest thing here, is it seems only my PIC doesn't pick up the 
>> answers from the modem, except the "OK" but even these fail sometimes to 
>> get picked up by the PIC.
>> I have a derived connection from that serial port using an FTDI cable 
>> connected to my computer, and can check what is going on using the 
>> Hyperterminal App or even the Termite App and these apps can see the 
>> answers from the modem.... crazy stuff going on here...
>>
>> On Saturday, December 3, 2022 at 4:48:16 PM UTC flyway38 wrote:
>>
>>> Hi Rob,
>>>
>>> Thanks for that help.
>>> But, right now am concerned about the other acknowledge messages... "OK" 
>>> is now working good enough here.
>>> And it seems serial_hw_int_cts LIB is not making any difference.
>>> Maybe am not taking full advantages from it.
>>> Cheers,
>>>
>>> FS
>>> On Saturday, December 3, 2022 at 2:22:04 PM UTC [email protected] 
>>> wrote:
>>>
>>>> Hi Filipe,
>>>>
>>>> In the bluetooth_hc_05.jal library I made a function that reads a 
>>>> string including OK but returns only the string (without the OK). The code 
>>>> is as follows:
>>>>
>>>> -- Wait for data from the module and copy all data to the bluetooth 
>>>> receive 
>>>> -- buffer until 'OK' is found. If 'OK' is found the function returns 
>>>> TRUE.
>>>> -- The number of bytes in the receive buffer is stored in the global 
>>>> variable
>>>> -- bluetooth_hc05_bytes_received and the read pointer is reset.
>>>> -- Note that 'OK' is not stored in bluetooth_hc05_bytes_received but the
>>>> -- carriage return and line feed are. 
>>>> function _bluetooth_hc05_wait_and_get_data_ok() return bit is
>>>>
>>>>    var dword timeout = 0
>>>>    var byte index = 0
>>>>    var byte character
>>>>    var bit found_o  = FALSE
>>>>    var bit found_ok = FALSE
>>>>    
>>>>    bluetooth_hc05_bytes_received = 0
>>>>    _bluetooth_hc05_read_pointer = 0
>>>>    while (index < BLUETOOTH_HC05_RECEIVE_BUFFER_SIZE) & !found_ok &
>>>>          (timeout < _bluetooth_hc05_wait_time) loop
>>>>
>>>>       if _bluetooth_hc05_serial_read(character) then
>>>>          bluetooth_hc05_receive_buffer[index] = character
>>>>          index = index + 1
>>>>          timeout = 0
>>>>          if (character == "O") then
>>>>             found_o = TRUE
>>>>          elsif (character == "K") & found_o then
>>>>             found_ok = TRUE
>>>>             -- Bytes received is everything except for 'OK'.
>>>>             bluetooth_hc05_bytes_received = index - 2 
>>>>         else
>>>>             -- It was not 'OK', reset.
>>>>             found_o  = FALSE
>>>>             found_ok = FALSE
>>>>          end if 
>>>>       end if
>>>>
>>>>       timeout = timeout + 1
>>>>       _usec_delay(100)
>>>>    end loop
>>>>
>>>>    return found_ok
>>>>
>>>> end function
>>>>
>>>> Kind regards,
>>>>
>>>> Rob
>>>> ------------------------------
>>>> *Van:* [email protected] <[email protected]> namens 
>>>> flyway38 <[email protected]>
>>>> *Verzonden:* zaterdag 3 december 2022 15:11
>>>>
>>>> *Aan:* jallib <[email protected]>
>>>> *Onderwerp:* Re: [jallib] Re: Variable Table Append
>>>> Hi Rob,
>>>>
>>>> Thank you for that info.
>>>> The OK answer from the modem, am already getting, but using "like brute 
>>>> force" serial readings...
>>>>
>>>> function CheckComms_OK() return bit is
>>>>    timer = 0
>>>>    Received[0] = "X"
>>>>    Received[1] = "X"
>>>>    --
>>>>    while (Received[0]!="O" | Received[1]!="K") & timer < 60_000 loop
>>>>       fReturn = serial_hw_read(char)
>>>>       Received[0] = char
>>>>       fReturn = serial_hw_read(char)
>>>>       Received[1] = char
>>>>       --
>>>>       timer = timer + 1
>>>>    end loop
>>>>    -- 
>>>>    fReturn = FALSE
>>>>    --
>>>>    if (Received[0]=="O" & Received[1]=="K") then
>>>>       return TRUE
>>>>    else
>>>>       return FALSE
>>>>    end if
>>>> end function
>>>>
>>>> But other answers from the modem are still a no go.
>>>> Example: "+CMGS" from an AT+CMGS="phone nr"....
>>>> Will need this because will need to also receive SMS with this PIC.
>>>>
>>>> Will check that LIB you mentioned.
>>>> Thank you.
>>>>
>>>> Cheers,
>>>> FS
>>>>
>>>> On Saturday, December 3, 2022 at 1:43:23 PM UTC [email protected] 
>>>> wrote:
>>>>
>>>> Hi Filipe, Vasile,
>>>>
>>>> I would recommend using the serial libraries that work on an interrupt 
>>>> basis like serial_hw_int_cts.jal. Using this library with a big enough 
>>>> buffer will prevent that you miss any characters.
>>>>
>>>> I used this - using AT commands - in the libraries bluetooth_hc05.jal 
>>>> and bluetooth_hc06.jal as to be able to check if an OK was received after 
>>>> an AT command.
>>>>
>>>> Kind regards,
>>>>
>>>> Rob
>>>>
>>>>
>>>>
>>>> ------------------------------
>>>> *Van:* [email protected] <[email protected]> namens 
>>>> vsurducan <[email protected]>
>>>> *Verzonden:* zaterdag 3 december 2022 11:09
>>>>
>>>> *Aan:* [email protected] <[email protected]>
>>>> *Onderwerp:* Re: [jallib] Re: Variable Table Append
>>>> Oh, understood. Reading needs to have priority. Use interrupts 
>>>> then...or avoid using any delays in your actual code.
>>>> A sms has not an instant execution ( most of the time). So using low 
>>>> speed transmission/reception it might be a working solution.
>>>>
>>>> On Sat, Dec 3, 2022 at 11:53 AM flyway38 <[email protected]> wrote:
>>>>
>>>> Hello Vasile,
>>>>
>>>> Am not using serial lib with interrupts.
>>>> Maybe I need to use that lib.
>>>> Current problem is GSM modem seems to acknowledge (ex: "OK") faster 
>>>> than my code can read it...
>>>> A simple "AT" seems to get the "OK" faster than I can read.
>>>> And I want to get all acknowledges... to not step to next AT command 
>>>> before having sure of "OK" response from the modem.
>>>> All my AT commands to send an SMS are working ok, if no checking for 
>>>> the acknowledges... 
>>>> Big battle here under going. :D
>>>> Thank you for your input.
>>>>
>>>> Cheers,
>>>> FS
>>>>
>>>> On Saturday, December 3, 2022 at 6:18:47 AM UTC vasile wrote:
>>>>
>>>> Fellipe, I'm curious if this will work fo you. I was never able to use 
>>>> the serial library (interrupts) as is without a slip of one char in 
>>>> received characters order.  I've counted chars to solvethe problem....
>>>> Depending on your GSM transciever, some delays may be needed between 
>>>> chars and some longer delays between AT commands and chars.
>>>>
>>>> On Fri 2 Dec 2022, 9:25 PM flyway38 <[email protected] wrote:
>>>>
>>>> Hello Rob,
>>>>
>>>> Thank you very much.
>>>> This will help alot.
>>>> Cheers.
>>>>
>>>> FS
>>>>
>>>> On Friday, December 2, 2022 at 7:21:46 PM UTC [email protected] wrote:
>>>>
>>>> Hi Filipe,
>>>>
>>>> One correction. if you get a timeout then there is no string (or only a 
>>>> partial string) so you have to check if the timer has reached the timeout 
>>>> after the repeat.
>>>>
>>>> Kind regards,
>>>>
>>>> Rob
>>>>
>>>> ------------------------------
>>>> *Van:* [email protected] <[email protected]> namens Rob CJ 
>>>> <[email protected]>
>>>> *Verzonden:* vrijdag 2 december 2022 20:20
>>>> *Aan:* [email protected] <[email protected]>
>>>>
>>>> *Onderwerp:* Re: [jallib] Re: Variable Table Append
>>>> Hi Filipe,
>>>>
>>>> Some sample code. I did not test it (or compiled it) but I assume you 
>>>> get the idea.
>>>>
>>>> const word MAX_TIMEOUT = 20_000 
>>>> const byte MAX_BUFFER = 20
>>>> const byte CR = 0x0D
>>>> const byte LF = 0x0A
>>>>
>>>> var word timer = 0
>>>> var byte my_buffer[MAX_BUFFER]
>>>> var byte index = 0
>>>> var byte character = 0
>>>>
>>>> -- Read a string.
>>>> repeat
>>>>     if serial_hw_data_available() then
>>>>        character = serial_hw_data
>>>>        my_buffer[index] = character
>>>>        index = index + 1
>>>>    end if 
>>>>     timer = timer + 1
>>>>     _usec_delay(100)
>>>> until (index == MAX_BUFFER) | (character == CR) | (character == LF) | 
>>>> (timer == MAX_TIMEOUT)
>>>>
>>>> The string is then in my_buffer (including a CR or LF). 
>>>>
>>>> Kind regards,
>>>>
>>>> Rob
>>>>
>>>>
>>>> ------------------------------
>>>> *Van:* [email protected] <[email protected]> namens 
>>>> flyway38 <[email protected]>
>>>> *Verzonden:* vrijdag 2 december 2022 19:23
>>>> *Aan:* jallib <[email protected]>
>>>> *Onderwerp:* Re: [jallib] Re: Variable Table Append 
>>>>  
>>>> Hi Rob,
>>>>
>>>> Thanks for your input.
>>>> Could you post some sample code please?
>>>> I think am missing some important details...
>>>> How can I define a variable buffer?
>>>> Because this seems not work: var byte received[]=""...
>>>>
>>>> Am also struggling to read my modems relies to AT commands...
>>>> It seems my code is working correctly and after sending the AT command, 
>>>> the readings from serial port seems to point to characters from the sent 
>>>> command...
>>>> Getting crazy here while in battle with the code... :D
>>>> Thank you very much.
>>>>
>>>> Best regards,
>>>> Filipe Santos
>>>>
>>>> On Friday, December 2, 2022 at 6:06:56 PM UTC [email protected] wrote:
>>>>
>>>> Hi Filipe,
>>>>
>>>> You just read the data from a serial port, add that to your local 
>>>> variable buffer, increment an index pointer with each received character 
>>>> and read until you receive either a Carriage Return or a Line Feed (one of 
>>>> the will do). I normally also add a timeout to the read function so that 
>>>> it 
>>>> does not hang when nothing is received.
>>>>
>>>> Kind regards,
>>>>
>>>> rob
>>>>
>>>>
>>>>
>>>> ------------------------------
>>>> *Van:* [email protected] <[email protected]> namens 
>>>> flyway38 <[email protected]>
>>>> *Verzonden:* vrijdag 2 december 2022 12:38
>>>> *Aan:* jallib <[email protected]>
>>>> *Onderwerp:* [jallib] Re: Variable Table Append 
>>>>  
>>>> Am trying to mimic a "Read_String" from serial port.
>>>> Any ideas?
>>>>
>>>> Thank you.
>>>>
>>>> Regards,
>>>> FS
>>>>
>>>> On Friday, December 2, 2022 at 9:42:34 AM UTC flyway38 wrote:
>>>>
>>>> Hello all,
>>>>
>>>> Have searched for it but haven't found anything useful.
>>>> Need to know a good way of appending a variable table.
>>>> Starting from a MyVar[] = "", then just append data to it...
>>>> Also what happen to website: https://justanotherlanguage.org/ ?
>>>> Cannot connect to that website.
>>>> Thank you very much.
>>>>
>>>> Kind regards,
>>>> Filipe Santos.
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "jallib" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/jallib/2251b524-7658-42f7-970b-a6817d6709e1n%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/jallib/2251b524-7658-42f7-970b-a6817d6709e1n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "jallib" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/jallib/37733abd-20ed-4130-8aa2-03381fb3ac1an%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/jallib/37733abd-20ed-4130-8aa2-03381fb3ac1an%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "jallib" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/jallib/GVXP195MB16374C5EDB5CFD44C5580F26E6179%40GVXP195MB1637.EURP195.PROD.OUTLOOK.COM
>>>>  
>>>> <https://groups.google.com/d/msgid/jallib/GVXP195MB16374C5EDB5CFD44C5580F26E6179%40GVXP195MB1637.EURP195.PROD.OUTLOOK.COM?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "jallib" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>>
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/jallib/1af55b5d-54bb-4ea7-a2d6-21574ba3ea7an%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/jallib/1af55b5d-54bb-4ea7-a2d6-21574ba3ea7an%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "jallib" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/jallib/bfa9ccd1-54c6-47d1-9535-8272eb0cca90n%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/jallib/bfa9ccd1-54c6-47d1-9535-8272eb0cca90n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "jallib" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/jallib/CAM%2Bj4qsrRDXRbaHZi8f3zPGVVje5YzHQn1yzXzQvLBE5NxD5_w%40mail.gmail.com
>>>>  
>>>> <https://groups.google.com/d/msgid/jallib/CAM%2Bj4qsrRDXRbaHZi8f3zPGVVje5YzHQn1yzXzQvLBE5NxD5_w%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "jallib" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/jallib/6748d6c6-d1a3-4f0c-82ea-baf9410375d0n%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/jallib/6748d6c6-d1a3-4f0c-82ea-baf9410375d0n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "jallib" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>>
> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/jallib/25d2f2fd-6cd5-4cff-bb67-702f99abf6d3n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/jallib/25d2f2fd-6cd5-4cff-bb67-702f99abf6d3n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/3770592d-6043-4477-97b8-979aa0cb8ec4n%40googlegroups.com.

Reply via email to