-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhqfbp.qmd
More file actions
56 lines (44 loc) · 1.67 KB
/
Copy pathhqfbp.qmd
File metadata and controls
56 lines (44 loc) · 1.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
---
title: HQFBP Introduction
jupyter: python3
---
```{python}
import hqfbp
```
## Optmized Headers
Conceptually header could be thought as Json but with a compact encoding.
```json
{
"Message-Id": 42,
"Src-Callsign": "FOSM-1",
"Content-Type": "text/plain;charset=UTF-8",
"File-Size": 8
}
```
```{python}
packed = hqfbp.pack({
"Message-Id": 42,
"Src-Callsign": "FOSM-1",
"Content-Type": "text/plain;charset=UTF-8",
"File-Size": 8,
}, b"")
print(packed.hex(' '))
print("#bytes:", len(packed))
```
## Encodings examples
```{python}
lorem_ipsum = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
print("Lenght of payload:", len(lorem_ipsum))
from hqfbp import HQFBP_CBOR_KEYS
from hqfbp.generator import PDUGenerator
from hqfbp.deframer import Deframer, MessageEvent
print("| Encodings | #PDUs | PDU sizes | Total size |")
print("| --- | --- | --- | --- |")
for enc in [["chunk(198)", "h", "crc16", "repeat(2)"],["gzip", "h", "chunk(233)", "rs(255,233)"],["gzip", "chunk(255)", "ax25", "crc16", "post_asm(0x7E)", "asm(0x7E)"],]:
gen = PDUGenerator(
src_callsign="FOSM-1",
encodings=enc,
)
pdus = list(gen.generate(lorem_ipsum.encode()))
print(f"| {', '.join(gen.encodings)} | {len(pdus)} | {[len(pdu) for pdu in pdus]} | {sum(len(pdu) for pdu in pdus)} |")
```