社区
Windows客户端开发
帖子详情
如何用SMS PDU进行编写短消息呢
kendan12345
2007-06-07 10:19:58
如题
...全文
226
5
打赏
收藏
如何用SMS PDU进行编写短消息呢
如题
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kendan
2007-06-11
打赏
举报
回复
int CSMSController::gsmEncode7bit(const char* pSrc, unsigned char* pDst, int nSrcLength)
{
int nSrc; // 源字符串的计数值
int nDst; // 目标编码串的计数值
int nChar; // 当前正在处理的组内字符字节的序号,范围是0-7
unsigned char nLeft; // 上一字节残余的数据
// 计数值初始化
nSrc = 0;
nDst = 0;
// 将源串每8个字节分为一组,压缩成7个字节
// 循环该处理过程,直至源串被处理完
// 如果分组不到8字节,也能正确处理
while (nSrc < nSrcLength)
{
// 取源字符串的计数值的最低3位
nChar = nSrc & 7;
// 处理源串的每个字节
if(nChar == 0)
{
// 组内第一个字节,只是保存起来,待处理下一个字节时使用
nLeft = *pSrc;
}
else
{
// 组内其它字节,将其右边部分与残余数据相加,得到一个目标编码字节
*pDst = (*pSrc << (8-nChar)) | nLeft;
// 将该字节剩下的左边部分,作为残余数据保存起来
nLeft = *pSrc >> nChar;
// 修改目标串的指针和计数值
pDst++;
nDst++;
}
// 修改源串的指针和计数值
pSrc++;
nSrc++;
}
// 返回目标串长度
return nDst;
}
// 7bit解码
// 输入: pSrc - 源编码串指针
// nSrcLength - 源编码串长度
// 输出: pDst - 目标字符串指针
// 返回: 目标字符串长度
int CSMSController::gsmDecode7bit(const unsigned char* pSrc, char* pDst, int nSrcLength)
{
int nSrc; // 源字符串的计数值
int nDst; // 目标解码串的计数值
int nByte; // 当前正在处理的组内字节的序号,范围是0-6
unsigned char nLeft; // 上一字节残余的数据
// 计数值初始化
nSrc = 0;
nDst = 0;
// 组内字节序号和残余数据初始化
nByte = 0;
nLeft = 0;
// 将源数据每7个字节分为一组,解压缩成8个字节
// 循环该处理过程,直至源数据被处理完
// 如果分组不到7字节,也能正确处理
while(nSrc<nSrcLength)
{
// 将源字节右边部分与残余数据相加,去掉最高位,得到一个目标解码字节
*pDst = ((*pSrc << nByte) | nLeft) & 0x7f;
// 将该字节剩下的左边部分,作为残余数据保存起来
nLeft = *pSrc >> (7-nByte);
// 修改目标串的指针和计数值
pDst++;
nDst++;
// 修改字节计数值
nByte++;
// 到了一组的最后一个字节
if(nByte == 7)
{
// 额外得到一个目标解码字节
*pDst = nLeft;
// 修改目标串的指针和计数值
pDst++;
nDst++;
// 组内字节序号和残余数据初始化
nByte = 0;
nLeft = 0;
}
// 修改源串的指针和计数值
pSrc++;
nSrc++;
}
// 输出字符串加个结束符
*pDst = '\0';
// 返回目标串长度
return nDst;
}
kendan12345
2007-06-07
打赏
举报
回复
怎么都没人呢?高手出现吧
kendan12345
2007-06-07
打赏
举报
回复
sms protocol
是啥啊
tong20037
2007-06-07
打赏
举报
回复
学习
l1w1w1
2007-06-07
打赏
举报
回复
sms protocol
iOS9 learn Day-by-Day
原文地址 欢迎大家阅读iOS9 Day-by-Day,你将在文末,看到这一系列所有的博文的链接。当然,如果你愿意可以学习这一系列以前的文集 iOS7 和 iOS8 系列。 iOS9 Day-by-Day 是一个系列博客文集,内容囊括了开发者需要了解的 iOS9 相关的新技术、新API。本文是这一系列博客的索引页,确保你不会错过任何一天的文章。 关于作者 本系列文章是来自
Qt6实战项目 Day4:CloudNote个人云笔记系统 - 用户界面开发
✅ 现代化登录界面美观的登录/注册表单设计流畅的页面切换动画完整的表单验证和错误提示网络状态检测和加载动画✅ 功能完整的主窗口专业的三栏布局设计完整的菜单栏和工具栏分类树和笔记列表管理状态栏和系统托盘集成✅ 富文本笔记编辑器Markdown语法高亮显示实时预览和双栏编辑完整的格式化工具栏图片插入和表格支持✅ 现代化主题系统多套精美主题可选CSS样式完全可定制响应式界面适配一键切换主题功能。
【开源鸿蒙跨平台开发先锋训练营】DAY8~DAY13 底部选项卡&首页功能实现
本次开源鸿蒙跨平台开发先锋训练营DAY8~DAY13阶段,以Flutter为核心跨平台技术栈,基于开源鸿蒙设备适配要求,完成了美食类应用底部选项卡及首页核心页面的开发与优化。
Android实训-Day8&Day9
Day8 感觉有点学不大动了,没什么动力。。 一.笔记 【线程】 默认情况下,程序只有一条执行的流程,这个执行的流程就是主线程。 //持续占有CPU资源,但不执行任何操作。 Thread.sleep(毫秒数) ANR(Application Not Responding,程序未响应) 出现的原因就是主线程的执行顺序流被某个耗时的操作阻塞了,导致后续的操作无法及时响应。 这个时候系统处于保护的机制会弹出窗口。 但是很多时候,应用程序需要执行耗时操作(IO、网络等)的同时又要执行UI交互。 这种情况
Flutter+开源鸿蒙实战|校园易生活Day2 第三方库批量集成+全局Toast提示+网络状态监听+首页轮播图+资讯卡片布局
本文介绍了Flutter+开源鸿蒙校园APP实战Day2的开发内容。主要包括:批量集成fluttertoast、flutter_easy_refresh等第三方库;封装全局Toast提示工具类和网络状态监听功能;实现首页轮播图组件和校园资讯卡片布局;统一UI间距与样式规范,适配鸿蒙多端设备。文章详细讲解了每个功能模块的实现步骤和代码示例,如网络监听工具类封装、轮播图组件开发等,帮助开发者快速构建校园类APP的核心功能。项目采用模块化开发思路,代码简洁易维护,适合鸿蒙跨平台开发学习参考。
Windows客户端开发
7,655
社区成员
18,839
社区内容
发帖
与我相关
我的任务
Windows客户端开发
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
复制链接
扫一扫
分享
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章