GSM07.10协议中串口复用使用的校验算法

 1 const static unsigned char __crctable[256] =
 2 {
 3     0x00, 0x91, 0xE3, 0x72, 0x07, 0x96, 0xE4, 0x75,
 4     0x0E, 0x9F, 0xED, 0x7C, 0x09, 0x98, 0xEA, 0x7B,
 5     0x1C, 0x8D, 0xFF, 0x6E, 0x1B, 0x8A, 0xF8, 0x69,
 6     0x12, 0x83, 0xF1, 0x60, 0x15, 0x84, 0xF6, 0x67,
 7     0x38, 0xA9, 0xDB, 0x4A, 0x3F, 0xAE, 0xDC, 0x4D,
 8     0x36, 0xA7, 0xD5, 0x44, 0x31, 0xA0, 0xD2, 0x43,
 9     0x24, 0xB5, 0xC7, 0x56, 0x23, 0xB2, 0xC0, 0x51,
10     0x2A, 0xBB, 0xC9, 0x58, 0x2D, 0xBC, 0xCE, 0x5F,
11     0x70, 0xE1, 0x93, 0x02, 0x77, 0xE6, 0x94, 0x05,
12     0x7E, 0xEF, 0x9D, 0x0C, 0x79, 0xE8, 0x9A, 0x0B,
13     0x6C, 0xFD, 0x8F, 0x1E, 0x6B, 0xFA, 0x88, 0x19,
14     0x62, 0xF3, 0x81, 0x10, 0x65, 0xF4, 0x86, 0x17,
15     0x48, 0xD9, 0xAB, 0x3A, 0x4F, 0xDE, 0xAC, 0x3D,
16     0x46, 0xD7, 0xA5, 0x34, 0x41, 0xD0, 0xA2, 0x33,
17     0x54, 0xC5, 0xB7, 0x26, 0x53, 0xC2, 0xB0, 0x21,
18     0x5A, 0xCB, 0xB9, 0x28, 0x5D, 0xCC, 0xBE, 0x2F,
19     0xE0, 0x71, 0x03, 0x92, 0xE7, 0x76, 0x04, 0x95,
20     0xEE, 0x7F, 0x0D, 0x9C, 0xE9, 0x78, 0x0A, 0x9B,
21     0xFC, 0x6D, 0x1F, 0x8E, 0xFB, 0x6A, 0x18, 0x89,
22     0xF2, 0x63, 0x11, 0x80, 0xF5, 0x64, 0x16, 0x87,
23     0xD8, 0x49, 0x3B, 0xAA, 0xDF, 0x4E, 0x3C, 0xAD,
24     0xD6, 0x47, 0x35, 0xA4, 0xD1, 0x40, 0x32, 0xA3,
25     0xC4, 0x55, 0x27, 0xB6, 0xC3, 0x52, 0x20, 0xB1,
26     0xCA, 0x5B, 0x29, 0xB8, 0xCD, 0x5C, 0x2E, 0xBF,
27     0x90, 0x01, 0x73, 0xE2, 0x97, 0x06, 0x74, 0xE5,
28     0x9E, 0x0F, 0x7D, 0xEC, 0x99, 0x08, 0x7A, 0xEB,
29     0x8C, 0x1D, 0x6F, 0xFE, 0x8B, 0x1A, 0x68, 0xF9,
30     0x82, 0x13, 0x61, 0xF0, 0x85, 0x14, 0x66, 0xF7,
31     0xA8, 0x39, 0x4B, 0xDA, 0xAF, 0x3E, 0x4C, 0xDD,
32     0xA6, 0x37, 0x45, 0xD4, 0xA1, 0x30, 0x42, 0xD3,
33     0xB4, 0x25, 0x57, 0xC6, 0xB3, 0x22, 0x50, 0xC1,
34     0xBA, 0x2B, 0x59, 0xC8, 0xBD, 0x2C, 0x5E, 0xCF
35 };
36
37 unsigned char calc_fcs(const void *buf, int n)
38 {
39     unsigned char fcs = 0xFF;
40     int i;
41
42     for(i=0; i<n; i++)
43     {
44         fcs = __crctable[fcs ^ ((unsigned char *)buf)[i]];
45     }
46
47     return (0xFF - fcs);
48 }

GSM07.10协议中串口复用使用的校验算法,布布扣,bubuko.com

时间: 2024-10-07 05:20:41

GSM07.10协议中串口复用使用的校验算法的相关文章

DTLS协议中client/server的认证过程和密钥协商过程

我的总结:DTLS的握手就是协商出一个对称加密的秘钥(每个客户端的秘钥都会不一样),之后的通信就要这个秘钥进行加密通信.协商的过程要么使用非对称加密算法进行签名校验身份,要么通过客户端和服务器各自存对方信息进行对比校验身份. 1.DTLS介绍 1.1 DTLS的作用 互联网先驱们最开始在设计互联网协议时主要考虑的是可用性,安全性是没有考虑在其中的,所以传输层的TCP.UDP协议本身都不具备安全性.SSL/TLS协议是基于TCP socket,利用加密.基于数字证书的身份验证等机制在传输层和应用层

XE6移动开发环境搭建之IOS篇(7):在Mac OSX 10.8中安装Xcode4.6.3(有图有真相)

XE6移动开发环境搭建之IOS篇(7):在Mac OSX 10.8中安装Xcode4.6.3(有图有真相) 2014-08-23 21:37 网上能找到的关于Delphi XE系列的移动开发环境的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 在安装Xcode前,我们先了解下Mac下如何卸载U盘!在VM9下,同一时间内,一个物理设备只能由一个系统去独占,无论是物理机还是虚拟机.我们可以了解一下虚拟机加载U盘的规则:    1.在虚拟机中加载U盘时,会自动将U盘从Wind

XE6移动开发环境搭建之IOS篇(7):在Mac OSX 10.8中安装XE6的PAServer(有图有真相)

XE6移动开发环境搭建之IOS篇(7):在Mac OSX 10.8中安装XE6的PAServer(有图有真相) 2014-08-22 21:06 网上能找到的关于Delphi XE系列的移动开发环境的相关文章甚少,本文尽量以详细的内容.傻瓜式的表达来告诉你想要的答案. 在安装PAServer前,我们先配置一下MAC的IP,给定一个固定的内网IP,以便我们的XE6能更好地连接它!------------------------------------------------------------

HTTP协议中的短轮询、长轮询、长连接和短连接

HTTP协议中的短轮询.长轮询.长连接和短连接 引言 最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此最近经常会看一些源码.在研究一个项目的时候,源码里面用到了HTTP的长轮询.由于之前没太接触过,因此LZ便趁着这个机会,好好了解了一下HTTP的长长短短. 了解的方式主要都是LZ在网络上获取的,这里只是谈一下LZ对于这四种叫法最直观的理解.如果你之前不懂的话,可以帮你普及一下,如果你之前就懂得话,可以互相对照一下. 以前的误解 很久之前LZ就听说过长连接的说法,而且还知道HTTP1.0协

Socks5协议中文文档

译者:Radeon(Radeon [email protected]) 译文公布时间:2001-6-18 文件夹 1.介绍 2.现有的协议 3.基于TCP协议的客户 4.请求 5.地址 6.应答 7.基于UDP协议的客户 8. 安全性考虑 9. 參考书目 1.介绍 利用网络防火墙能够将组织内部的网络结构从外部网络如INTERNET中有效地隔离,这样的方法在很多网络系统中正变得流行起来.这样的防火墙系统通常以应用层网关的形式工作在两个网络之间,提供TELNET.FTP.SMTP等的接入.随着越来越

跟我一起学WCF(10)——WCF中事务处理

一.引言 好久没更新,总感觉自己欠了什么一样的,所以今天迫不及待地来更新了,因为后面还有好几个系列准备些,还有很多东西需要学习总结的.今天就来介绍下WCF对事务的支持. 二.WCF事务详解 2.1 事务概念与属性 首先,大家在学习数据库的时候就已经接触到事务这个概念了.所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单元.例如,银行转账功能,这个功能涉及两个逻辑操作 从一个账户A中扣钱 另一个账户B增加对应的钱. 现实生活中,这两个操作需要要么都执行,要么都不

RIP 协议中管理距离的应用

一.管理距离的作用 管理距离是确定一个路由协议的有效性或可信程度的一种度量值.在各种路由协议中,从最可信到最不可信进行了排序.当到达同一目标有多个不同协议产生的路径时,用于确定最佳路由. 常用的不同协议的默认管理距离如下表: 路由源(路由协议) 默认管理距离 直连路由 0 静态到接口 0 静态到下一跳 1 External BGP 20 OSPF 110 IS-IS 115 PIR V1,V2 120 Internal BGP 200 未知 255 由上表可以看到当管理距离为255时,该协议产生

UIScrollView控件的常用属性与&lt;UIScrollViewDelegate&gt;协议中各个方法的触发时机

UIScrollView是iOS中的滑动控件,用来解决当前要显示的内容超出视图的范围时,可以通过滑动方式查看视图的所有内容 1.创建一个UIScrollView对象,并改变背景颜色 UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(20, 20, 280, 528)]; scrollView.backgroundColor = [UIColor orangeColor]; scrollView.ta

TCP协议中的计时器

说明:  本文仅供学习交流,转载请标明出处,欢迎转载! 本文是以下文献相关内容的总结 [1] <TCP/IP详解 卷1:协议> [2] <TCP/IP协议族 第4版> [3] <计算机网络 第5版> TCP协议通常包括4种计时器:重传计时器.持续计时器.保活计时器和时间等待计时器. 重传计时器:Retransmission Timer,该计时器用于整个连接期间,用于处理RTO(重传超时).当一个报文从发送队列发出去后,就启动该计时器.若在RTO之内收到了该报文的ACK,