📄 code4b6b.h
字号:
/* -*- mode:c++; indent-tabs-mode: nil -*- * Copyright (c) 2006, Technische Universitaet Berlin * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * - Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - Neither the name of the Technische Universitaet Berlin nor the names * of its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *//** * provide functions to encode/decode a 4b 6b stream * @author Andreas Koepke <koepke@tkn.tu-berlin.de> * Book: RF Monolithics, Inc: ASH Transceiver Designer's Guide, Okt 2002. * http://www.rfm.com/products/tr_des24.pdf */#ifndef CODE_4B_6B_H#define CODE_4B_6B_Henum { ILLEGAL_CODE = 0xff, ENCODED_32KHZ_BYTE_TIME = 3*TDA5250_32KHZ_BYTE_TIME/2};const uint8_t nibbleToSixBit[] = { 13, // 001101 14, // 001110 19, // 010011 21, // 010101 22, // 010110 25, // 011001 26, // 011010 28, // 011100 35, // 100011 37, // 100101 38, // 100110 41, // 101001 42, // 101010 44, // 101100 50, // 110010 52 // 110100};const uint8_t sixBitToNibble[] = { ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, 0x00, 0x01, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, 0x02, ILLEGAL_CODE, 0x03, 0x04, ILLEGAL_CODE, ILLEGAL_CODE, 0x05, 0x06, ILLEGAL_CODE, 0x07, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, 0x08, ILLEGAL_CODE, 0x09, 0x0a, ILLEGAL_CODE, ILLEGAL_CODE, 0x0b, 0x0c, ILLEGAL_CODE, 0x0d, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, 0x0e, ILLEGAL_CODE, 0x0f, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE, ILLEGAL_CODE};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -