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
|
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright 2017 Daniel Estevez <daniel@destevez.net>
#
# This file is part of gr-satellites
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
import numpy
FEND = numpy.uint8(0xc0)
FESC = numpy.uint8(0xdb)
TFEND = numpy.uint8(0xdc)
TFESC = numpy.uint8(0xdd)
def kiss_escape(a):
"""Escapes KISS control characters
This replaces FEND and FESC according to the KISS escape rules
"""
buff = list()
for x in a:
if x == FESC:
buff.append(FESC)
buff.append(TFESC)
elif x == FEND:
buff.append(FESC)
buff.append(TFEND)
else:
buff.append(numpy.uint8(x))
return buff
|