-- Your function definition begins here function sband_dissectors(buffer, pinfo, tree, TC_TM_PROTOCOL, offset, instance) -- Define ProtoFields for s_sband_cmn_tm local f_timestamp2 = ProtoField.uint64("TC_TM_PROTOCOL.timestamp2", "Timestamp", base.DEC) local f_temp_mcu = ProtoField.uint32("TC_TM_PROTOCOL.temp_mcu", "Temp MCU", base.DEC) local f_temp_fpga = ProtoField.uint32("TC_TM_PROTOCOL.temp_fpga", "Temp FPGA", base.DEC) local f_temp_xcvr = ProtoField.uint32("TC_TM_PROTOCOL.temp_xcvr", "Temp XCVR", base.DEC) local f_volt_vint = ProtoField.double("TC_TM_PROTOCOL.volt_vint", "Volt Vint", base.DEC) local f_volt_vaux = ProtoField.double("TC_TM_PROTOCOL.volt_vaux", "Volt Vaux", base.DEC) local f_volt_vbram = ProtoField.double("TC_TM_PROTOCOL.volt_vbram", "Volt Vbram", base.DEC) local f_volt_vpint = ProtoField.double("TC_TM_PROTOCOL.volt_vpint", "Volt Vpint", base.DEC) local f_volt_vpaux = ProtoField.double("TC_TM_PROTOCOL.volt_vpaux", "Volt Vpaux", base.DEC) local f_volt_vpdro = ProtoField.double("TC_TM_PROTOCOL.volt_vpdro", "Volt Vpdro", base.DEC) --local f_resv_chnl = ProtoField.uint8("TC_TM_PROTOCOL.resv_cgnl", "resvchnl", base.DEC) -- Define ProtoFields for s_sband_rx_tm local f_rx_cfg_frames = ProtoField.uint32("TC_TM_PROTOCOL.rx_cfg_frames", "RX Config Frames", base.DEC) local f_rx_cfg_detected = ProtoField.uint32("TC_TM_PROTOCOL.rx_cfg_detected", "RX Config Detected", base.DEC) local f_rx_cfg_rssi = ProtoField.float("TC_TM_PROTOCOL.rx_cfg_rssi", "RX Config RSSI", base.DEC) local f_rx_avg_rssi = ProtoField.float("TC_TM_PROTOCOL.rx_avg_rssi", "RX Average RSSI", base.DEC) local f_rx_cfg_freqerr = ProtoField.int32("TC_TM_PROTOCOL.rx_cfg_freqerr", "RX Config Frequency Error", base.DEC) local f_rx_cfg_carrier_lock = ProtoField.uint32("TC_TM_PROTOCOL.rx_cfg_carrier_lock", "RX Carrier Lock", base.DEC) local f_rx_frame_lock = ProtoField.uint32("TC_TM_PROTOCOL.rx_frame_lock", "RX Frame Lock", base.DEC) local f_rx_sir_min = ProtoField.uint32("TC_TM_PROTOCOL.rx_sir_min", "RX SIR Min", base.DEC) local f_rx_sir_max = ProtoField.uint32("TC_TM_PROTOCOL.rx_sir_max", "RX SIR Max", base.DEC) local f_rx_bch_block_cnt = ProtoField.uint32("TC_TM_PROTOCOL.rx_bch_block_cnt", "RX BCH Block Count", base.DEC) local f_rx_bch_err_cnt = ProtoField.uint32("TC_TM_PROTOCOL.rx_bch_err_cnt", "RX BCH Error Count", base.DEC) -- Define ProtoFields for s_sband_tx_tm local f_tx_cfg_frames = ProtoField.uint32("TC_TM_PROTOCOL.tx_cfg_frames", "TX Config Frames", base.DEC) local f_tx_cfg_pwr_rfl = ProtoField.float("TC_TM_PROTOCOL.tx_cfg_pwr_rfl", "TX Power RFL", base.DEC) -- For the main s_sband_periodic_tm structure --local f_cmn_tm = ProtoField.bytes("TC_TM_PROTOCOL.cmn_tm", "Common Time", base.HEX) --local f_rx_tm = ProtoField.bytes("TC_TM_PROTOCOL.rx_tm", "RX Time", base.HEX) --local f_tx_tm = ProtoField.bytes("TC_TM_PROTOCOL.tx_tm", "TX Time", base.HEX) -- Add all fields to the protocol TC_TM_PROTOCOL.fields = { f_timestamp2, f_temp_mcu, f_temp_fpga, f_temp_xcvr, f_volt_vint, f_volt_vaux, f_volt_vbram, f_volt_vpint, f_volt_vpaux, f_volt_vpdro, f_rx_cfg_frames, f_rx_cfg_detected, f_rx_cfg_rssi, f_rx_avg_rssi, f_rx_cfg_freqerr, f_rx_cfg_carrier_lock, f_rx_frame_lock, f_rx_sir_min, f_rx_sir_max, f_rx_bch_block_cnt, f_rx_bch_err_cnt, f_tx_cfg_frames, f_tx_cfg_pwr_rfl } local subtree = tree:add(TC_TM_PROTOCOL, buffer(), "SBAND") -- Now the loop for iterating over instances for i = 0, instance - 1 do local subtree1 = subtree:add(TC_TM_PROTOCOL, buffer(), "Instance " ..i) -- Offset for the different structs in s_sband_periodic_tm -- Dissect the s_sband_cmn_tm structure subtree1:add(f_timestamp2, buffer(offset, 8):le_uint64()) offset = offset + 8 subtree1:add(f_temp_mcu, buffer(offset, 4):le_uint()) -- 4 bytes for int32 offset = offset + 4 subtree1:add(f_temp_fpga, buffer(offset, 4):le_uint()) -- 4 bytes for int32 offset = offset + 4 subtree1:add(f_temp_xcvr, buffer(offset, 4):le_uint()) -- 4 bytes for int32 offset = offset + 4 local data = buffer(offset, 4):le_uint() -- First 4 bytes for z_vel local data1 = buffer(offset + 4, 4):le_uint() -- Next 4 bytes for z_vel local data3 = string.unpack("d", string.pack("