From 7eef5953487232ad9fd3dfe722a4d0fe293748d5 Mon Sep 17 00:00:00 2001
From: Marko Mecina <marko.mecina@univie.ac.at>
Date: Sat, 16 Dec 2023 14:42:37 +0100
Subject: [PATCH] add function to extract TC(3,1) from file

---
 Ccs/ccs_function_lib.py | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/Ccs/ccs_function_lib.py b/Ccs/ccs_function_lib.py
index 71365c7..46def20 100644
--- a/Ccs/ccs_function_lib.py
+++ b/Ccs/ccs_function_lib.py
@@ -5892,6 +5892,28 @@ def dump_large_data(pool_name, starttime=0, endtime=None, outdir="", dump_all=Fa
     return filedict
 
 
+def get_hk_def_tcs(filename, sid=None, sidoff=TC_HEADER_LEN, sidbs=2):
+    """
+    Search binary pool dump for HK definitions (TC(3,1))
+
+    @param filename:
+    @param sid: Only return HK definitions with this SID if not None
+    @param sidoff:
+    @param sidbs:
+    @return:
+    """
+
+    with open(filename, 'rb') as fd:
+        pkts = extract_pus(fd)
+
+    if sid is None:
+        pkts = [pkt for pkt in pkts if (pkt[7] == 3) and (pkt[8] == 1)]
+    else:
+        pkts = [pkt for pkt in pkts if (pkt[7] == 3) and (pkt[8] == 1) and (int.from_bytes(pkt[sidoff:sidoff+sidbs], 'big') == sid)]
+
+    return pkts
+
+
 class DbTools:
     """
     SQL database management tools
-- 
GitLab