123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- function HM_TC_dissector(buffer, pinfo, subtree, TC_TM_PROTOCOL, offset)
- local f_sub_mod_id = ProtoField.uint8("TC_TM_PROTOCOL.sub_mod_id", "SUB MODULE ID", base.DEC)
- local f_Queue_id = ProtoField.uint8("TC_TM_PROTOCOL.Queue_id", "QUEUE ID", base.DEC)
- local f_priority = ProtoField.uint8("TC_TM_PROTOCOL.priority", "PRIORITY", base.DEC)
- local f_opt_sel_sin_mul_que = ProtoField.uint8("TC_TM_PROTOCOL.opt_sel_sin_mul_que", "Option To Select Single Or Multiple Queue", base.DEC)
- -- Add the fields to the protocol
- TC_TM_PROTOCOL.fields = { f_sub_mod_id, f_Queue_id, f_priority, f_opt_sel_sin_mul_que }
- --local info_display
- subtree1 = subtree:add(TC_TM_PROTOCOL, buffer(), "HEALTH_METRIC_DATA")
-
- --dissect submodule_id
- local data1 = buffer(offset,1):le_uint()
- subtree1:add(f_sub_mod_id , data1)
- offset = offset + 1
-
- --dissect queue_id
- local data2 = buffer(offset,1):le_uint()
- subtree1:add(f_Queue_id, data2)
- offset = offset + 1
-
- --dissect f_priority
- local data3 = buffer(offset,1):le_uint()
- subtree1:add(f_priority, data3)
- offset = offset + 1
- --dissect option to select_single or multiple queue
- local data4 = buffer(offset,1):le_uint()
- subtree1:add(f_opt_sel_sin_mul_que, data4)
-
- --info_display= {data1} --- for info display in wireshark
- --pinfo.cols.info ="sub_mod_id" ..info_display[1]
-
- return data1
- end
- function HM_TM_dissector(buffer, pinfo, subtree, TC_TM_PROTOCOL, offset, len)
- local f_sub_mod_id = ProtoField.uint8("TC_TM_PROTOCOL.sub_mod_id", "SUB MODULE ID", base.DEC)
- local f_Queue_id = ProtoField.uint8("TC_TM_PROTOCOL.Queue_id", "QUEUE ID", base.DEC)
- local f_num_of_instance = ProtoField.uint16("TC_TM_PROTOCOL.num_of_instance", "Number of Instance", base.DEC)
- local f_Health_Data = ProtoField.uint8("TC_TM_PROTOCOL.Health_Data", "Health Data", base.DEC)
- -- Add the fields to the protocol
- TC_TM_PROTOCOL.fields = { f_sub_mod_id, f_Queue_id, f_num_of_instance, f_Health_Data }
- --local info_display
- local subtree1 = subtree:add(TC_TM_PROTOCOL, buffer(), "HEALTH_METRIC_DATA")
-
- --dissect submodule_id
- local submodule_id = buffer(offset,1):le_uint()
- subtree1:add(f_sub_mod_id , submodule_id)
- offset = offset + 1
-
- --dissect queue_id
- local queue_id = buffer(offset,1):le_uint()
- subtree1:add(f_Queue_id, queue_id)
- offset = offset + 1
-
- --dissect f_num_of_instance
- local num_of_instance = buffer(offset,2):le_uint()
- subtree1:add(f_num_of_instance, num_of_instance)
- offset = offset + 2
-
- --dissect Health_Data
- len = len - 4
- if submodule_id == 0 then
- require("eps_dissector")
- dissect_power_system_data(buffer, pinfo, subtree, TC_TM_PROTOCOL, offset, tm_len, num_of_instance)
- elseif submodule_id == 1 then
- require("adcs_dissector")
- adcs_dissector(buffer, pinfo, subtree, TC_TM_PROTOCOL, offset, num_of_instance, queue_id)
- elseif submodule_id == 3 then
- require("uhf_dissector")
- UHF_DISSECTOR(buffer, pinfo, subtree, TC_TM_PROTOCOL, offset, tm_len, num_of_instance)
- elseif submodule_id == 4 then
- require("sensor_dissector")
- sensor_dissector(buffer, pinfo, subtree, TC_TM_PROTOCOL, offset, num_of_instance, queue_id)
- elseif submodule_id == 5 then
- require("obc_dissector")
- obc_dissector(buffer, pinfo, subtree, TC_TM_PROTOCOL, offset, num_of_instance)
- elseif submodule_id == 2 then
- require("sband_dissector")
- sband_dissectors(buffer, pinfo, subtree, TC_TM_PROTOCOL, offset, num_of_instance)
- elseif submodule_id == 6 then
- require("error_handler_dissector")
- error_handler_dissectors(buffer, pinfo, subtree, TC_TM_PROTOCOL, offset, num_of_instance)
- else
-
- for i = 0, len - 1 do
- local data4 = buffer(offset,1):le_uint()
- subtree1:add(f_Health_Data, data4)
- offset = offset + 1
- end
- end
-
- local array = {submodule_id, queue_id, num_of_instance}
-
- return array
- end
|