当前位置: 首页 > news >正文

WEB 手柄 http通信,mcu端解析代码 2024/7/23 日志

WEB 手柄

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>WEB遥控器</title>
</head>
<style>* {margin: 0;padding: 0;overflow-y: hidden;overflow-x: hidden;}body {background-color: #09f811;color: aliceblue;}#play {transform-origin: top left;position: absolute;}@media only screen 
and (min-device-width : 320px) 
and (max-device-width : 480px) {#play {transform: scale(0.5);}
}@media only screen 
and (min-device-width : 481px) 
and (max-device-width : 768px) {#play {transform: scale(0.7);}
}@media only screen 
and (orientation : portrait) 
and (min-device-width : 768px) 
and (max-device-width : 1024px) {#play {transform: scale(0.8);}
}@media only screen 
and (orientation : landscape) 
and (min-device-width : 768px) 
and (max-device-width : 1024px) {#play {transform: scale(0.9);}
}@media only screen 
and (min-width : 1224px) {#play {transform: scale(1);}
}#box {gap: 0;display: grid;grid-template-columns: repeat(3, 1fr);grid-template-rows: repeat(3, 1fr);}#box3 {gap: 0;display: grid;grid-template-columns: repeat(3, 1fr);grid-template-rows: repeat(3, 1fr);}div[id^="t"] {border-radius: 25px;margin: 10px;text-align: center;width: 100px;height: 100px;background-color: black;font-size: 50px;display: flex;align-items: center;justify-content: center;}#t1 {grid-column: 3;grid-row: 2;transform: rotate(90deg)}#t2 {grid-column: 2;grid-row: 2;}#t3 {grid-column: 1;grid-row: 2;transform: rotate(90deg);}#t4 {grid-column: 2;transform: rotate(90deg);}#t5 {transform: rotate(90deg);grid-column: 2;grid-row: 3;}#t6,#t7 {font-size: 30px;transform: rotate(90deg);}#t8 {grid-column: 3;grid-row: 2;transform: rotate(90deg);}#t9 {grid-column: 2;grid-row: 2;}#t10 {grid-column: 1;grid-row: 2;transform: rotate(90deg);}#t11 {grid-column: 2;transform: rotate(90deg);}#t12 {grid-column: 2;grid-row: 3;transform: rotate(90deg);}div[id^="t"]:active {transform:scale(0.2);background-color: rgb(243, 94, 8);}#wifi {position: absolute;background-color: black;border-radius: 25px;font-size: 50px;width: 50px;height: 50px;right: 0;}#wifi:active {transform: scale(0.5);}#set {display: none;height: 100vh;position: relative;z-index: 2;background-color: black;}#but {position: absolute;width: 100vw;height: 5vh;bottom: 0;}#but:active {transform: scale(0.4);}#MQTT {width: 100vw;height: 50vh;}#diva {display: flex;}#LED {margin: 0;padding: 0;}#dy {display: none;}#dvfas {display: none;}#about {height: 5vh;width: 100vw;position: absolute;bottom: 0;}#about>p{transform: rotate(90deg);}#abouta{position: absolute;display: block;width: 100vw;background-color: white;height: 100vh;display: none;color: black;}#abouta>p{transform-origin: 50vw 50vw;transform: rotate(90deg);position: absolute;top:5vh;right: 80vw;}#abouta>p:hover{color: rgba(241, 8, 8, 0.835);}</style><body><div id="play"><div id="box"><div id="t1">↑</div><div id="t2">⚪</div><div id="t3">↓</div><div id="t4">←</div><div id="t5">→</div></div><div id="box2"><div id="t6">启动</div><div id="t7">暂停</div></div><div id="box3"><div id="t8">上</div><div id="t9">⚪</div><div id="t10">下</div><div id="t11">左</div><div id="t12">右</div></div></div><button id="about"><p>关于</p></button><div id="abouta"><p>点击空白返回<br>联系我们:<br>邮箱
<br>祝福您生活愉快!</p></div><div id="wifi" >★</div><div id="set" ><h1>MQTT管理</h1><div id="MQTT"><form class="fr"><span>MQTT服务器:</span><input type="text" id="mqttserver" name="dz" placeholder="填入服务器地址"><br><span>MQTT端口号:</span><input type="text" id="pot" name="port" placeholder="填入端口号"><br><span>MQTT密匙码:</span><input type="text" id="pasa" name="pass" placeholder="填入MQTT连接密匙"><button type="button" onclick="connected()">连接</button></form><div id="diva"><span>连接状态:</span><svg width="30" height="30" viewBox="0 0 100 100"><circle id="LED" cx="30" cy="30" r="26" stroke="black" stroke-width="3" fill="red" />连接中...</svg></div><p id="ts"></p><br><i id="jsre"></i><div id="dy"><form><span>设置订阅主题:</span><input type="text" id="subqq" name="subqq" placeholder="填入订阅主题"><button type="button" onclick="subee()">订阅</button></form><p id="subts"></p></div><div id="dvfas"><form><span>设置发布主题:</span><input type="text" id="pubqq" name="pubqq" placeholder="填入需要发布的消息"><button type="button" onclick="pubee()">发布</button></form><p id="pubts"></p></div></div><button id="but">返回</button></div><script>for (var i = 1; i <= 12; i++) {document.getElementById("t" + i).addEventListener("click", function () {var xhr = new XMLHttpRequest();xhr.open("GET", "/?cmd=" + this.id, true);xhr.send();var str = document.getElementById(this.id).textContent;console.log(str);})}connected = () => {var geta = document.getElementById('mqttserver').value;var getb = document.getElementById('pot').value;var getc = document.getElementById('pasa').value;if (geta == "" || getb == "" || getc == "") {document.getElementById("ts").innerHTML = "请输入完整";return;};console.log(geta);console.log(getb);console.log(getc);var xhr = new XMLHttpRequest();var str = "/MQTT?dz=" + geta + "&port=" + getb + "&pass=" + getc;xhr.open("GET", str, false);xhr.send();if (xhr.status == 200) {var LED = document.getElementById("LED");LED.setAttribute("fill", "green");document.getElementById("jsre").innerText = "恭喜您,成功连接MQTT!";document.getElementById("ts").innerHTML = "连接成功";document.getElementById("dy").style.display = "block";} else { document.getElementById("ts").innerHTML = "连接失败"; };};function subee() {var gea = document.getElementById('subqq').value;if (gea == "") {document.getElementById("subts").innerText = "请输入完整";return;};console.log(gea);var xhr = new XMLHttpRequest();var str = "/subqq?subqq=" + gea;xhr.open("GET", str, true);xhr.onreadystatechange = function () {if (xhr.readyState == 4 && xhr.status == 200) {document.getElementById("subts").innerText = "订阅成功";document.getElementById("dvfas").style.display = "block";};};xhr.send();};function pubee() {var gea = document.getElementById('pubqq').value;if (gea == "") {document.getElementById("subts").innerText = "请输入完整";return;};console.log(gea);var xhr = new XMLHttpRequest();var str = "/pubqq?pubqq=" + gea;xhr.open("GET", str, true);xhr.onreadystatechange = function () {if (xhr.readyState == 4 && xhr.status == 200) {document.getElementById("pubts").innerText = "发布成功";};};xhr.send();};document.getElementById("wifi").addEventListener("click", function () {var h1 = document.getElementById("set");h1.style.display = "block";});document.getElementById("but").addEventListener("click", function () {var h1 = document.getElementById("set");h1.style.display = "none";});document.getElementById("about").addEventListener("click", function () {var abouta=document.getElementById("abouta");abouta.style.display="block";abouta.addEventListener("click",function(){abouta.style.display="none";});});</script></body></html>

相关文章:

WEB 手柄 http通信,mcu端解析代码 2024/7/23 日志

WEB 手柄 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>WEB遥控器</title> </head> &l…...

cmake中的正则表达式

以下字符或者字符组合在cmake的正则表达式中的特殊含义&#xff1a; ^ 匹配输入的开始 $ 匹配输入的结束 . 匹配任意一个字符 \<char> 匹配一个字符&#xff0c;如.匹配字符.&#xff0c;\匹配字符\&#xff0c;\a匹配字符a [ ] 匹配在括号里面的任意字符&#xff0…...

05. Java 三大范式

1. 前言 在面向对象语言中涉及到诸多的设计模式&#xff0c;例如单例模式、适配器模式&#xff0c;设计模式的存在是为了让系统中的代码逻辑更加清晰&#xff0c;帮助开发者建立更加健壮的系统&#xff0c;同时满足易修改特性和易扩展特性。数据库设计时也存在类似设计模式的通…...

opencv 按键开启连续截图,并加载提示图片

背景图小图 键盘监听使用的是pynput 库 保存图片时使用了年月日时分秒命名 原图&#xff1a; from pynput import keyboard import cv2 import time# 键盘监听 def on_press(key):global jieglobal guanif key.char a:jie Trueelif key.char d:jie Falseelif key.char…...

Android-- 集成谷歌地图

引言 项目需求需要在谷歌地图&#xff1a; 地图展示&#xff0c;设备点聚合&#xff0c;设备站点&#xff0c;绘制点和区域等功能。 我只针对我涉及到的技术做一下总结&#xff0c;希望能帮到开始接触谷歌地图的伙伴们。 集成步骤 1、在项目的modle的build.gradle中添加依赖如…...

Jvm是如何处理异常的

异常抛出 当Java程序运行时遇到无法处理的情况时,会抛出一个异常(比如在一个方法中如果发生异常),这时会创建一个异常对象,并转交给JVM,该异常对象包含异常名称,异常描述以及异常发生时应用程序的状态。创建异常对象并转交给JVM的过程称为抛出异常。 异常捕捉 当JVM检测…...

recursion depth exceeded” error

有些时候不可以用jax.jit装饰器 参考资料&#xff1a;使用 JAX 后端在 Keras 3 中训练 GAN |由 Khawaja Abaid |中等 (medium.com)...

虚拟现实和增强现实技术系列—Expressive Talking Avatars

文章目录 1. 概述2. 背景介绍3. 数据集3.1 设计标准3.2 数据采集 4. 方法4.1 概述4.2 架构4.3 目标函数 5. 实验评测5.1 用户研究5.2 我们方法的结果5.3 比较与消融研究 1. 概述 支持远程协作者之间的交互和沟通。然而&#xff0c;明确的表达是出了名的难以创建&#xff0c;主…...

网站验证:确保网络安全与信任的重要步骤

网站验证&#xff1a;确保网络安全与信任的重要步骤 引言 在数字时代&#xff0c;网站验证是确保网络安全和建立用户信任的关键措施。随着网络诈骗和恶意软件的日益增多&#xff0c;验证网站的真实性和安全性变得尤为重要。本文将探讨网站验证的重要性、常见的验证方法以及如…...

C语言——字符串比较函数strcmp和strncmp

目录 strcmp 函数原型如下&#xff1a; 示例 注意事项 strcmp自实现代码&#xff1a; strncmp 函数 函数原型&#xff1a; 参数&#xff1a; 返回值&#xff1a; 特点&#xff1a; 两者之间的区别和联系 strcmp strcmp 是 C 语言标准库中的一个函数&#xff0c;用于…...

redis的集群模式

目录 1. 为什么使用redis集群 2. 主从模式 2.1修改配置文件 2.2 开启三台redis服务 2.3配置主从关系 3. 哨兵模式 3.1 监控功能 3.2 选举的机制 3.3 准备条件 4. 去中心化模式 4.1 准备三主三从 4.2 启动redis 4.3 分配槽以及主从关系 4.4 命令行的客户端 redis提供…...

基于微信小程序+SpringBoot+Vue的青少年科普教学系统平台(带1w+文档)

基于微信小程序SpringBootVue的青少年科普教学系统平台(带1w文档) 基于微信小程序SpringBootVue的青少年科普教学系统平台(带1w文档) 这个工具就是解决上述问题的最好的解决方案。它不仅可以实时完成信息处理&#xff0c;还缩短高校教师成果信息管理流程&#xff0c;使其系统化…...

智能听觉:从任务特定的机器学习到基础模型

关键词&#xff1a;计算机听觉、音频基础模型、多模态学习、声音事件检测 声音无处不在&#xff0c;弥漫于我们生活的每一个角落。鸟儿向伴侣倾诉心意的歌声&#xff0c;浓缩咖啡机中蒸汽的嘶嘶作响&#xff0c;午后阳光下昆虫振翅的嗡嗡声&#xff0c;金属屋顶上雨滴跳跃的滴答…...

14、如何⽤DDD设计微服务代码模型

在完成领域模型设计后&#xff0c;接下来我们就可以开始微服务的设计和 落地了。在微服务落地前&#xff0c;⾸先要确定微服务的代码结构&#xff0c;也就是我 下⾯要讲的微服务代码模型。 只有建⽴了标准的微服务代码模型和代码规范后&#xff0c;我们才可以将 领域对象映射到…...

ArcGIS Pro SDK (九)几何 12 多面体

ArcGIS Pro SDK &#xff08;九&#xff09;几何 12 多面体 文章目录 ArcGIS Pro SDK &#xff08;九&#xff09;几何 12 多面体1 通过拉伸多边形或折线构建多面体2 多面体属性3 构建多面体4 通过MultipatchBuilderEx构建多面体5 从另一个多面体构建多面体6 从 3D 模型文件构建…...

二次元手游《交错战线》游戏拆解

交错战线游戏拆解案 游戏亮点即核心趣味 一、关键词&#xff1a; 回合制游戏、二次元、机甲、横板、剧情、养成、异星探索。 二、游戏亮点&#xff1a; 符合目标群体审美的原画。 三、核心趣味&#xff1a; 抽卡、肝或者氪金解锁新皮肤。 核心玩法及系统规则 核心玩法&…...

【BUG】已解决:Downgrade the protobuf package to 3.20.x or lower.

Downgrade the protobuf package to 3.20.x or lower. 目录 Downgrade the protobuf package to 3.20.x or lower. 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身…...

Java开发之Redis

1、非关系型数据库、快、高并发、功能强大 2、为什么快&#xff1f;内存单线程 非阻塞的IO多路复用有效的数据类型/结构 3、应用&#xff1a;支持缓存、支持事务、持久化、发布订阅模型、Lua脚本 4、数据类型&#xff1a; 5 种基础数据类型&#xff1a;String&#xff08;字…...

Java面试八股之 Spring Bean的生命周期

Spring Bean的生命周期 实例化&#xff08;Instantiation&#xff09;&#xff1a;Spring容器根据Bean定义信息创建Bean的实例&#xff0c;通常通过无参构造函数进行。 依赖注入&#xff08;Dependency Injection&#xff0c;DI&#xff09;&#xff1a;Spring容器按照Bean定…...

SQL中的函数

目录 前言 一、系统内置函数 1、数学函数 2、日期和时间函数 3、聚合函数 4、字符串函数 二、自定义函数 1、标量函数的创建与调用 2、内嵌表值函数的创建与调用 3、多语句表值函数的创建与调用 前言 函数是由一个或多个 T-SQL 语句组成的子程序&#xff0c;可用于封…...

LabVIEW多线程同步:队列、事件、信号量等核心机制详解与实战应用

1. 项目概述&#xff1a;为什么LabVIEW的多线程同步是开发者的必修课&#xff1f;如果你用过LabVIEW&#xff0c;肯定对它的图形化编程和并行执行能力印象深刻。但当你开始构建稍微复杂点的应用&#xff0c;比如一个需要同时采集数据、实时处理、记录日志和更新界面的测控系统时…...

如何高效下载30+文档平台资源:kill-doc文档下载工具完整指南

如何高效下载30文档平台资源&#xff1a;kill-doc文档下载工具完整指南 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档&#xff0c;但是相关网站浏览体验不好各种广告&#xff0c;各种登录验证&#xff0c;需要很多步骤才能下载文档&#xff0c;该脚本就是…...

088、机器人动力学:牛顿-欧拉法

机器人动力学:牛顿-欧拉法 从一次机械臂抖动说起 去年调试一台六轴协作机器人,空载运行还算平稳,一夹持3kg负载做高速圆弧插补,末端就开始高频抖动。PID参数调了三轮,陷波滤波器加了两个,效果都不理想。后来拆开关节看,发现电机电流波形在加减速阶段有明显的毛刺——这…...

ElevenLabs奥里亚文语音合规性警告:印度《2023语言技术法案》生效后,这4类商用场景必须重做语音备案

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs奥里亚文语音合规性警告的背景与紧迫性 ElevenLabs 作为领先的文本转语音&#xff08;TTS&#xff09;服务提供商&#xff0c;近期在其 API 文档与开发者控制台中新增了针对奥里亚文&#xf…...

C++定时器实战:从线程轮询到时间轮算法的演进与选型

1. 定时器技术选型的核心痛点 当我们需要在C项目中实现定时任务调度时&#xff0c;最直观的做法可能就是直接开个线程轮询了。我刚开始做网络服务开发时也这么干过&#xff0c;结果上线后CPU直接飙到90%——这就是典型的"新手陷阱"。实际上&#xff0c;定时器的实现方…...

【ElevenLabs情绪语音实战指南】:3步解锁开心语音API调用、情感强度微调与合规避坑全链路

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs开心情绪语音技术全景概览 核心技术能力 ElevenLabs 的开心情绪语音生成并非简单音调拉升或语速加快&#xff0c;而是基于多任务情感条件建模&#xff08;Multi-Task Emotional Conditionin…...

好用的昆明线上经营推广哪家好选

在数字化浪潮席卷的当下&#xff0c;昆明的企业和商家们越来越意识到线上经营推广的重要性。选择一家靠谱的线上经营推广公司&#xff0c;能够让企业在激烈的市场竞争中脱颖而出。那么&#xff0c;在昆明众多的推广公司中&#xff0c;哪家才是比较好的选择呢&#xff1f;今天&a…...

2026年实战指南:Jrebel本地与远程热加载的配置、排错与进阶场景

1. 热加载技术的前世今生 第一次接触热加载是在2016年&#xff0c;当时还在用Eclipse开发Spring项目。每次改完代码都要经历漫长的重启等待&#xff0c;直到同事推荐了JRebel这个神器。十年过去&#xff0c;热加载已经成为现代Java开发的标配&#xff0c;特别是在2026年的今天&…...

【限时技术白皮书】ElevenLabs藏文模型权重结构首度曝光:Transformer Decoder层中Tibetan Syllable Tokenization模块详解

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs藏文语音生成技术全景概览 ElevenLabs 作为全球领先的文本到语音&#xff08;TTS&#xff09;平台&#xff0c;目前尚未官方支持藏文&#xff08;བོད་སྐད་&#xff09;语音合成。其公…...

开源直播推流工具clawstage:模块化设计与核心实现解析

1. 项目概述&#xff1a;从“ClawStage”看开源直播推流工具的设计哲学最近在折腾直播推流方案时&#xff0c;我偶然发现了HooRii-OT团队在GitHub上开源的项目“clawstage”。这个项目名字挺有意思&#xff0c;“claw”是爪子&#xff0c;“stage”是舞台&#xff0c;合起来有种…...