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/CAM%2Bj4qumvtuhzjkxHtnjo59Yb7-tmQcXLYecsSsM0ybLRm5mPg%40mail.gmail.com.

Reply via email to