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.
