网站的命名规则潍坊高新区建设局门户网站

diannao/2026/1/18 2:03:31/文章来源:
网站的命名规则,潍坊高新区建设局门户网站,网站空间登陆,商贸网站源码1 概述 XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据#xff0c;并且每个块都使用一个校验和过程来进行错误检测。使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K并且每个块都使用一个校验和过程来进行错误检测。使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K它以1024字节一块来传输数据。YMODEM也是一种XMODEM的实现。它包括XMODEM-1K的所有特征另外在一次单一会话期间为发送一组文件增加了批处理文件传输模式。 本文利用C实现XYModem-1K协议并利用Qt串口类QSerialPort实现数据读写。 3 实现 3.2 XModem 该模块定义和实现了XModem协议。 3.2.1 XModem定义 class XModem : public Modem { public:XModem(): id_(0x0){}enum Code {NUL 0x00,SOH 0x01,STX 0x02,EOT 0x04,ACK 0x06,NAK 0x15,CAN 0x18,C 0x43,MAX 0xff};enum Size {CODE 1,ID 2,SIZE1 128,SIZE2 1024,CRC16 2,FRAME_HEAD CODE ID, //1 2FRAME_SIZE1 FRAME_HEAD SIZE1 CRC16,// 3 128 2 133FRAME_SIZE2 FRAME_HEAD SIZE2 CRC16, // 3 1024 2 1029DATA_SIZE1 FRAME_SIZE1 -1,DATA_SIZE2 FRAME_SIZE2 -1}; protected:virtual uint8_t get_code() 0;bool tx_send(uint8_t *data, uint32_t size, int max_count 5);bool tx_eot();bool tx_end();void tx_code(Code code);uint8_t wait_start(int max_count 5);void tx_cancel();uint8_t not_id(uint8_t id) { return 0xFF - id; }void next_id() { id_ next_id(id_); } private:uint8_t next_id(uint8_t id) { return (id 1) % 0x100; }void do_send(uint8_t const* data, uint16_t size);void do_eot() { tx_code(EOT); }void do_c() { tx_code(C); } private:uint8_t id_;uint8_t frame_[FRAME_SIZE2]; };纯虚接口: get_code 获取操作码Code 函数列表 tx_send 发送数据tx_eot 判断发送是否结束。tx_code 发送操作码wait_start 发送C码等待接收码SOH或STX 码tx_cancel 发送取消帧not_id 返回id的反码next_id 返回下一id 3.2.2 XModem实现 3.2.2.1 tx_send bool XModem::tx_send(uint8_t *data, uint32_t size, int max_count) {if(size SIZE2)return false;do_send(data, size);for(int i 0; i max_count; i){uint8_t code get_code();if(code MAX)break;else if(code NAK)do_send(data, size);else if(code ACK){next_id();return true;}}return false; }函数流程 发送数据获取操作码获得无效操作码函数返回获得重传操作码NAK重传数据获得确认操作码ACK说明发送成功设置下一id如果一直返回NAK重复max_count次后函数返回 3.2.2.2 tx_eot bool XModem::tx_eot() {do_eot();uint8_t code get_code();if(code NAK){std::cout need next file std::endl;do_eot();if(get_code() ACK)return true;}else if(code ACK){return true;}return false; }函数流程 发送EOT码获取操作码如果是NAK码重新发送EOT码如何是ACK码成功返回否则失败返回 3.2.2.3 tx_cancel void XModem::tx_cancel() {uint8_t frame[] { CAN, CAN, CAN, CAN, CAN };write(frame, sizeof(frame)); }函数流程 构造包含5个CAN取消码帧发送取消码帧 3.2.2.4 tx_code void XModem::tx_code(Code code) {uint8_t frame[CODE] { code };write(frame, CODE); }函数流程 构造包含1个操作码帧发送操作码帧 3.2.2.5 wait_start uint8_t XModem::wait_start(int max_count) {for(int i 0; i max_count; i){do_c();uint8_t code get_code();if(code ! MAX)return code;}return MAX; }函数流程 发送C开始码获取操作码如果获取到有效操作码则返回获取无效操作码重复max_count次上述操作后返回 3.2.2.6 do_send void XModem::do_send(uint8_t const* data, uint16_t size) {uint16_t data_size SIZE2;memset(frame_, 0, sizeof(frame_));frame_[1] id_;frame_[2] not_id(id_);if(size SIZE1)frame_[0] STX;else{frame_[0] SOH;data_size SIZE1;}memcpy(frame_[FRAME_HEAD], data, size);memset(frame_[FRAME_HEAD size], 0x1A, data_size - size);uint16_t crc crc16(frame_[FRAME_HEAD], data_size);frame_[FRAME_HEAD data_size] (uint8_t)(crc 8);frame_[FRAME_HEAD data_size 1] (uint8_t)(crc 0);write(frame_, (data_size SIZE1 ? FRAME_SIZE1 : FRAME_SIZE2)); }函数流程 设置frame头id和not_id根据大小判断是XModem帧还是1K-XModem帧如果数据不满则填充字节0x1A计算数据CRC值(包括填充字节)在帧末尾设置CRC值发送数据帧 Qt实现XYModem协议(二)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/90869.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

seo站长工具箱深圳外贸公司集中在哪

tar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。Linux打包命令_tartar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。常用格式:单个文件压缩打包 tar czvf my.tar.gz file1多个文件压缩打包 tar czvf my.tar.gz file1 file2,...(file…

汕尾手机网站设计奇网企业网站管理系统

1.说明:在WPF中,文件下载时需要显示下载进度,由于系统自带的条型进度条比较占用空间,改用圆形的进度条,需要在DrawingVisual上呈现。 运行的效果如图: private Point GetPointOnCir(Point CenterPoint, double r, doub…

做网站建设注册商标是多少类建设公司网站的好处

大家好,今天我们的主角是MyBatis,作为当前国内最流行的ORM框架,是我们这些crud选手最趁手的工具,赶紧来看看面试都会问哪些问题吧。基础1.说说什么是MyBatis?MyBatis logo先吹一下:Mybatis 是一个半 ORM(对…

网站功能调研方又圆网站建设

描述一下Vue.js的响应式数据绑定原理。 答案: Vue.js 使用 Observer、Compile 和 Watcher 三个组件来实现响应式数据绑定。Observer 负责监听数据对象的属性变化,Compile 负责解析模板指令并建立依赖关系,Watcher 则负责在数据变化时执行相应…

如何修改网站备案信息哪个网站做的最好

目录 1.基本概念 2.创建线程方式 2.1直接建立线程 2.2实现Runnable接口 3.3实现Callable接口 3.4 了解Future接口 Future模式主要角色及其作用 3.5实例化FutureTask类 3.实现线程安全 3.1定义 3.2不安全原因 3.3解决方案 3.4volatile与synchronized区别 4.极端情…

长春市建设工程造价管理协会网站wordpress wampserve

方法一:清空构建目录 重新设置一个新的构建目录(影子目录),或者清空当前目录的所有文件即可 方法二:修改配置文件(不推荐) 网上大部分的解决方案都是这个,直接打开找到并文件msvc…

dede中英文企业网站建设项目公告网站

在Python编程中,我们经常需要处理列表(list)。对于创建和操作这些数据结构,Python提供了很多强大的工具和语法糖,其中最引人注目的特性之一就是列表推导式(List Comprehension)。本文将深入探讨…

网站里面如何在新闻列表上显示hot微信公众平台开发商

文章目录 优先级队列的使用大堆小堆**注意** 优先级队列的模拟实现pushpopsizeemptytop 仿函数仿函数是什么pushpop 仿函数结合优先级队列的优势 优先级队列的使用 优先级队列本质是就是完全二叉树,是个堆.我们可以用优先级队列来取出一段序列中的前N个最大值. priority_queue…

温州网站建网络项目设计方案

需要对 OpenSSH 服务器和客户端进行相应配置。以下是具体步骤: 配置 OpenSSH 服务器的加密算法 1. 编辑 OpenSSH 服务器的配置文件: 打开 sshd_config 文件: sudo nano /etc/ssh/sshd_config2. 设置加密算法(Ciphers&#xff…

微信上微网站怎么做的wordpress官使用方法

文章目录 前言一、算数运算符二、赋值运算符()1.赋值运算符()2.复合赋值运算符 总结 前言 两种非常基础的运算符,看一下就懂,不需要过多的去深究细节 一、算数运算符 稍微着重看下 除法/ (不要…

申请专利的网站淘宝 网站开发 退货

学习框架&#xff0c;刚开始的时候最烦的就是一些配置文件&#xff0c;有很多需要配置的东西&#xff0c;今天把这些配置文件信息稍微整理一下&#xff0c;以后说不定会用的到。 web.xml文件 <?xml version"1.0" encoding"UTF-8"?> <web-app xm…

做电子外贸网站哈尔滨seo搜索排名优化

知识点总结 第一章&#xff1a;软件工程概述 1、软件的定义&#xff1a;在运行中能提供所希望的功能与性能的程序使程序能够正确运行的数据及其结构描述软件研制过程和方法所用的文档。 2、软件危机&#xff1a;软件开发的生产率远远不能满足客观需要。开发的软件产品往往不能…

广州网站建设推荐乐云seocms建站系统 下载

为什么80%的码农都做不了架构师&#xff1f;>>> 针对移动互联网应用的网络建设和优化 截至2013年3月,移动互联网的人均上网时长和PC互联网相比差距已经扩大了29%.PC互联网向移动端迁移的趋势进一步凸显.小米是一家专注于iPhone和Android等新一代智能手机软件…

荆州公司做网站织梦转WordPress插件

Linux零基础入门 列出文件/文件夹新建/切换路径查看当前路径重命名或者移动文件夹拷贝文件/文件夹删除文件夹设置环境变量编辑文本文件压缩和解压查看cpu的信息查看/杀死进程查看进程的CPU和内存占用重定向日志场景一场景二场景三场景四 列出文件/文件夹 命令&#xff1a;Ls(L…

爱站网关键词密度青岛新公司网站建设推广

在 js 中进行数学的运算时&#xff0c;会出现0.10.20.300000000000000004的结果&#xff0c;一开始认为是浮点数的二进制存储导致的精度问题&#xff0c;但这似乎不能很好的解释为什么在同样的存储方式下0.30.40.7可以得到正确的结果。本文主要通过浮点数的二进制存储及运算&am…

超能搜索引擎系统网站网页视频下载浏览器

源&#xff1a;STM8S和STM8L调试串口中断的注意点

如何利用网站模板做网站删除hao123主页

MessageBox.Show(); 显示消息窗口向用户展示消息。

黑山网站制作公司旅游网站建站

立即学习:https://edu.csdn.net/course/play/24458/296436?utm_sourceblogtoedu 什么是线程&#xff1f;&#xff08;以地铁为例&#xff09; 1.北京地铁、上海地铁、广州地铁称之为三个不同的进程&#xff1b;而上海1号线上海3号线称之为线程&#xff1b; 2.进程是资源单位&a…

无锡哪里做网站好铜陵seo

<?php 1.分页原理所需数据&#xff1a; 总记录数&#xff1a; $records mysql_num_rows() 每页显示&#xff1a; $pagesize 人为定义10 总页数&#xff1a; $pages $records/$pagesize 当前页&#xff1a; $page 自己选择2.分页的sql语句&#xff1a; SELECT * F…

做研学的企业网站郑州做网站公司电话

概念BIO 阻塞io&#xff0c;1.4之前NIO no-blocking io 非阻塞io&#xff0c;jdk1.4AIO 异步io&#xff0c;jdk1.7浏览器输入网址&#xff0c;敲下回车之后发生了什么&#xff1f;1.URL解析2.DNS解析概念&#xff1a;Domain Name System&#xff0c;域名系统&#xff0c;本质…