蓝牙技术论文.doc_第1页
蓝牙技术论文.doc_第2页
蓝牙技术论文.doc_第3页
蓝牙技术论文.doc_第4页
蓝牙技术论文.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

蓝蓝牙牙打打印印 目目 录录 摘要摘要 1 ABSTRACT 2 第一章第一章 绪论绪论 3 1 1 研究的目的和意义 3 1 2 国内外发展现状及趋势 3 1 2 1 国内外发展现状 3 1 2 2 蓝牙技术的发展趋势 1 3 课题的主要内容 1 3 1 数据采集器手持设备 WDT 200ML G 介绍 1 3 2 上海芝柯 XT4131 打印机介绍 第二章第二章 蓝牙技术的发展及其形成蓝牙技术的发展及其形成 2 1 蓝牙技术的原理协议 2 2 蓝牙技术的内容 2 3 蓝牙技术的特点 第三章第三章 蓝牙打印系统的硬件设计蓝牙打印系统的硬件设计 8 3 1 蓝牙打印系统的硬件总体设计 8 3 2 无线蓝牙模块电路与 ARM2410 电路连接 9 3 2 1 模块的核心 3 2 2 芯片引脚电路 3 2 3 应用原理图 3 2 4 BT FLC BTMDC748 蓝牙芯片和 ARM2410 串口电路 第四章第四章 蓝牙打印系统的软件设计蓝牙打印系统的软件设计 4 1 蓝牙打印系统的软件总体设计 4 1 1 总体设计的流程图如下 4 2 搜索蓝牙设备流程图及代码 4 2 1 打开蓝牙设备 Open Api 代码 4 2 2 打开串口并设置串口参数函数 OpenUART dev s3c2410 serial1 9600 CTSRTS NO 代码 4 2 3 创建一个线程读取设备的序列号 pthread create technical standards harmonization Zhi Shi the advantage of sharing property rights is very clear I believe that through the joint efforts of the industry its future is limitless in the long run may exceed people s imagination Keywords Bluetooth technology wireless communications local area network 第第 1 章章 绪论绪论 1 1 研究的目的和意义研究的目的和意义 越来越多数字电子产品借着新科技提升本身的性能和实力 以目前发展的趋 势来看 未来消费性电子产品将有两个重要的发展指标 一是使用蓝牙技术这类 开放技术 以无线 局域网络 可携带式设备成为网络体的延伸 另一项则是内 存规格的统一 加密以及轻量化应用 无论您喜不喜欢 蓝牙计划 这个名词几乎已到了无孔不入的境界 不论是 商业财经台还是一般大众电视台 都不只一次以上报导这个计划的进展与新闻 话虽如此 但却很少人了解此计划的原意与来龙去脉 只知道有这样一个计划正 如火如荼地进行 且声势浩大 似乎充满无限希望 蓝牙技术对我国的信息化建设来说 既是挑战也是机遇 我们衷心希望具有 我国自主知识产权的蓝牙产品早日投入市场 也希望有更多的有识之士关注和支 持我国蓝牙技术的成长与发展 也许在不久的将来 人们会惊奇地发现我们的工 作与生活都在逐步变 蓝 蓝牙是一种短距无线通信的技术规范 它最初的目标是取代现有的掌上电脑 移动电话等各种数字设备上的有线电缆连接 在制定蓝牙规范之初 就建立了统 一全球的目标 向全球公开发布 工作频段为全球统一开放的 2 4GHz 工业 科 4 学和医学 Industrial Scientific and Medical ISM 频段 从目前的应用来看 由 于蓝牙体积小 功率低 其应用已不局限于计算机外设 几乎可以被集成到任何 数字设备之中 特别是那些对数据传输速率要求不高的移动设备和便携设备 1 2 国内外发展现状及趋势国内外发展现状及趋势 1 2 1 国内外发展现状国内外发展现状 从国内整体 来看 目前参与蓝牙特殊兴趣小组的国内企业还为数不多 蓝牙产品也大 多处于研发阶段 在这种 下 国内厂家要摆脱这种 落后的状况 达到与国际技术同步发展 的水平 采取以下几种途径 通过与国外大公司的合作 掌握蓝牙芯片的关键技术 在蓝牙技术中 芯片是基础 在蓝 牙技术成熟后 芯片市场将占据蓝牙市场中的大部分 若我国拥有自己的蓝牙芯片厂商 我 国蓝牙产业的发展就 免受或少受国外的牵制 芯片技术是我国信息产业发展的瓶颈 而目 前我国的芯片技术一直处于落后 我国政府已明确指出要加快芯片技术产业的发展 因此 发展蓝牙芯片也符合我国的发展战略 加紧对蓝牙技术的应用开发 加快蓝牙技术在各种 IT 设备中的应用研究 目前 芯片价 格和协议的 更新等原因 推出大规模的商业应用还不现实 但应紧跟技术的发展 针对各 行业的应用加紧研究开发 为大规模的商业应用做充分的准备 国内 企业也正在讨论用软 件方法来实现蓝牙协议 当蓝牙协议更新时 只需修改软件就能实现协议升级 这在当前的 形式下 也不失为一种好的对策 加强企业间的横向联合 蓝牙技术应用 各行业的企业 有不同的蓝牙技术应用切入点 企 业间的利益冲突小 因此 国内的企业应联合起来 成立一个国内的蓝牙组织 共同推进蓝 牙技术在国内的发展 还要加强对蓝牙协议的研究 力争在蓝牙协议中 也拥有我国自 主的知识产权 变被动跟踪为主动出击 国外自从 1994 年爱立信提出蓝牙技术以来 这项低功耗 低成本的无线连接技术已经 5 了巨大的发展 1998 年 5 月 爱立信 诺基亚 东芝 IBM 和英特尔 5 家公司成立了蓝牙 特殊兴趣小组 SIG 此后 各大公司都加大了对蓝牙的投资力度 于 1999 年发布了蓝牙 技术协议 V1 0B 版 2001 年 3 月发布了蓝牙协议 V1 1 版 爱立信于 2000 年推出了蓝牙技 术模块 这种模块主要采用了两个芯片完成整个蓝牙协议 目前各大公司正在努力将整个蓝 牙协议植入一个芯片中 到 2001 年 4 月止 蓝牙特殊兴趣小组已有各种成员 2 491 位 已 通过蓝牙技术认证的产品 蓝牙调制器 开发器 测试设备及其 他应用产品 已达 200 多 种 目前 在国外公司推出的产品当中 各类测试设备 无线测试仪和协议分析仪等 已 日趋成熟 但其应用产品 PC 卡等 还有些问题需要解决 互操作性差 传输速率低等 目前 蓝牙协议还处于 完善期 SIG 预计在 2001 年年底发布蓝牙协议 V2 0 版 拟采 用自适应跳频技术来进一步提高抗干扰性能并减少对同频段其他设备的干扰 使一个微微网 的传输速率有望达到 12M 以拓展蓝牙技术在工业控制和无线 LAN 中的应用 虽然 蓝牙技术的发展速度一直未达到预计的而使业内人士对蓝牙技术产生了怀疑 一种前景光明的连接技术 蓝牙仍以惊人的速度向前发展 预计到 2003 年 将有数千万只 手机和数百万个其他 IT 设备被植入蓝牙技术 到 2005 年 其全球的芯片市场将达 50 亿美 元 1 2 2 蓝牙技术的发展趋势蓝牙技术的发展趋势 蓝牙的支持者很多 从最初只有五家企业发起的蓝牙特别兴趣小组 SIG 发展到现在已拥有了近 3000 个企业成员 根据计划 蓝牙从实验室进入市场经 过三个阶段 第一阶段 蓝牙产品作为附件应用于移动性较大的高端产品中 如移动电话 耳机 笔记本电脑插卡或 PC 卡等 或应用于特殊要求或特殊场合 这种场合只 要求性能和功能 而对价格不太敏感 这一阶段的时间大约在 2001 年底到 2002 年底 第二阶段 蓝牙产品嵌入中高档产品中 如 PDA 移动电话 PC 笔记本 电脑等 蓝牙的价格会进一步下降 估计其芯片价格在 10 美元左右 而有关的 测试和认证工作也将初步完善 这一时间段是 2002 年 2005 年 6 第三阶段 2005 年以后 蓝牙进入家用电器 数码相机及其他各种电子产品 中 蓝牙网络随处可见 蓝牙应用开始普及 蓝牙产品的价格在 2 美元 5 美元 之间 每人都可能拥有 2 3 个蓝牙产品 就目前而言 蓝牙产品的市场化正处于第三阶段的起步期 2006 年底 蓝牙 有超过 10 亿的无线用户 其中包括 5 亿多使用无线互联网访问服务的用户 第 三代移动通信技术将为蓝牙互联提供更大的市场 蓝牙互联技术允许手机 便携 设备 个人电脑 笔记本电脑和第三方的接入设备互相连接在一起 安装蓝牙模 块的设备将从 2001 年的不足 100 万台增加到 2006 年的 16 亿台 图 2 蓝牙协议结构 1 3 课题的主要内容课题的主要内容 随着蓝牙的技术越来越先进 支持的功能越来越多 在该论文中我通过公 司的数据采集器手持设备 WDT 200ML G 与上海芝柯公司开发的一款 XT4131 系列 打印机通过蓝牙通信实现打印效果 该打印是通过手持设备采集数据 通过手持 设备蓝牙模块与打印机的蓝牙模块进行通信实现打印效果 该论文只尊对手持设 备蓝牙实现做详细说明 1 3 1 数据采集器手持设备数据采集器手持设备 WDT 200ML G 介绍 介绍 简要介绍 适用环境 能适应室外操作 可应用于超市物流跟踪 固定资产管理 生产制造 电 子仓库产品管理等情况 G 系列支持 GPRS 无线通信 支持 WLAN 无线通信 蓝牙模块 开 发环境 Linux 开发平台 开发语言为嵌入式 C 语言 主要功能模块配置 扫描 一维激光扫描 扫描距离 0 30 厘米 分辨率 0 1 毫米 扫描速度 100 20 次 秒 扫描角度 5 35 度 7 扫描范围 一维条行码 包括 39 码 交叉 25 码 库德巴码 中国邮政码 32 码 1 28 码 25 码 Matrix25 码 93 码 UCC EAN128 UPC A UPC E EAN13 EA N8 MSI UPCE MSI 码 11 码等 通信 GPS 跟踪 利用美国政府研发的 GPS 全球定位系统 不产生费用 US B1 0 有线通信 显示界显示屏 160 105 点阵黑白液晶屏 有 LED 背光 可显示 8 行 10 列 16 点阵汉字 键盘采键盘 彩色 30 键 包括数字 字母键 功能键 快速操作键 系统软件 产品需配合软件处理 实际应用软件根据客户需求量身定制 开发环境 Linux 开发平台 开发语言为嵌入式 C 语言 支持二次开发 质保 自购买之日起一年内免费保修 易耗品除外 包括人工费及零件更换 电池保修半年 一年保修期后本公司继续为用户有偿保修 须收取零配件费用及 人工费用 标准配件 充电器一个 充电锂电池一块 数据线一条 说明书一本 保修卡一 本 描述 联信通数据采集器具有无线发送 自动存储 数据检验功能 保证了数据 传输的方便性与准确性 采用可充电的锂电池供电 配有座充和直充两用充电器 电池工作时间长达 40 小时 待机 60 小时以上 产品具有防水 防尘 抗静电 抗跌落设计 重要指标达到或超过 IP54 工业等级 8 1 3 21 3 2 上海芝柯上海芝柯 XT4131XT4131 打印机介绍 打印机介绍 简要介绍 XT4131 是上海芝柯推出最新的支持不干胶标签打印 也支持各种空白及预 印刷票据打印 防水防尘等级达到 IP54 即使遭遇大雨仍然能在户外正常工作 抗 摔能力可达 2m 水泥地面 不仅可支持常见的一维条码打印 也支持 QRCODE PDF417 DATAMATRIX 等常见二维条码打印 同时用户可选 择 支持 GM 汉信码 龙贝码等国产二维码 7 4V 2000MAh 大容量锂聚合物电 池配合低功耗设计及自动休眠自动唤醒功能的工业级便携式打印机 支持标签和票据打印支持标签和票据打印 支持不干胶标签打印 也支持各种空白及预印刷票据打印 工业级设计工业级设计 防水防尘等级达到 IP54 即使遭遇大雨仍然能在户外正常工作抗摔能力可达 2m 水泥地面 支持二维条码打印支持二维条码打印 不仅可支持常见的一维条码打印 也支持 QRCODE PDF417 DATAMATRIX 等常见 二维条码打印 同时用户可选择支持 GM 汉信码 龙贝码等国产二维码 超长电池续航能力超长电池续航能力 7 4V 2000MAh 大容量锂聚合物电池配合低功耗设计及自动休眠自动唤醒功能 工 作 待机更长久 蓝牙无线通讯蓝牙无线通讯 9 采用 CLASS 2 V2 0 蓝牙无线通讯技术 支持各种智能手机 PDA 便携式电脑及 专用终端打印 图片图片 第二章第二章 蓝牙技术的发展及其形成蓝牙技术的发展及其形成 2 1 蓝牙技术的原理协议蓝牙技术的原理协议 1 建立连接 在微微网建立之前 所有设备都处于就绪状态 在该状态下 未连接的设备 每隔 1 28s 监听一次消息 设备一旦被唤醒 就在预先设定的 32 个跳频频率上监 听信息 跳频数目因地区而异 但 32 个跳频频率为绝大多数国家所采用 连接 进程由主设备初始化 如果一个设备的地址已知 就采用页信息 Page message 建立连接 如果地址未知 就采用紧随页信息的查询信息 Inquiry message 建立连接 在微微网中 无数据传输的设备转入节能工作状态 主设备 可将从设备设置为保持方式 此时 只有内部定时器工作 从设备也可以要求转 入保持方式 设备由保持方式转出后 可以立即恢复数据传输 连接几个微微网 或管理低功耗器件时 常使用保持方式 监听方式和休眠方式是另外两种低功耗 工作方式 蓝牙基带技术支持两种连接方式 面向连接 SCO 方式 主要用于 语音传输 无连接 ACL 方式 主要用于分组数据传输 2 差错控制 基带控制器采用 3 种检错纠错方式 1 3 前向纠错编码 FEC 2 3 前向纠 错编码 自动请求重传 ARQ 3 认证与加密 认证与加密服务由物理层提供 认证采用口令 应答方式 在连接过程中 可能需要一次或两次认证 或者无需认证 认证对任何一个蓝牙系统都是重要的 10 组成部分 它允许用户自行添加可信任的蓝牙设备 例如 只有用户自己的笔记 本电脑才可以通过用户自己的手机进行通信 蓝牙安全机制的目的在于提供适当 级别的保护 如果用户有更高级别的保密要求 可以使用有效的传输层和应用层 安全机制 4 软件结构 蓝牙设备应具有互操作性 对于某些设备 从无线电兼容模块和空中接口 直到应用层协议和对象交换格式 都要实现互操作性 对另外一些设备 如头戴 式设备等 的要求则宽松得多 蓝牙计划的目标就是要确保任何带有蓝牙标记的 设备都能进行互换性操作 软件的互操作性始于链路级协议的多路传输 设备和 服务的发现 以及分组的分段和重组 蓝牙设备必须能够彼此识别 并通过安装 合适的软件识别出彼此支持的高层功能 互操作性要求采用相同的应用层协议栈 不同类型的蓝牙设备对兼容性有不同的要求 用户不能奢望头戴式设备内含有地 址簿 蓝牙的兼容性是指它具有无线电兼容性 有语音收发能力及发现其它蓝牙 设备的能力 更多的功能则要由手机 手持设备及笔记本电脑来完成 为实现这 些功能 蓝牙软件构架将利用现有的规范 如 OBEX HID 人性化接口设备 vCard vCalendar 及 TCP IP 等 而不是再去开发新的规范 设备的兼容性要求能 够适应蓝牙规范和现有的协议 图 1 单芯片蓝牙硬件模块结构 2 2 蓝牙技术的内容蓝牙技术的内容 蓝牙技术产品是采用低能耗无线电通信技术来实现语音 数据和视频传输的 其传输速率最高为每秒 1Mb s 以时分方式进行全双工通信 通信距离为 10 米左 右 配置功率放大器可以使通信距离进一步增加 蓝牙产品采用的是跳频技术 能够抗信号衰落 采用快跳频和短分组技术 11 能够有效地减少同频干扰 提高通信的安全性 采用前向纠错编码技术 以便在 远距离通信时减少随机噪声的干扰 采用 2 4GHz 的 ISM 即工业 科学 医学 频段 以省去申请专用许可证的麻烦 采用 FM 调制方式 使设备变得更为简单 可靠 蓝牙 技术产品一个跳频频率发送一个同步分组 每组一个分组占用一个 时隙 也可以增至 5 个时隙 蓝牙 技术支持一个异步数据通道 或者 3 个并发 的同步语音通道 或者一个同时传送异步数据和同步语音的通道 蓝牙 的每一个 话音通道支持 64Kbps 的同步话音 异步通道支持的最大速率为 721Kbps 反向 应答速率为 57 6Kbps 的非对称连接 或者 432 6Kbps 的对称连接 蓝牙技术产品与因特网 Internet 之间的通信 使得家庭和办公室的设备不需 要电缆也能够实现互通互联 大大提高办公和通信效率 因此 蓝牙 将成为无 线通信领域的新宠 将为广大用户提供极大的方便而受到青睐 2 3 蓝牙技术的特点蓝牙技术的特点 蓝牙是一种短距无线通信的技术规范 它最初的目标是取代现有的掌上电脑 移动电话等各种数字设备上的有线电缆连接 在制定蓝牙规范之初 就建立了统 一全球的目标 向全球公开发布 工作频段为全球统一开放的 2 4GHz 工业 科 学和医学 Industrial Scientific and Medical ISM 频段 从目前的应用来看 由 于蓝牙体积小 功率低 其应用已不局限于计算机外设 几乎可以被集成到任何 数字设备之中 特别是那些对数据传输速率要求不高的移动设备和便携设备 蓝 牙技术的特点可归纳为如下几点 1 全球范围适用 蓝牙工作在 2 4GHz 的 ISM 频段 全球大多数国家 ISM 频段的范围是 2 4 2 4835GHz 使用该频段无需向各国的无线电资源管理部门申请许可证 2 同时可传输语音和数据 蓝牙采用电路交换和分组交换技术 支持异步数据信道 三路语音信道以及 异步数据与同步语音同时传输的信道 每个语音信道数据速率为 64kbit s 语音 信号编码采用脉冲编码调制 PCM 或连续可变斜率增量调制 CVSD 方法 当采用 非对称信道传输数据时 速率最高为 721kbit s 反向为 57 6kbit s 当采用对称信 道传输数据时 速率最高为 342 6kbit s 蓝牙有两种链路类型 异步无连接 Asynchronous Connection Less ACL 链路和同步面向连接 Synchronous Connection Oriented SCO 链路 3 可以建立临时性的对等连接 Ad hoc Connection 根据蓝牙设备在网络中的角色 可分为主设备 Master 与从设备 Slave 主设备是组网连接主动发起连接请求的蓝牙设备 几个蓝牙设备连接成一个皮网 Piconet 时 其中只有一个主设备 其余的均为从设备 皮网是蓝牙最基本的 一种网络形式 最简单的皮网是一个主设备和一个从设备组成的点对点的通信连 接 通过时分复用技术 一个蓝牙设备便可以同时与几个不同的皮网保持同步 具体来说 就是该设备按照一定的时间顺序参与不同的皮网 即某一时刻参与某 一皮网 而下一时刻参与另一个皮网 4 具有很好的抗干扰能力 工作在 ISM 频段的无线电设备有很多种 如家用微波炉 无线局域网 Wireless LocalArea Network WLAN 和 HomeRF 等产品 为了很好地抵抗来 自这些设备的干扰 蓝牙采用了跳频 Frequency Hopping 方式来扩展频谱 Spread Spectrum 将 2 402 2 48GHz 频段分成 79 个频点 相邻频点间隔 12 1MHz 蓝牙设备在某个频点发送数据之后 再跳到另一个频点发送 而频点的 排列顺序则是伪随机的 每秒钟频率改变 1600 次 每个频率持续 625 5 蓝牙模块体积很小 便于集成 由于个人移动设备的体积较小 嵌入其内部的蓝牙模块体积就应该更小 如 爱立信公司的蓝牙模块 ROK101008 的外形尺寸仅为 32 8mm 16 8mm 2 95mm 6 低功耗 蓝牙设备在通信连接 Connection 状态下 有四种工作模式 激活 Active 模式 呼吸 Sniff 模式 保持 Hold 模式和休眠 Park 模式 Active 模式是正常的工作状态 另外三种模式是为了节能所规定的低功耗模式 7 开放的接口标准 SIG 为了推广蓝牙技术的使用 将蓝牙的技术标准全部公开 全世界范围内 的任何单位和个人都可以进行蓝牙产品的开发 只要最终通过 SIG 的蓝牙产品兼 容性测试 就可以推向市场 8 成本低 随着市场需求的扩大 各个供应商纷纷推出自己的蓝牙芯片和模块 蓝牙产 品价格飞速下降 图 3 蓝牙打印系统结构 第第 3 章蓝牙打印系统的硬件设计章蓝牙打印系统的硬件设计 3 1 蓝牙打印系统的硬件总体设计蓝牙打印系统的硬件总体设计 3 1 1 无线蓝牙模块的介绍无线蓝牙模块的介绍 FLC BTMDC748 模块 慧翰信息技术有限公司提供 产品特征蓝牙 V2 1 Class1 增强性速率 串行 UART 接口 免提 耳机 CSR BC04 平台低功耗远距离 100 米 传输距离软件升 级 典型应用 13 1 串口 UART 与 USB 口透明数据传输 适用于串口设备与计算机之间的数据传输 2 主从模块加电自动建链 同时透明传输串口数据及语音 适用于工业应用 无需人工干 预 3 串口设备与具备蓝牙功能的 PDA 之间的数据传送 4 模块嵌入手持类设备 扩展蓝牙数据传输 语音传输等功能 5 医疗电子 电力抄表 GPS 蓝牙 工业自动化 嵌入式系统 3 2 无线蓝牙模块电路与无线蓝牙模块电路与 ARM2410 电路连接电路连接 3 2 1 模块的核心模块的核心 14 3 2 2 芯片引脚电路芯片引脚电路 15 3 2 3 应用原理图应用原理图 16 3 2 4 BT FLC BTMDC748 蓝牙芯片和蓝牙芯片和 ARM2410 串口电路串口电路 通过 2410 芯片 K14 K16 引脚和 BTMDC748 芯片 6 26 脚连接 17 脚为复位 17 引脚 第第 4 章蓝牙打印系统的软件设计章蓝牙打印系统的软件设计 4 1 蓝牙打印系统的软件总体设计蓝牙打印系统的软件总体设计 18 本次软件开发都是基于公司的手持终端设备开发 该设备是 ARM2410 Linux GPS GPRS Wlan 蓝牙 一维 二维扫描头等所组成 在此我尊对蓝牙打印这块做详细介绍 蓝牙打印软件设计总体分三个模块 搜索蓝牙打印机设备 选中已搜索到的蓝牙设备 连接打印机打印信息 4 1 1 总体设计的流程图如下 总体设计的流程图如下 开始 搜索蓝牙打印机设备 搜索蓝牙设备 搜索蓝牙打印机设备 选择蓝牙设备 搜索蓝牙打印机设备 打印相关信息 结束 19 4 2 搜索蓝牙设备程序流程图及代码搜索蓝牙设备程序流程图及代码 开始 打开蓝牙设备 Open Api 打开串口设置参数 OpenUART dev s3c2410 serial1 9600 CTSRTS NO 创建线程读取设备序列号 pthread create 20 4 2 1 打开蓝牙设备打开蓝牙设备 Open Api 代码 代码 int32 Open Api if fd serial 1 fd serial OpenUART dev s3c2410 serial1 9600 CTSRTS NO 打开设 备文件 if fd serial 0 return 1 g par fd fd serial pthread create BlueIOReset ClrStatus if WaitForStr S1 3 Runable false pthread join t1 NULL close fd serial fd serial OpenUART dev s3c2410 serial1 38400 CTSRTS NO if fd serial fd buf BUFSIZE 0 50000 pthread mutex lock if len 0 if g received len BUFSIZE 22 g received 0 pthread mutex unlock continue memcpy g buf g received buf len g received len printf s n g buf if ISCONNECT 1 fd serial 1 ISCONNECT 1 if fd func NULL fd func Runable false SetGPIO GPS BLUE POWER 0 pthread mutex unlock pthread mutex destroy break pthread mutex unlock 4 2 3 1 读取蓝牙序列号函数读取蓝牙序列号函数 read datas tty fd fd buf BUFSIZE 0 50000 代代 码 码 int32 read datas tty int32 fd char rcv buf int32 len int32 sec int32 usec int32 retval fd set rfds char temp 0 struct timeval tv int32 ret tv tv sec 0 set the rcv wait time tv tv usec 0 100000us 0 1s while 1 FD ZERO FD SET fd tv tv sec sec set the rcv wait time tv tv usec usec 100000us 0 1s 23 retval select fd 1 if retval 1 perror select ret 0 break else if retval ret read fd rcv buf len break else ret 0 break return ret 4 2 4 蓝牙设备蓝牙设备 IO 复位函数复位函数 BlueIOReset 代码 代码 void BlueIOReset SetGPIO GPS BLUE POWER 0 usleep 6000 SetGPIO GPS BLUE POWER 1 GPH9 SetGPIO BLUE RESET 1 usleep 10000 SetGPIO BLUE RESET 0 GPH10 SetGPIO BLUE RESET 1 usleep 10000 SetGPIO BLUE RESET 0 GPH10 4 2 5 等待线程结束函数等待线程结束函数 pthread join t1 NULL 和复位和复位 mResetBlue 代码 代码 pthread join t1 NULL int mResetBlue char data buf 17 resetio BlueIOReset ClrStatus if WaitForStr S1 8 24 goto resetio printf buf s n g buf usleep 7000 if WaitForStr S3 1 sprintf data buf AT DF r n write fd serial data buf strlen data buf ClrStatus WaitForStr OK 4 goto resetio sprintf data buf AT DF r n write fd serial data buf strlen data buf ClrStatus if WaitForStr OK 4 goto resetio return 1 4 2 6 获取蓝牙设备地址函数获取蓝牙设备地址函数 ret GetBlueAddr blues 6 60 代码 代码 int32 GetBlueAddr BlueIf info int32 size int32 timeout char data buf 128 unsigned int32 i 0 char pt char tmp g buf int len strcpy data buf AT DA r n write fd serial data buf strlen data buf ClrStatus if WaitForStr S1 60 printf 8 s d func LINE while NULL pt strstr tmp nEA memset info i addr 0 13 strncpy info i addr pt 3 12 if pt 15 0 xff 25 len 0 else len strchr pt 17 n pt 16 if len22 22 len if i size break tmp pt len 12 ClrStatus return i ClrStatus return 0 4 2 7 保存序列号和设备号函数保存序列号和设备号函数 SaveBlueAdd 代码 代码 int SaveBlueAdd BlueIf blue fp fopen UPDATE DEVICE FILE w if fp NULL perrorEx FUNCTION fopen UPDATE DEVICE FILE gotoERROR for j 0 j MenuIndex FocusItem BlueName pInterface pMenu FocusItem pName memset NetName 0 sizeof NetName strncpy NetName BlueName BLUE NAME LEN 1 BLUE ADD LEN ret SetSysPublicCfg BLUE ADD INDEX NetName if ret 0 strcpy PubCfg BlueAdd NetName MessageBoxEx 选择该设备成功 else MessageBoxEx 选择失败 returnret int32 BlueView struct interface pInterface char BlueName uint32FocusItem charBlueAdd BLUE ADD LEN 1 FocusItem pInterface MenuIndex FocusItem BlueName pInterface pMenu FocusItem pName memset BlueAdd 0 sizeof BlueAdd 27 strncpy BlueAdd BlueName BLUE NAME LEN 1 BLUE ADD LEN if 0 strncmp BlueAdd PubCfg BlueAdd BLUE ADD LEN MessageBoxEx 已选定该设备 else MessageBoxEx 未选该设备 return0 int32 FreeTempMenu struct interface pInterface void ppMenuName struct menu ppMenu if ppMenu NULL free ppMenu ppMenu NULL dprintf free pMenu n if ppMenuName NULL free ppMenuName ppMenuName NULL dprintf free pMenuName n return0 28 4 4 连接打印机并打印相关信息流程图及代码连接打印机并打印相关信息流程图及代码 If ret 0 MessageBox 链接蓝牙设 备失败 NULL 返回 蓝牙设备初始化 blue dev on 开始 连接打印机蓝牙设备 ret SetCnnect charPubcfg PubCfg BlueAdd 5 打印手持设备传输的数据 print barCode BLUEPRINT Ms ingleNum BLUEPRINT Zsingle Num BLUEPRINT SendStation BLUEPRINT ReachStation BL UEPRINT Recipient BLUEPRI NT Operator BLUEPRINT Net Name BLUEPRINT Time BLU EPRINT ScanNum 结束 29 4 4 1 连接打印机蓝牙设备函数连接打印机蓝牙设备函数 SetCnnect charPubcfg PubCfg BlueAdd 5 代代 码 码 int32 SetConnect void func void char addr int32 Sec char data buf 128 unsigned printf s d call back 08x n func LINE unsigned int func g par func func blue dev on memset data buf 0 128 sprintf data buf AT DB s r n addr write fd serial data buf strlen data buf if WaitForStr EC n Sec sprintf data buf AT DC s r n PairCode write fd serial data buf strlen data buf if WaitForStr S4 n Sec ClrStatus ISCONNECT 1 return 1 ClrStatus return 0 4 4 2 蓝牙设备初始化函数蓝牙设备初始化函数 blue dev on 代码 代码 int32 blue dev on char data buf 17 int it 4 if fd serial 0 return 1 pthread mutex init Open Api pthread create mResetBlue return 1 30 4 4 3 打印手持设备传输的数据函数打印手持设备传输的数据函数 print barCode BLUEPRINT MsingleNum BLUEPRINT ZsingleNum BLUEPRINT SendStation BLUEPRINT ReachStation BLUEPRINT Recipient BLUEPRINT Operator BLUEPRINT NetName BLUEPR INT Time BLUEPRINT ScanNum 代码 代码 void print barCode char main char subcode char source char dist char sjr char czr char netname char date char total char buf 1024 print start memset buf 0 1024 print data x1B x33 x00 3 设置行间距为 0 print data n 1 print data x1b x61 x00 3 设置不居中 print data x1b x45 1 3 粗体 print data x1d x21 x01 3 设置倍高 sprintf buf 16s 苏驰物流 print data buf strlen buf print data x1b x45 0 3 解除粗体 print data x1d x48 x02 3 设置条码内容打印在条码下方 print data x1d x77 x03 3 设置条码宽度 0 375 print data x1d x68 x40 3 设置条码高度 64 打印 code128 条码 print data x1D x6B x18 3 sprintf buf subcode print data buf strlen buf 1 print data r n 1 print data x1b x45 0 3 解除粗体 print data x1d x21 x00 3 设置不倍高 sprintf buf n print d ata buf strlen buf print data x1b x45 0 3 解除粗体 print data x1d x21 x01 3 设置倍高 sprintf buf 发站 print data buf strlen buf 31 print data x1b x45 1 3 粗体 print data x1d x21 x01 3 设置倍高 sprintf buf 14s source print data buf strlen buf print data x1b x45 0 3 解除粗体 print data x1d x21 x01 3 设置倍高 sprintf buf 到站 print data buf strlen buf print data x1b x45 1 3 粗体 print data x1d x21 x01 3 设置倍高 sprintf buf 16s dist print data buf strlen buf print data x1b x45 0 3 解除粗体 print data x1d x21 x01 3 设置倍高 sprintf buf n print data buf strlen buf print data x1d x21 x00 3 设置不倍高 sprintf buf n print d ata buf strlen buf print data x1d x21 x01 3 设置倍高 sprintf buf 件数 print data buf strlen buf print data x1b x45 1 3 粗体 print data x1d x21 x01 3 设置倍高 sprintf buf 14s total print data buf strlen buf print data x1b x45 0 3 解除粗体 print data x1d x21 x01 3 设置倍高 sprintf buf 单号 print data buf strlen buf print data x1b x45 1 3 粗体 print data x1d x21 x01 3 设置倍高 sprintf buf 16s main print data buf strlen buf print data x1b x45 0 3 解除粗体 sprintf buf n print data buf strlen buf 32 print data x1d x21 x00 3 设置不倍高 sprintf buf n print d ata buf strlen buf print data x1d x21 x01 3 设置倍高 sprintf buf 收件人 print data buf strlen buf print data x1b x45 1 3 粗体 print data x1d x21 x01 3 设置倍高 sprintf buf 36s sjr print data buf strlen buf print data x1b x45 0 3 解除粗体 print data x1d x21 x01 3 设置倍高 sprintf buf n print data buf strlen buf print data x1d x21 x00 3 设置不倍高 sprintf buf n print d ata buf strlen buf print data x1d x21 x01 3 设置倍高 sprintf buf 业务员 print data buf strlen buf print data x1b x45 1 3 粗体 print data x1d x21 x01 3 设置倍高 sprintf buf 12s czr print data buf strlen buf print data x1b x45 0 3 解除粗体 print data x1d x21 x01 3 设置倍高 sprintf buf 名称 print data buf strlen buf print data x1b x45 1 3 粗体 print data x1d x21 x01 3 设置倍高 sprintf buf 16s netname print data buf 16 print data x1b x45 0 3 解除粗体 print data x1d x21 x01 3 设置倍高 sprintf buf n print data buf strlen buf 33 print data x1d x21 x00 3 设置不倍高 sprintf buf r n print data buf strlen buf 1 print data x1b x61 x01 3 设置居中 print data x1b x45 0 3 解除粗体 print data x1d x21 x01 3 设置倍高 sprintf buf 日期 print data buf strlen buf print data x1b x45 1 3 粗体 print data x1d x21 x01 3 设置倍高 sprintf buf 10s r n r n r n date print data buf strlen buf print send void print send void unsigned short pack len PrintDataLen 2 unsigned short crc crc crc16 PrintData PrintDataLen TXdatas char x1F x1B 2 TXdatas char TXdatas char TXdatas PrintData PrintDataLen char result 5 if WaitForStr x1F x1B x01 x00 x00 3 return static unsigned short crc16 void buf unsigned short len define FCS16 ch last fcs last fcs 8 crc16table last fcs ch unsigned short crc 0 xFFFF unsigned short int i 0 for i 0 i len i crc FCS16 ptr crc return crc 34 static const unsigned short crc16table 256 0 x0000 0 x1189 0 x2312 0 x329b 0 x4624 0 x57ad 0 x6536 0 x74bf 0 x8c48 0 x9dc1 0 xaf5a 0 xbed3 0 xca6c 0 xdbe5 0 xe97e 0 xf8f7 0 x1081 0 x0108 0 x3393 0 x221a 0 x56a5 0 x472c 0 x75b7 0 x643e 0 x9cc9 0 x8d40 0 xbfdb 0 xae52 0 xdaed 0 xcb64 0 xf9ff 0 xe876 0 x2102 0 x308b 0 x0210 0 x1399 0 x6726 0 x76af 0 x4434 0 x55bd 0 xad4a 0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论