mtk 基站定位代码

别再复制粘贴了!手把手教你用C语言实现CRC-16 XMODEM校验(附四种代码对比与性能分析) 本文深入解析CRC-16 XMODEM校验原理,并提供四种C语言实现方案,包括基础位操作、查表法优化、16位数据宽度优化和混合位宽分段处理。通过性能实测与架构适配指南,帮助开发者选择最适合的方案,提升嵌入式系统和通信协议开发中的数据校验效率。 阅读详情
static unsigned short ccitt_table[256] = {
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7,
0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF,
0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6,
0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE,
0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485,
0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D,
0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4,
0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC,
0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823,
0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B,
0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12,
0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A,
0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41,
0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49,
0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70,
0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78,
0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F,
0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067,
0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E,
0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256,
0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D,
0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C,
0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634,
0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB,
0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3,
0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A,
0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92,
0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9,
0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1,
0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8,
0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0
};


unsigned short crc_ccitt(unsigned char *q, int len)
{
unsigned short crc = 0;


while (len-- > 0)
crc = ccitt_table[(crc >> 8 ^ *q++) & 0xff] ^ (crc << 8);
return ~crc;


}
//battery=67%,http://minigps.net/loc.do?x=861612&y=12345678&z=011639475&n=460&c=0&a=11662&e=42359&s=70&v=m1.0&l=en_US&p=1


#define MLOCATE_URL_STR "http://minigps.net/loc.do?"


#define MLOCATE_VERSION_STR "m1.0"
//en_US
#define MLOCATE_LANG_STR "ch_ZN"
// 1 is text only
// 2 is pic
// 3 is text & pic
#define MLOCATE_P 3


static kal_char sms_content[150] = {0};


void mlocate_do_report_locate(kal_int32 mcc, kal_int32 mnc, kal_int32 lac, kal_int32 cell_id)
{
//get imei
kal_char  imei_buf[SRV_IMEI_MAX_LEN + 1]        = {0}; 
mlocate_prompt_trace("mlocate_do_report_locate enter\n");
if(srv_imei_get_imei(MMI_SIM1, imei_buf, SRV_IMEI_MAX_LEN + 1))
{
      kal_char* url = MLOCATE_URL_STR;
kal_char x[16] = {0};
kal_int16 y = 0;
kal_char z[16] = {0};
kal_char crc16str[128] = {0};
kal_int32 crc16len = 0;
kal_int32 n = mnc;
kal_int32 c = mcc;
kal_int32 a = lac;
kal_int32 e = cell_id;
kal_int32 s = signalpercent;
kal_char* v = MLOCATE_VERSION_STR;
kal_char* l = MLOCATE_LANG_STR;
kal_int32 p = MLOCATE_P;

//get the battery percent
kal_int32 bl = (kal_int32)srv_charbat_get_battery_level();//max is 6
kal_int32 bp = (kal_int32)((bl * 1.0)/6)*100;
if(bp > 100)
{
bp = 100;
}
strncpy(x, imei_buf, 6);
strncpy(z, imei_buf+6, 9);
//Str=x+n+z+c+a+e+s+v
kal_sprintf(crc16str, 
"%s%d%s%d%d%d%d%s",
x,n,z,c,a,e,s,v);
crc16len = strlen(crc16str);
y = crc_ccitt(crc16str, crc16len);
//battery=67%,http://minigps.net/loc.do?x=861612&y=12345678&z=011639475&n=460&c=0&a=11662&e=42359&s=70&v=m1.0&l=en_US&p=1
kal_sprintf(sms_content, 
       "battery=%d%%,%sx=%s&y=%d&z=%s&n=%d&c=%d&a=%d&e=%d&s=%d&v=%s&l=%s&p=%d",
//"battery=%d%%,%sx=%s&y=%d",//&z=%s&n=%d&c=%d&a=%d&e=%d&s=%d&v=%s&l=%s&p=%d",
       bp,
       url,
       x,
       y,
       z,
       n,
       c,
       a,
       e,
       s,
       v,
                l,
       p
       );
       
mlocate_send_sms();
}
else
{
mlocate_prompt_trace("srv_imei_get_imei fail");
}

}
别再复制粘贴了!手把手教你用C语言实现CRC-16 XMODEM校验(附四种代码对比) 本文详细介绍了CRC-16 XMODEM校验在嵌入式系统中的应用,从核心原理到四种C语言实现方案的深度对比,包括基础版、查表法、16位优化版和64位批量处理。针对不同硬件平台(如STM32、ESP32)提供了优化策略和性能实测数据,帮助开发者选择最适合的校验方案。 阅读详情

相关推荐

基于MTK方案AG3335芯片设计的款超小型超低功耗定位器

基于MTK方案AG3335芯片设计的款超小型超低功耗定位器

wangmaoquan163的博客 2万+

JAVA CRC校验

[code]package com.richontech.util.crc; public class CalcCRC { private char[] crc_tb = { 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc...

zgrf2003 467

Qualcomm,Freescale,MTK平台下Android开发的比较

<br />这几年做了一些平台下的Android项目,下面具体对比一下几个平台Android开发,主要涉及的平台有Qualcomm,Freescale,MTK。这几个平台也都非常有代表性:<br /> <br />1.Qualcomm毫无疑问,肯定是通信这块的大牛厂商,目前很多通信协议和专利都跟这个公司有关系,当然它在ARM应用处理器这块也是有很高的造诣,也是Android联盟里面最早加入的成员。收款Android手机G1也是Qualcomm平台做出来的。CDMA这块肯定是毫无疑问的老大,VIA的CDMA的

Fly的专栏 7142

CRC16-XMODEM 计算方法 | C语言实现

【代码】CRC16-XMODEM 计算方法 | C语言实现。

机会是留给有准备的人 2604

MTK穿戴设备开发代码分析

个人独立开发智能穿戴设备和追踪器的开发总结

Paul专栏 3540

C语言实现crc-16/XMODEM(x16+x12+x5+1)校验(亲测可用)

【代码】C语言实现crc-16/XMODEM(x16+x12+x5+1)校验(亲测可用)

我不是码农的博客~~~ 1341

MTK基于基站和小区的定位技术研究

我们的移动网络是通过一个个基站连接起来的,而一个基站又被划分成若干小区以方便查找。因为基站的位置相对比较固定,所以我们可以通过基站的编号cell_id和小区的编号LAC来定位地理位置。 具体的理论原理大概是这样的。根据GSM协议通信管理过程,我们大致可以知道呼叫建立的过程首先是用户定位,查找被呼叫人的位置信息。在GSM协议中,我们知道,用户的位置信息由MSC/VLR管理,MSC/VLR被划分成若...

wangpengfei360 143

从稳压管到LDO芯片:一张图看懂线性电源的‘内卷’进化史

本文追溯了从稳压管到LDO芯片的线性电源技术进化历程,详细解析了各阶段的技术突破与局限。重点探讨了现代LDO在超低功耗、高精度控制等方面的创新,并提供了实战选型的黄金法则,帮助工程师在电子设备小型化与低功耗化趋势中做出最优选择。

weixin_42525551的博客 205

MTK基于基站和小区的定位技术研究(转载)

from:http://www.52rd.com/Blog/Detail_RD.Blog_blogercn_18749.html 懒书生 发表于 2009-4-13 0:34:00 我们的移动网络是通过一个个基站连接起来的,而一个基站又被划分成若干小区以方便查找。因为基站的位置相对比较固定,所以我们可以通过基站的编号cell_id和小区的编号LAC来定位地理位置。 具体的理论原理大概是这样的

ammer的专栏 815

Unreal 5 MetaHuman插件全流程:从安装到角色动画生成

本文详细介绍了Unreal 5中MetaHuman插件的全流程使用指南,从安装配置到角色动画生成。通过Quixel Bridge下载预设角色,利用面部捕捉技术赋予数字人模型生命力,并提供材质编辑、性能优化等进阶技巧,帮助用户快速创建照片级真实的虚拟角色。

weixin_29009081的博客 829

Mac版Burp Suite专业版破解与汉化完整指南

在Web安全测试领域,Java应用程序的许可证验证机制与本地化实现是常见的技术课题。其原理通常涉及Java Agent技术,通过在JVM启动时动态修改字节码,实现对软件授权状态的校验逻辑进行拦截与重写,从而绕过官方验证。同时,软件界面的国际化(i18n)与本地化(l10n)则依赖于资源文件的替换与加载。从技术价值角度看,深入理解这些机制不仅能满足特定场景下的工具定制需求,更能加深对Java安全机制、软件保护与逆向工程的理解。在实际的工程实践中,安全研究人员与开发者常面临功能受限或语言障碍的挑战,尤其是在渗透

weixin_29327525的博客 1034

MTK基站定位

$GPGGA,hhmmss.ssss,ddmm.mmmm,a,dddmm.mmmm,a,x,xx,x.x,x.x,M,,M,x.x,xxxx*CS $GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,00

aaaaatiger--寻路 4966

基于情感分析+聚类分析+LDA主题分析对服装产品类的消费者评论分析

本研究旨在通过对服装产品类的消费者评论进行综合分析,为企业提供更全面、更深入的市场洞察和决策支持。同时,本研究的方法和结果也可以为其他领域的消费者评论分析提供借鉴和参考。

m0_64336780的博客 2万+

android伪基站定位,智能手表三大定位技术解析及定位手表方案推荐

对于老人、儿童、孕妇这些“弱势”人群,手表的定位、通话、数据监测、运动轨迹等功能都是不可或缺的,而其中定位功能最受用户关注。那么智能手表的定位功能到底是怎么实现的呢?本文为大家科普智能手表定位功能的工作原理,同时推荐方案超市的优秀定位手表方案。目前市场上智能手表定位功能主要采用的技术都是基于GPS定位、基站定位、WiFi定位这三类定位技术实现的。如果对精准度要求不高,单独使用其中一种定位技术就可以...

weixin_39663933的博客 1541

手把手教你学AUTOSAR(13.1)--基于 AUTOSAR 的开发实战实例(一)

通过上述几个基于 AUTOSAR 的开发实战实例,你可以全面了解如何从需求分析、系统设计、软件开发、集成测试到部署和验证等多个环节进行 AUTOSAR 系统的开发。这些实例不仅涵盖了不同的应用场景,还提供了具体的代码实现和技术细节,帮助你更好地应用 AUTOSAR 标准。

MHD0815的博客 1195

Spring Boot入门(02):【教程】轻松搭建Spring Boot开发环境,启动你的第一个Web项目!

快速搭建开发环境和启动项目是每个开发人员必备的技能。本文将为您提供一些简单易懂的方法和技巧,以帮助您快速搭建开发环境和启动项目。我们将介绍如何选择适合您的开发工具、配置您的操作系统、安装必要的软件包和依赖项,并开始编写您的第一个应用程序。无论您是一位新手还是一位经验丰富的开发人员,本文都会给您提供有用的信息和实用的建议,让您在最短时间内快速搭建和启动开发项目。

**My Coding Family** 22万+

MTK GPS问题调试

MTK GPS问题

tq501501的博客 6837

在Simulink中构建感应电机的时滞补偿控制模型,并通过仿真验证不同补偿策略的有效性

核心优势Smith预估器可有效补偿已知时滞,提升系统稳定性。动态PID调整适用于时变时滞的初步补偿。扩展方向自适应时滞估计:结合Luenberger观测器实时估计时滞。鲁棒控制:引入H∞控制或滑模控制抑制参数不确定性。网络化时滞补偿:结合知识库[2]的网络延迟模型,实现端到端补偿。

amy_mhd的博客 189

android agps 定位,Android 5.1 上的 MTK GPS

本文主要介绍手机上几种常见的定位技术,以及 Android 5.1 上的 MTK GPS。几种常见的定位技术介绍纯 GPS 定位数据直接来源于卫星,即搜星,然后下载卫星数据。通过卫星的位置(从卫星上接收),卫星到接收机的距离来测算接收机的位置在无辅助信息的条件下用 GPS 定位,需捕获到至少四颗卫星(因为卫星和接收机都有时间差,4 个未知数需 4 个方程才能解)蜂窝基站 / WIFI定位蜂窝基站定...

weixin_39771969的博客 3121

IDM 的免费替代品来了!这款开源下载器速度提升500%

💡分享一款开源的下载管理工具,支持多线程加速(最高提升500%)、队列管理、计划任务和浏览器集成,界面现代化且支持深色模式,跨平台支持Windows/Linux,是IDM的优秀替代方案🎈

XiaoqiangClub的博客 727

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

MTK-Android 异常重启 AEE 分析定位

MTK-Android 异常重启 AEE 分析定位

灵魂剑客_Android系统开发专栏 3560

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

MTK刷机错误代码

【解决办法】:5069一般都是走完红条出现,或者是紫条时出现,也有可能是在走黄条的时候出现的5069错误,如果你的刷机包正确而且没有问题那么这个机器是无法修复了,这个错误是字库损坏引起的,建议大家退机保平安!另外的处理方法:刷机时黄颜色进度条55%,弹出过错误代码3060 ,把下载换成(全部格式化和下载),再次点下载,拔插电池、数据线,黄颜色进度75%,再弹出过错误代码3060 ,再次点下载,拔插电池、数据线,最终完成。【解决办法】:方法一:重新找 ROM,你的 ROM 是不对的!

时光 3612

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

MTK/Android GPS 相关

前言 分享下相关笔记跟概念吧,具体流程不好外传,MTK 有相关文档的 书籍参考 《深入理解 Android: WiFi 模块 NFC 和 GPS 卷》 相关概念 MTK GPS Log 解析 相关流程接口 LocationManager GPSLP AGPS GPS JNI 与 HAL 层 ...

wangjun7121的专栏 3081
上一篇: 基站定位平台接口协议
下一篇: json基站定位接口 免费使用
minigpsnet
博客等级 码龄22年 62粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值