If this is what you're going for:
[STX][status][type][length][user data...][checksum][ETX]
then this may work for HSERIN without the macro's...
For the HSEROUT,Code:HSERIN [Wait [ $02 ] , status , type , length ] 'gets everything up to 'length' HSERIN [ array\length , chksum ] 'gets 'length' characters, grabs the checksum HSERIN [ Wait [ $03 ] ] 'waits for ETX, if this doesn't time out, then you got a valid array of data
Bookmarks