检测一个网站用什么软件做的方法/100个商业经典案例
字符串指令的格式
例子1就成功发送了指令 例子2就是发送的字符串有误 查询当前位置就会在附加信息中返回当前座位的坐标
第一个·指令的参数就是闪灯的两个参数 如第一个示例就是10ms On Time 第二个就是Off Time
使用标准库来接收字符串命令
字符串指令的接收
因为一个指令就是一行 所以可以调用PAL库的接口 PAL_USART_ReadLine 读取这个字符串指令 首先需要声明一个数组 就把读到的字符指令放到这个字符数组里面 超时值为0因为在进程函数里
预处理
因为接收到的指令是字符串所以有\r\n 要把这些无用的信息去掉 在c语言中字符串的末尾为\0代表字符串的结束 所以只需要在字符串倒数第二个位置添加字符\0就可以去除掉没用的信息 使用strlen可以得到字符串的长度
数据的解析
收到指令后把字符串进行解析 分别是指令的名称和后边的两个参数 首先要分隔开然后把对应的数据存储在对应的变量里面
解析指令名称
第一个函数接口就是查找字符 char*strchr 第一个参数是要查找的字符串数组 第二个是要查找的字符 如果找到了就返回一个指针指向要查找的字符的位置 如果查找不到就返回0 第二个函数接口就是 strcmp把两个字符串进行比较 如果相等就返回0
首先ptr指向字符串数组的第一个字符 (char * ptr = cmdline) 然后又定义一个指针指向字符串数组的第一个字符 然后ptr = strchr(cmdline,’ ’)就是要查找字符 空格 ‘ ‘ 然后返回一个指针 = ptr 就是ptr指向要查找的字符 空格
然后再ptr指向的位置写入\0 就得到了指令的名称
然后把这个字符数组(只剩下指令名称)和两个指令对比 做对应的动作即可
解析指令参数
第二个函数接口就是 atoi 就是传入一个字符 就返回这个字符对应的数字 当提取玩指令名称后 ptr来到了图中位置 此时ptr指向一个字符 右上角的程序首先声明了两个指针变量 用来接收字符串指令的两个参数 然后第一个指针指向ptr 也就是第一个字符 然后去搜寻剩下字符串的空格 调用函数strchr(ptr,‘ ’ )使得ptr指向剩余的字符串中的空格 ptr位置如图所示
然后在prt指向的位置写入\0 然后再向后移动
arg2指向ptr 此时就把指令字符串分为了三个部分 cmdName字符串数组只有指令名称 SetBlinkParam 第二个字符串数组arg1 只有10 第三个字符串数组只有1000
app_cmd.c
#include "app_cmd.h"
#include "stm32f10x_pal_usart.h"
#include <string.h>
#include "app_blinky_led.h"
#include <stdlib.h>static PalUSART_HandleTypeDef hUSART;void App_Cmd_Init(void)
{NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);hUSART.Init.BaudRate = 115200;hUSART.Init.USARTx = USART3;hUSART.Init.USART_WordLength = USART_WordLength_8b;hUSART.Init.USART_Parity = USART_Parity_No;hUSART.Init.USART_StopBits = USART_StopBits_1;hUSART.Init.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;hUSART.Init.USART_IRQ_PreemptionPriority = 0;hUSART.Init.USART_IRQ_SubPriority = 0;hUSART.Init.TxBufferSize = 128;hUSART.Init.RxBufferSize = 128;hUSART.Init.Advanced.LineSeparator = LineSeparator_CRLF;PAL_USART_Init(&hUSART);}
void App_Cmd_Proc(void)
{ char *ptr;const char*cmdName;//用来存储指令名称char cmdline [64];if( PAL_USART_ReadLine(&hUSART,cmdline,64,0) > 0)//返回值大于就接收到一行字符串了{cmdline[ strlen(cmdline)-2] = '\0'; //预处理 删除行尾的\r\nptr = cmdline;cmdName = ptr; //这样cmdName就是只剩下指令名称的数组了ptr = strchr(cmdline,' ');if(ptr != 0){*ptr = '\0';//取值改成\0ptr++;}if(strcmp(cmdName,"SetBlinkParam") ==0 ){const char *arg1,*arg2;//解析第一个参数arg1 = ptr;ptr = strchr(ptr,' ');*ptr = '\0';ptr++;//解析第二个参数arg2 = ptr;App_BlinkyLED_SetOnTime(atoi(arg1));App_BlinkyLED_SetOffTime(atoi(arg2));//OK\r\n\r\nPAL_USART_SendString(&hUSART,"OK\r\n\r\n"); //表示指令执行成功了} //修改闪灯参数else if(strcmp(cmdName,"GetBlinkParam") ==0) {//OK\r\nOn=%d,Off=%d\r\n 返回参数PAL_USART_Printf(&hUSART, "OK\r\nOn=%d, Off=%d\r\n", App_BlinkyLED_GetOnTime(),App_BlinkyLED_GetOffTime());App_BlinkyLED_GetOnTime();//获取亮灯时间App_BlinkyLED_GetOffTime();//获取灭灯时间}//获取闪灯参数else //返回错误 ERROR,cmd name not support{PAL_USART_Printf(&hUSART,"ERROR, cmd Name not supported\r\n\r\n");}}}void USART3_IRQHandler(void)
{PAL_USART_IRQHandler(&hUSART);}
app_cmd.h
#ifndef __APP_CMD_H__
#define __APP_CMD_H__#include "stm32f10x.h"void App_Cmd_Init(void);
void App_Cmd_Proc(void);#endif
相关文章:

字符串指令集
字符串指令的格式 例子1就成功发送了指令 例子2就是发送的字符串有误 查询当前位置就会在附加信息中返回当前座位的坐标 第一个指令的参数就是闪灯的两个参数 如第一个示例就是10ms On Time 第二个就是Off Time 使用标准库来接收字符串命令 字符串指令的接收 因为一个指令就是…...

行云海CMS SQL注入漏洞复现
0x01 产品简介 行云海cms是完全开源的一套CMS内容管理系统,简洁,易用,安全,稳定,免费。 0x02 漏洞概述 行云海cms中ThinkPHP在处理order by排序时可利用key构造SQL语句进行注入,LtController.class.php中发现传入了orderby未进行过滤导致sql注入。攻击者除了可以利用 SQL 注入…...

窗口函数之 first_value() 和 last_value()
这次,我要从**last_value()**开始写! last_value() 众所周知,first_value() 和 last_value() 的作用是返回窗口中某个字段的第一行的值和最后一行的值。 但是在应用的时候,突然发现使用last_value() 返回了不止一条数据&#x…...

习题练习讲解
前言:这又是一个新坑,算上之前的4个坑这是第五个坑(1、C/C的讲解,2、C语言小游戏,3、大学生活,4、假哲家因为某些原因没GS),这个就是发一些自己在刷题的过程中遇到自己感觉还不错的习…...

C++STL的string模拟实现
文章目录 前言string的成员变量成员函数构造函数拷贝构造赋值重载 模拟实现string各种接口print迭代器普通迭代器const迭代器 string比较大小push_backinsert 和 eraseinserterase reserve和resizereserveresize swapfindcout和cincoutcin 前言 今天要讲string的底层实现&…...

基于ZLMediaKit的webrtc实时视频传输demo搭建
环境 ubuntu 20.04 gcc version 9.4.0 cmake version 3.16.3 部署ZLMediaKit流媒体服务器 安装openssl 首先可以检查一下自己的openssl的版本如果是1.1.1以上就可以忽略这一步 wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz tar -xvzf openssl-1.1.1k…...

LeetCode双指针:有序数组中的单一元素
LeetCode双指针:有序数组中的单一元素 题目描述 给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。 请你找出并返回只出现一次的那个数。 你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复…...

熬夜会秃头——Beta冲刺总结随笔
这个作业属于哪个课程2301-计算机学院-软件工程社区-CSDN社区云这个作业要求在哪里团队作业—beta冲刺事后诸葛亮-CSDN社区这个作业的目标总结Beta冲刺团队名称熬夜会秃头团队置顶集合随笔链接熬夜会秃头——Beta冲刺置顶随笔-CSDN社区 目录 一、Beta冲刺开始前设立的任务完成…...

C++函数模板案例
利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序排序规则从大到小,排序算法为选择排序分别利用char数组和int数组进行测试 #include<iostream> using namespace std;template<class T> void myswap(T& a, T& b) {T…...

同旺科技 USB TO RS-485 定制款适配器--- 拆解(三)
内附链接 1、USB TO RS-485 定制款适配器 ● 支持USB 2.0/3.0接口,并兼容USB 1.1接口; ● 支持USB总线供电; ● 支持Windows系统驱动,包含WIN10 / WIN11系统32 / 64位; ● 支持Windows RT、Linux、Mac OS X、Windo…...

Vue学习计划-Vue2--Vue核心(六)过滤器和自定义指令
1. 过滤器 定义:对要显示的数据进行特定格式转换再显示(适用于一些简单逻辑的处理)语法: 注册过滤器:Vue.filter(name, callback) 或 new Vue{filters:{}}使用过滤器:{{ xx | 过滤器名 }} 或 v-bind:属性 …...

Codeforces Round 913 (Div. 3) (A-G)
后天就是 I C P C ICPC ICPC杭州站了,今天把之前做的 d i v 3 div3 div3题补一下,打完这场杭州站这赛季除了 E C F i n a l EC\,\,Final ECFinal就结束了,以后应该要多打 c f cf cf比赛练习保持手感,争取下赛季冲一下金牌。 感觉这…...

CSS——sticky定位
1. 大白话解释sticky定位 粘性定位通俗来说,它就是相对定位relative和固定定位fixed的结合体,它的触发过程分为三个阶段 在最近可滚动容器没有触发滑动之前,sticky盒子的表现为相对定位relative【第一阶段】, 但当最近可滚动容…...

Redis hash表源码解析
1、 整体数据结构 链式hash解决hash冲突、采用渐进式hash来完成扩容过程。 /** 哈希表节点*/ typedef struct dictEntry {// 键void *key;// 值union {void *val;uint64_t u64;int64_t s64;} v;// 指向下个哈希表节点,形成链表struct dictEntry *next;} dictEntry;…...

dll动态链接库【C#】
1说明: 在C#中,dll是添加 【类库】生成的。 2添加C#的dll: (1)在VS中新建一个Windows应用程序项目,并命名为TransferDll。 (2)打开Windows窗体设计器,从工具箱中为窗体…...

Linux 系统设置cpu频率
source_code: https://github.com/emagii/cpufrequtils cpufreq-set - A small tool which allows to modify cpufreq settings.(修改内存频率的工具) cpufreq-set allows you to modify cpufreq settings without having to type e.g. “/sys/devices…...

git基本概念
一、版本控制概念 1.1 什么是版本控制 1.1.1 手动管理文件版本 1.1.2 版本控制软件 概念:版本控制软件是一个用来记录文件发生的变化,以便将来查阅特定版本修订情况的系统,有时也叫“版本控制系统”。通俗的理解就是把手工管理文件版本的方…...

多个HTML属性
在HTML中,属性用于提供有关HTML元素的附加信息。在这篇文章中你将学习多个HTML属性,它们可以增强网站的视觉吸引力。 接下来开始吧!🚀 Accept 属性 您可以将accept属性与<input>元素(仅用于文件类型ÿ…...

基于运算放大器的电压采集电路
一、运算放大器 运放推导的两个重要概念:虚短、虚断。 1、差分放大器 以差分放大器为例进行推导分析。 虚断–运放的"-“端、”“端的引脚电流接近为0; 根据基尔霍夫电流定律可知:iR1iRF,iR2iR3; iR1(Ui1-(V-…...

数字图像处理(实践篇) 十六 基于分水岭算法的图像分割
目录 一 分水岭算法 二 利用OpenCV实现分水岭算法的过程 三 实践 一 分水岭算法 基于任何灰度图像都可以视为地形表面,其中高强度表示山峰和山丘,而低强度表示山谷。首先,开始用不同颜色的水(标签)填充每个孤立的山…...

快速学习PyQt5的高级自定义控件
Pyqt5相关文章: 快速掌握Pyqt5的三种主窗口 快速掌握Pyqt5的2种弹簧 快速掌握Pyqt5的5种布局 快速弄懂Pyqt5的5种项目视图(Item View) 快速弄懂Pyqt5的4种项目部件(Item Widget) 快速掌握Pyqt5的6种按钮 快速掌握Pyqt5的10种容器&…...

Python中读写(解析)JSON文件的深入探究
目录 一、引言 二、如何读取JSON文件 三、如何写入JSON文件 四、如何解析JSON字符串 五、错误处理和异常处理 六、使用第三方库提高效率 七、总结 一、引言 在Python中,我们经常使用JSON(JavaScript Object Notation)格式来存储和传输…...

我获取股票和期货数据的常用函数
记录一下获取数据所使用的函数,以防止遗忘和方便查找。 # 获取掘金的数据 # 需要打开并登陆掘金终端 def get_data_juejin(symbol"bu2112",start"2021-8-1",end"2021-8-30 23:00:00",frequency"1800s",fields"eob,sy…...

高并发场景下的httpClient使用优化技巧
1. 背景 我们有个业务,会调用其他部门提供的一个基于http的服务,日调用量在千万级别。使用了httpclient来完成业务。之前因为qps上不去,就看了一下业务代码,并做了一些优化,记录在这里。 先对比前后:优化…...

用php上传图片到阿里云oss
如果你想自动创建目录并将文件上传到新的目录下,你可以使用阿里云 OSS 的 createObject 方法来实现。下面是更新后的示例代码: php <?php require_once __DIR__ . /vendor/autoload.php; // 引入 SDKuse OSS\OssClient; use OSS\Core\OssException;…...

服务器适合哪些使用场景_Maizyun
服务器适合哪些使用场景 在当今的数字化时代,服务器作为互联网基础设施的核心组件,被广泛应用于各种场景。本文将探讨服务器适合哪些使用场景。 一、Web服务器 Web服务器是服务器中最常见的一种,用于托管和运行网站。它负责处理来自客户端…...

发布“最强”AI大模型,股价大涨,吊打GPT4的谷歌股票值得投资吗?
来源:猛兽财经 作者:猛兽财经 谷歌在AI领域的最新进展,引发投资者关注 在谷歌-C(GOOGL)谷歌-A(GOOG)昨日发布了最新的AI大模型Gemini后,其股价就出现了大幅上涨,更是引发了投资者的密切关注&a…...

年度工作总结怎么写?掌握这些年终总结万能公式,让你的报告出彩无比!
光阴似箭,日月如梭,时间总是不疾不徐地向前奔去,转眼就来到了2023年的最后一个月,12月一到,上班族和打工人又要开始忙活工作总结的事情~ 工作总结,不仅是一年工作的回顾,更是未来规划的起点。你…...

常用Nmap脚本
端口扫描类脚本 Nmap是一款非常流行的端口扫描工具,它可以帮助渗透测试工程师识别目标网络上开放的端口,并提供有关这些端口的详细信息。Nmap还提供了一系列基于脚本的功能,这些脚本可以扩展Nmap的功能,使其能够更深入地探测目标网…...

在pom.xml中添加maven依赖,但是类里面import导入的时候报错
问题: Error:(27, 8) java: 类TestKuDo是公共的, 应在名为 TestKuDo.java 的文件中声明 Error:(7, 23) java: 程序包org.apache.kudu不存在 Error:(8, 23) java: 程序包org.apache.kudu不存在 Error:(9, 23) java: 程序包org.apache.kudu不存在 Error:(10, 30) jav…...