SOLVED - Breaking HSERIN into separate parts


+ Reply to Thread
Results 1 to 12 of 12

Hybrid View

  1. #1
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    3,154

    Default SOLVED - Breaking HSERIN into separate parts

    SOLVED in post #6:

    https://www.picbasic.co.uk/forum/sho...164#post156164

    ----------------------------------------------------------------------------

    USART

    Is it "safe" to send HSEROUT header, data,

    then receive:

    - HSERIN header
    (depending on header, use proper data format)
    - HSERIN data

    Or should I send Header and Data on 2 separate transmissions?

    Objective:

    I'm looking for a safe and simple way to transfer data of varying lengths.

    Header is a prefix that identifies the data layout.
    Last edited by Demon; - 19th September 2024 at 01:37.
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

  2. #2
    Join Date
    Sep 2009
    Posts
    755


    Did you find this post helpful? Yes | No

    Default Re: Breaking HSERIN into separate parts

    I used something like this
    On transmis side
    HSEROUT "DataStart:",Len, str data\Len, chksum
    on receive side
    HSERIN wait("DataStart:"), Len, str data\Len, chksum

  3. #3
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    3,154


    Did you find this post helpful? Yes | No

    Default Re: Breaking HSERIN into separate parts

    Quote Originally Posted by pedja089 View Post
    I used something like this
    On transmis side
    HSEROUT "DataStart:",Len, str data\Len, chksum
    on receive side
    HSERIN wait("DataStart:"), Len, str data\Len, chksum
    Interesting. Do you have a sample code of how you process the string array at reception?

    I had been looking at HSEROUT in the manual, but I should have been looking at HSERIN; that has more options.
    Last edited by Demon; - 18th September 2024 at 02:39.
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

  4. #4
    Join Date
    Sep 2009
    Posts
    755


    Did you find this post helpful? Yes | No

    Default Re: Breaking HSERIN into separate parts

    I do not have it right now.
    String is just array. You can fill each byte separatly.

  5. #5
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    3,154


    Did you find this post helpful? Yes | No

    Default Re: Breaking HSERIN into separate parts

    My dilemma is having multiple record layouts, and having the receiving PIC figure out which format to use.

    Using an array long enough to fit the largest transmission seems like a waste to me. My messages will range from sending a single value, to the entire set (possibly 30 values).

    One alternative is to blindly use the longest possible array on reception, even if I only send one value. I have no clue if that opens up a can of worms.

    I see that you can add a LENGTH parameter, maybe that can be used (got some testing to do).
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

  6. #6
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    3,154


    Did you find this post helpful? Yes | No

    Default Re: Breaking HSERIN into separate parts

    I think I figured out what's written in plain English right in my face:

    STR ArrayVar\n{\c}
    Receive string of n characters optionally ended in character c

    It looks like I can:

    - define the array at the longest possible length,
    - stop reception on character c,


    This way I can embed a Data Layout Number at the start of the message, and use that to branch to code to treat the array properly.

    I understand quickly, you just have to be patient and explain it to me a whole bunch of times.
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

Similar Threads

  1. Replies: 3
    Last Post: - 14th October 2016, 22:07
  2. Replies: 3
    Last Post: - 22nd June 2015, 16:15
  3. Breaking out of for loops
    By Kamikaze47 in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 17th March 2008, 00:49
  4. Replies: 5
    Last Post: - 28th June 2006, 21:32
  5. Breaking through pages in PIC16 Series
    By crematory in forum mel PIC BASIC Pro
    Replies: 12
    Last Post: - 1st August 2005, 13:49

Members who have read this thread : 10

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts