function mav_inst_msg,wbuffer,time,pkt=pkt
if keyword_set(pkt) then begin
wbuffer = pkt.data
if size(/type,wbuffer) eq 1 then begin
wbuffer = uint(wbuffer,0,n_elements(wbuffer)/2)
byteorder,wbuffer,/swap_if_little_endian
endif
time = pkt.time
endif
hdr = wbuffer[0]
id = ishft(hdr,-10)
length = (hdr and '03ff'x) + 1
valid = n_elements(wbuffer) ge length+1
if valid eq 0 then data=0 else data = wbuffer[1:length]
imsg = {time:time,valid:valid, id:id, length:length, hdr:hdr, data:data}
return,imsg
end
pro mav_inst_msg_handler,pkt,status=status
msg = mav_inst_msg(pkt=pkt)
if (msg.valid eq 0) then begin
tstr='Invalid MISG Message'
dprint,dlevel=3,tstr
store_data,'CMNBLK_ERROR',pkt.time,tstr,/append,dlim={tplot_routine:'strplot'}
endif
mav_sta_msg_handler,msg
end