Hello Vasile and Rob,

Thank you for your feedback.

@Vasile;
1 - No. It will depend on the number of SMS received by the modem. But only 
need the 2nd line of each SMS. This answers your #2.
2 - Yes. But this is still a test information received as an SMS. Later on, 
it will be different and much probably bigger in nr of chars...

@Rob
Am not sure on how to use that and copy the data from the buffer to a large 
array library.
Maybe some sample code would help.
Heres my receiving code, anyways:

   for 50 using Index loop
      fRtn = serial_hw_read(char)
      if fRtn then
         Received[Index] = char
      end if
   end loop
   --
   fRtn=FALSE
   --
   for 74 using Index loop
      if (Received[Index]=="+"
         & Received[Index+1]=="C"
         & Received[Index+2]=="M"
         & Received[Index+3]=="G"
         & Received[Index+4]=="L"
         & Received[Index+5]==":") then
         fRtn=TRUE
      end if
   end loop

Thank you guys for your help.
Cheers,

FS
On Monday, December 12, 2022 at 6:48:31 PM UTC [email protected] wrote:

> Hi Filipe,
>
> You should use the large array library and copy the data from the buffer 
> (which can then be smaller) to the large array. 
>
> Met vriendelijke groet,
> Rob Jansen 
> ------------------------------
> *From:* [email protected] <[email protected]> on behalf of 
> vsurducan <[email protected]>
> *Sent:* Monday, December 12, 2022 7:37:34 PM
> *To:* [email protected] <[email protected]>
>
> *Subject:* Re: [jallib] Re: Variable Table Append
> 1.The length of your message is always the same?
> 2. From the whole message, receiving the part GA6...2.757V would be 
> sufficient?
>
>
>
> On Mon 12 Dec 2022, 7:59 PM flyway38 <[email protected] wrote:
>
> Hey all,
>
> Am back on this subject.
> My project had some halts but is back on track.
>
> Right now am back to SMS receiving subject.
> Have already reached the conclusion that I can receive more parts of 
> message if make RX buffer bigger...
>
> Here's the relevant part of serial_hw_int_cts LIB;
> if (defined(SERIAL_RCVBUFSIZE) == FALSE) then
>    const   SERIAL_RCVBUFSIZE  = 80  -- 64 is the default size of receive 
> buffer
> end if
>
> Problem is 80 is the maximum I can use in this code (PIC16F19176).
> How can I get more of the received data?
>
> Here's the data I should read:
> +CMGL: 1,"REC READ","+351000000000",,"2022/12/08,17:10:12+00"
> GA6-B MODEM SMS TEST, ADC= 2.757V
> +CMGL: 2,"REC READ","+351....
>
> The green part is what I can get using RX buffer at 80.
> My goal is to get the full line:
> GA6-B MODEM SMS TEST, ADC= 2.757V 
>
> Any help will be appreciated.
> Thank you very much.
>
> Kind regards,
> Filipe Santos.
> On Sunday, December 4, 2022 at 3:53:30 PM UTC [email protected] wrote:
>
> Hi Vasile,
>
> If you want to use the serial library with interrupt just check the sample 
> files that are created for it. I have used the library quite often without 
> any problems.
>
> Kind regards,
>
> Roib
>
> ------------------------------
> *Van:* [email protected] <[email protected]> namens flyway38 <
> [email protected]>
> *Verzonden:* zondag 4 december 2022 15:59
>
> *Aan:* jallib <[email protected]>
> *Onderwerp:* Re: [jallib] Re: Variable Table Append
> Hey Vasile and Rob,
>
> @Vasile,
> Yes, +CMGL appear in my Received[50] buffer. But not the "Test" and "OK" 
> parts... yet.
> Am currently working on that. Will check that" 
> _serial_receive_interrupt_handler" to see if am able to use it (if not too 
> complex... some usage samples would be nice).
> Thank you for your input.
>
> @Rob, 
> Have checked those LIBs, but too complex for me.
> Don't have much time to interpret all that code and adapt to my code.
> Any samples of usage easier to adapt?
> Thank you anyways.
>
> Cheers,
> Filipe Santos.
> On Sunday, December 4, 2022 at 8:24:49 AM UTC [email protected] wrote:
>
> Hi Filipe,
>
> Nice that this works. 
>
> As said earllier you can have a look at the bluetooth_hc05.jal library. 
> Some procedures and functions there perform the actions you are tryiing to 
> achieve.
>
> Kind regards,
>
> Rob
>
>
> ------------------------------
> *Van:* [email protected] <[email protected]> namens flyway38 <
> [email protected]>
> *Verzonden:* zaterdag 3 december 2022 21:00
>
> *Aan:* jallib <[email protected]>
> *Onderwerp:* Re: [jallib] Re: Variable Table Append
> Hi Rob,
>
> As said, It would be enough to get a small part; "+CMGL" then it will be 
> another battle to reach the message part of the SMS.
> For now am finally successfully, again using "brute force" on reading 
> serial port:
>
> var byte Received[50]
>
> function CheckComms_CMGL() return bit is
>    Index = 0
>    --
>    while Index < 50 loop
>       fReturn = serial_hw_read(char)
>       Received[Index] = char
>       Index=Index+1
>    end loop
>    --
>    fRtn=FALSE
>    --
>    for 45 using Index loop
>       if (Received[Index]=="+"
>          & Received[Index+1]=="C"
>          & Received[Index+2]=="M"
>          & Received[Index+3]=="G"
>          & Received[Index+4]=="L") then
>          fRtn=TRUE
>       end if
>    end loop
>    return fRtn
> end function
>
> Anyways, am starting to get the hang of this "battle"
> I think that will manage to get the message ("Test") part of this SMS 
> answer from the modem.
> If not, will back here... :D
>
> Thank you all for the help.
> You guys are great.
> Cheers,
>
> Filipe Santos.
>
>
>
> On Saturday, December 3, 2022 at 7:51:27 PM UTC [email protected] wrote:
>
> Hi Filipe ,
>
> I think the message is too long before OK is received since the whole 
> message should be stored. For a PIC16 the buffer can at most be 80 bytes. 
> You can use the large array library if you need a larger buffer.
>
> Met vriendelijke groet,
> Rob Jansen 
> ------------------------------
> *From:* [email protected] <[email protected]> on behalf of 
> flyway38 <[email protected]>
> *Sent:* Saturday, December 3, 2022 7:58:35 PM
> *To:* jallib <[email protected]>
> *Subject:* Re: [jallib] Re: Variable Table Append 
>  
> 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
>  
> <https://groups.google.com/d/msgid/jallib/3770592d-6043-4477-97b8-979aa0cb8ec4n%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/ec83958f-0310-422c-9af7-bc8daebc7cedn%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/jallib/ec83958f-0310-422c-9af7-bc8daebc7cedn%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/e7800334-4d2b-4475-9439-a52a3a53c5a6n%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/jallib/e7800334-4d2b-4475-9439-a52a3a53c5a6n%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/329b882c-7df2-4507-8f4a-cde2b95000c4n%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/jallib/329b882c-7df2-4507-8f4a-cde2b95000c4n%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%2Bj4quyOrLijKuZJvkGt8agmWYwRbad8iehBL_aDrx6jYcsbQ%40mail.gmail.com
>  
> <https://groups.google.com/d/msgid/jallib/CAM%2Bj4quyOrLijKuZJvkGt8agmWYwRbad8iehBL_aDrx6jYcsbQ%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/addeac94-0a13-45d3-a0fb-768e263c6ed0n%40googlegroups.com.

Reply via email to