竞赛无人机搭积木式编程(四)---2023年TI电赛G题空地协同智能消防系统(无人机部分)
竞赛无人机搭积木式编程(四)
---2023年TI电赛G题空地协同智能消防系统(无人机部分)
无名小哥 2023年9月15日
- 赛题分析与解题思路综述
飞控用户在学习了TI电赛往届真题开源方案以及用户自定义航点自动飞行功能方案讲解后,能基于二次开发模式中已有的飞行控制API函数,即自动飞行支持函数和导航控制函数去实现特定赛题飞行动作、轨迹、航点等任务,上述内容是学生在备赛阶段学习无人机二次开发时的必备技能,对这部分不熟悉的可以回顾下前几讲的教程。
针对2023年TI电赛的无人机赛题“空地协同智能消防系统”这一具体任务,简单可以分为以下三个部分的设计:
- 无人机自主飞行任务设计
- 消防车自动运行与灭火任务设计
- 模拟火源的任务设计
- 无人机自主飞行任务设计概述
在无人机自主飞行任务设计中,关于实现基础部分飞行功能,用户可以无需编写自主飞行任务代码,直接利用程序中已有的用户自定义航点飞行功能,去通过按键或者地面站设置航点坐标即可完成基础部分飞行任务,有且仅需要做的工作是写IO控制去驱动激光笔点亮、串口通讯用数传去实时发送位置等信息给小车平台就可以,基础部分的无人机飞行任务设计只需要做很少的工作量就可以把分数拿满。
发挥部分无人机自主飞行任务设计分为航点遍历、底部视觉色块跟踪对准、驱动舵机实现投放动作,同样这三个元素在往届的赛题中均有涉及,躺赢者PRO飞控有与之配套的相关代码接口可以直接调用,如果用户在平常的训练中有跟着教程一路扎扎实实学习下来,自己编程去实现特定任务组合的任务代码应该也是驾轻就熟,对于熟练掌握的学生来讲就是用模块化的代码去搭积木的工作。
- 消防车自动运行与灭火任务设计概述
消防车自动运行与灭火任务的设计中,要求小车在行驶达到火源的过程中不得碾压街区边界线,这点需要小车事先规划好从出发点G0前往火源G处的中间路径点。小车平台上可搭载机载计算机通过激光雷达/深度相机实现全局定位,需要做的工作是实现航点遍历+视觉识别后激光笔对准,可加以云台辅助控制激光笔,实现在某一范围内激光笔动作,目的是实现快速的灭灯,具体云台单轴还是双轴需要根据实际做的模拟火源光敏电阻分布情况来。也可以不需要云台直接让视觉传感器和激光笔同轴安装,小车在视觉对准火源的过程中照射到光敏电阻就可以使得火源熄灭。
- 模拟火源任务的设计
自制模拟火源中要求用电池供电的红色光源去作为模拟火源,模拟火源的亮灭可以用激光笔持续照射去控制,持续照射2秒左右开启,再持续照射2秒左右关闭,同时对模拟火源的尺寸和形状有一定的要求。
参赛学生可以通过自己熟练的任意一款单片机,简单设计基于灰度传感器、光敏传感器分压电路,加上MOS管驱动电路,编写AD电压采集、IO驱动程序,去实现这一任务,这部分代码量非常小,只要是学过单片机、懂基础的电路硬件知识的同学都能实现。设计虽然简单但是也有一些设计细节要点需要注意:
- 红色光源的强度要足够,确保能满足无人机在不同环境光线下都能稳定识别。如果无人机检测火源不可靠,意味着发挥部分的无人机释放灭火包、消防车运行部分的得分会全部丢掉,即使你的无人机和小车运行的又快又稳。相当于仅可拿到基础部分的分数,从实际比赛来看,很有些队伍出现了现场火源检测不到,只拿到了基础分数。由于国测现场无人机有部分队伍现场出现炸机情况,国测现场基本只要你飞机能跑完基础部分就是国一,虽然在奖项上来看都是一等奖,但是为了不给自己留遗憾,完全可以通过合理设计光源信息避免。针对23年电赛无人机赛题中只需要检测单一火源信息的情况,可以采用红色光源+红外光源结合的设计,机器视觉模组加上红外截止滤光片能保证稳定检测识别。
- 遮光罩的材质与遮光罩的尺寸影响无人机和消防车对模拟火源的识别,为了增加红色LED灯作为光源时的发光面积和聚光效果,通常采用聚光环或者手工折叠锡箔纸去实现灯罩的设计,所以灯罩需要有一定高度并且不透光。同时发光灯珠是在灯罩底部,使得消防车上安装的摄像头从侧面上就难以看得到模拟光源灯珠发出来的光,故而消防车上的激光笔对模拟火源的照射也无法实现。实际比赛中看到有些学校采用的透光的灯罩或者将灯罩外侧单独涂红色便于小车去检测模拟火源。
- 模拟火源上光敏电阻容易对无人机上激光笔照射做出错误响应,题目中要求的是消防车照射火源时,火源才允许熄灭,但是实际赛题中在无人机识别到火源后,也需要用激光笔去照射模拟火源区并进行投放灭火包的这一动作。为了防止无人机激光笔照射到光敏电阻时,模拟火源的提前熄灭,通常需要让灯罩截面足够大,俯视投影能覆盖底下整个电路板部分,防止无人机激光笔的直射造成的误触发。或者直接将光敏电阻朝下能有效避免无人机激光笔的影响,通过调整消防车激光笔的到同一安装高度去实现稳定照射并检测。
- 光敏电阻组成的分压电路稳态电压输出值受到环境光线影响需要现场标定,由于不同环境光线下光敏输出阻抗存在差异,因此程序里面检测阈值需要现场标定,实际可以采用按键或者电位器进行现场标定。当然如果在光敏电阻朝下并且底板为深色的情况下,可无需标定。
- 激光笔的光斑比较小,需要多个光敏电阻均匀分布才能确保激光笔照射到后实现灭火,由于没办法保证激光笔光斑能严格对准某一区域的光敏电阻,往往需要依靠灯罩、电路板的间接反射才能照射到光敏电阻,并且题目要求要持续不间断照射2S才行,实际小车很难做到这一点,故可以设计两组检测回路,比如单独用一路灰度传感器去作为2S持续照射的去点亮或者关闭,另外一路光敏回路作为消防车灭火时用,只要有激光笔照射到光敏上就可以触发光源熄灭条件。
综上所述,学生在实现2023年TI电赛空地协同智能消防系统中,针对无人机自主飞行任务设计,对于平时有积累并有掌握往届真题、案例demo的同学难度基本可以忽略,只需要把通过无线数传传输无人机状态给小车,小车发送ADC按键键值去无线操控无人机解锁、上锁、SDK、降落后,基本无人机部分的工作量就能完成。消防车如果搭载有机载计算机全局定位的情况下航点遍历、视觉对准、舵机云台控制等这些属于常规项,用通用的SLAM小车套件实现难度也不大,当然没有SLAM定位情况下,单靠IMU+编码器组成的里程计系统,在选取摩擦力大的轮胎情况下也同样可以完成。最后单看模拟火源部分工作量也很少,除了上面说的一些细节要注意,对于普通电子信息相关专业学生能高效率完成。模拟火源熄灭的评分只占很少一部分,消防车能视觉对准火源照射,火源没有熄灭也不会影响学生去拿国奖。毕竟有些省份的无人机赛题只要发挥部分小车能动起来就能推优综测,综测过了,无人机国测基础部分能飞现场不炸机基本就是稳拿国一。
虽然赛题实现拆分来看每一项的工作量都不算大,单独某一项的难度可能还比不上大三大四学年的一个专业相关课程设计,但是这些都是建立在训练备赛阶段熟练掌握的已有资源的前提下。由于涉及的三个部分需要独立设计方案综合考量,并且彼此之间需要联合调试,整体上的工作量会很大,比赛阶段时间上会非常赶,特别是在自己实验室只有一组无人机队伍参赛的情况下,三个人能做好分工的情况下时间都显得捉襟见肘。
来年备战比赛的学生可以看看实际每个省无人机国赛出线或者省奖排名靠前的队伍,能取得好成绩的很多都是该校有安排多组无人机参赛队伍,像西交、上大(SHU)、东大(SEU)、重大、北邮、桂电、山大(SDU)、哈工大、南工程、杭电等这样的无人机赛题方向传统强队,多年实力霸榜垄断该省份的无人机出线名额。同赛题多组参赛队伍的好处是彼此硬件方案接近,学校资源一致,虽然电赛要求每组队伍独立参赛,但是实际很难避免实验室为了确保出线名额,其它队伍参考种子队伍的方案去比赛。这种情况下就有更多的人手去做类似消防车、模拟火源基础服务的工作,比如一个实验室有三组队伍,这就相当9个人做了3个人的活,碰到今年每项都比较基础只是总工作量大的赛题,多组队伍参赛的学校想不出线都难。无人机赛题多组队伍参赛的结果好处就是能分担工作量,学生有更多的时间去做优化,做的好的情况下就是集体出线,完全不给同省其它高校无人机参赛队伍任何机会。
单看控制方向题目,由于无人机赛题相对小车或其它控制赛题经费开销巨大,一台搭载机载计算机支持激光雷达SLAM/T265定位的无人机外加上备用件耗材基本都要到1w往上走,外加当下经费吃紧、报销流程复杂,综合来看有实力组织多组参赛队伍去做无人机赛题的高校并不多。往往需要持续多年的人员经费投入才能取得好的成绩,当然也有一些首年使用NC360竞赛无人机开发平台就获得国奖、省一的同学,这部分相对比较少,每年都只有典型的几组,更多的是需要做好传承帮带,积累资源、持续投入迭代,这样自己的学校才会在电赛无人机赛题上有一席之地。
另外纵观这么多年的电赛无人机赛题得奖情况,还有一个现象就是有些省份出线和排名靠前的队伍并不一定是该省的头部985、211高校,有些省份双非、普通二本、民办独立高校的无人机获得国奖、省一的也很多,特别是在西北、西南和部分南方省份更为明显,经过以往调查来看这些学校往往有着较为充裕的经费支持,持续的供应能让这些学校的学生能用上更为可靠的硬件平台、定位方案、机载计算机平台,平时能做多套方案验证去高效率的学习,不会因为一时的炸机而畏手畏脚进展缓慢,在备战电赛无人机也更有底气,平常处理的问题多,比赛阶段团队协作运用综合能力,选择合适方法去高效率的解决实际问题就会更得心应手。
学生的能力固然重要,但是没有学校、实验室、指导老师的持续的支持和经费投入,单凭学生的一腔热血很难持久。没有学校支持顶多就是某届某个学生能力出众凭个人能力拿个一等奖,没有持续的经费支持,后面没人接手,青黄不接后就很难再拿好名次了,特别是在前几年口罩期间这种传承断代、设备长期吃灰、临时抱佛脚、仓促应战的情况就更为明显。
- 无人机自动飞行任务的软件设计
- 第一阶段——自动起飞到航巡高度
uint8_t Auto_Takeoff(float target)//自动起飞到某一高度
函数输入参数target为目标高度,自动起飞任务分为两个线程,第一步为记录当前3维位置信息,作为导航初始原点位置。并且通过导航控制函数设置期望目标高度位置。第二步为实时检测高度偏差值,连续1S满足位置偏差在10cm以内后,函数返回值置1后,自动起飞到目标高度任务完成,当前的mode会加上task_select_cnt进而实现自主起飞任务完成后,会进入case 21/22执行航点遍历作业任务,其中task_select_cnt可以通过遥控器调节,方便现场执行不同的sdk任务。
- 基础部分——航点遍历作业任务
void Air_Ground_Extinguish_Fire_System_Basic(void)
第一步将高度期望设置成第巡逻高度180cm,水平位置期望为初始起飞时候的水平位置,并设置激光笔为持续闪烁,便于裁判判断飞机机身中心在地面上的投影位置,起飞点上方悬停时间设置为1S。
起飞点上方悬停1S后,会将键盘输入的第一个航点A点的水平坐标填入到期望的目标位置,随后飞机会执行从起飞点正上方飞向第一个航点A点的动作,在执行本任务中对水平位置误差进行实时检测,连续N次水平位置误差小于某一阈值,即可以认为到达A点正上方附近,满足达到A点条件后会将航点计数器flight_global_cnt2[n]自加,flight_subtask_cnt[n]置1,飞机会继续执行flight_subtask_cnt[n]==1中的任务,即刷新下一航点位置后再进入flight_subtask_cnt[n]==2中实时检测水平位置偏差,依次判断是否到达B、C、F、E、D航点。
当满足航点计数器flight_global_cnt2[n]>=block_navpoint_num_basic时表示所有区块都已经巡逻完毕,结束航点遍历后无人机继续执行返航降落。
无人机会执行返航动作,首先无人机飞到起飞点正上方,连续N次水平位置误差小于某一阈值即可认为达到起飞点正上方附近,满足水平抵达之后会执行原地降落至地面的任务,到达地面后无人机会满足地面检测条件自动上锁。
- 发挥部分——航点遍历+色块对准+投放动作任务
void Air_Ground_Extinguish_Fire_System_Innovation(void)
第一步将高度期望设置成第巡逻高度180cm,水平位置期望为初始起飞时候的水平位置,并设置激光笔为持续闪烁,便于裁判判断飞机机身中心在地面上的投影位置,起飞点上方悬停时间设置为1S,同时驱动排针PWM的预留PWM2对舵机进行控制实现夹住灭火包。在起飞点上方悬停完毕后会设置A点为目标航点,无人机会飞向A点。
达到A点之后的航点遍历过程,无人机会实时判断底部OPENMV视觉模拟火源情况,如果识别到了模拟火源,无人机会中止航点遍历的过程,进入色块对准模式。
线程计数器flight_subtask_cnt[n]赋值为5进入色块对准模式,为了避免初始识别到火源时位置偏差太大,调整过激,这里有对未知色块位置-速度控制器输出进行了限幅度。
色块对准的结束条件有两个,分别为时间约束和色块位置约束,无人机值执行色块对准的过程中,色块位置误差会逐渐收敛到0,如果连续N次满足色块位置误差比较小会提前结束色块对准过程。
结束色块对准后,无人机会记录当前的水平位置供后续消防车使用,之后无人机会调节高度到100cm。下降完毕后会原地悬停3S后驱动舵机投放灭火包。
投放完毕后更新火源信息,相关的坐标信息会通过串口数传发送给消防车。
最后会恢复到180cm巡逻高度,抵达后会继续识别到火源信息前的航点遍过程。
在巡逻完毕A、B、C、F、E、D后,会继续执行返航降落,这部分和基础部分代码一样,即flight_subtask_cnt为1~3的内容,故不再赘述,可参考基础部分解释。
最后给出小车无线发送ADC按键键盘AD值,消防车控制无人机解锁、上锁、SDK、自动降落的代码以及无人机发送三维位置、航程、模拟火源信息的代码段。
无线ADC按键使用相关操作教程方法见下方链接
小车上的ADC按键实现对无人机的控制与飞控发送航点/火情数据给小车平台的演示_哔哩哔哩_bilibili
由于本节内容过多,基于盘古TI MCU的多功能控制器实现的消防车的教程和制作模拟火源的教程单独作为一节给出。
相关文章:

竞赛无人机搭积木式编程(四)---2023年TI电赛G题空地协同智能消防系统(无人机部分)
竞赛无人机搭积木式编程(四) ---2023年TI电赛G题空地协同智能消防系统(无人机部分) 无名小哥 2023年9月15日 赛题分析与解题思路综述 飞控用户在学习了TI电赛往届真题开源方案以及用户自定义航点自动飞行功能方案讲解后&#x…...

深入理解JavaScript中的事件冒泡与事件捕获
在JavaScript中,事件是交互式网页开发中的关键概念之一。了解事件冒泡和事件捕获是成为一名优秀的前端开发者所必需的技能之一。本文将深入探讨这两个概念,解释它们是如何工作的,以及如何在实际应用中使用它们来处理事件。 一.什么是事件冒泡…...

纯css html 真实水滴效果
惯例,不多说直接上图 秉承着开源精神,我们将这段代码无私地分享给大家,因为我们深信,信息的共享和互相学习是推动科技进步的关键。我们鼓励大家在使用这段代码的同时,也能够将其中的原理、思想和经验分享给更多的人。 这份代码是我们团队用心…...
HBASE集群主节点迁移割接手动操作步骤
HBASE集群主节点迁移割接手动操作步骤 HBASE集群主节点指的是包含zk、nn、HM和rm服务的节点,一般这类服务都是一起复用在同一批节点上,我把这一类节点统称为HBASE集群主节点。 本文中使用了rsync、pssh等工具,这类是开源的,自己…...

TRB爆仓分析,套利分析,行情判断!
毫无疑问昨日TRB又成为涨幅榜的明星,总结下来,多军赚麻,空头爆仓,套利爽歪歪! 先说风险最小的套利情况,这里两种套利都能实现收益。 现货与永续合约的资金费率套利年化资金费率达到惊人的3285%——DeFi的…...
LVGL - RV1109 LVGL UI刷新效率优化-02
说明 前面好早写过一个文章,说明如何把LVGL移到RV1109上的操作,使用DRM方式!但出现刷新效率不高的问题! 因为一直没有真正的应用在产品中,所以也就放下了! 最近开发上需要考虑低成本,低内存的…...
5、布局管理器
5、布局管理器 一、流式布局 package com.dryant.lesson1;import java.awt.*;public class TestFlowLayout {public static void main(String[] args) {Frame frame new Frame();Button button1 new Button("bt1");Button button2 new Button("bt2");…...

What is a UDP Flood Attack?
用户数据报协议 (UDP) 是计算机网络中使用的无连接、不可靠的协议。它在互联网协议 (IP) 的传输层上运行,并提供跨网络的快速、高效的数据传输。与TCP(其更可靠的对应物)不同,UDP不提…...
多核 ARM Server 性能调优
概述 thinkforce ARM Server是多核心ARM服务器,硬件环境资源如下: CPU信息如下: yuxunyuxun:/$ lscpu Architecture: aarch64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian …...

oracle执行计划中,同一条语句块,在不同情况下执行计划不一样问题。子查询,union 导致索引失效。
场景: 需要获取部分数据集(视图)的业务时间最大值,希望只通过一条语句获取多个的最大值。 则使用select (视图1业务时间最大值),(视图2业务时间最大值),(视图3业务时间最大值) from dual 程序执行过程中,发现语句执行较慢,则进行s…...
【新的小主机】向日葵远程控制ubuntu
向日葵远程控制ubuntu 一、简介二、问题及解决方法2.1 向日葵远程连接Ubuntu22主机黑屏?2.2 Ubuntu如何向日葵开机自启?2.3 无显示器情况下,windows远程桌面连接Ubuntu? 三、待续。。。 一、简介 系统:ubuntu22.04.3 目的&#…...
在Android studio高版本上使用低版本的Github项目库报错未能解析:Landroid/support/v4/app/FrageActivity;
我在我的项目中有一个导包: // 基础依赖包,必须要依赖 沉浸式狀態欄 implementation com.gyf.immersionbar:immersionbar:3.0.0 但是我的as版本比较高,我使用这个导包里面的方法会直接报错: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/suppor…...

自动混剪多段视频、合并音频、添加文案的技巧分享
在如今的社交媒体时代,视频的重要性越来越被人们所重视。许多人喜欢记录生活中的美好瞬间,并将其制作成视频分享给朋友和家人。然而,对于那些拍摄了大量视频的人来说,一个一个地进行剪辑和合并可能是一项令人头痛的任务。但是&…...
学习笔记——BSGS
众所周知,北上广深是中国非常一线的城市,北京是首都,地处…… 正片开始! 一、BSGS基础算法 实现目标: A x ≡ B ( m o d P ) , ( gcd ( P , A ) 1 ) A^x\equiv B(\mod P),(\gcd(P,A)1) Ax≡B(modP),(gcd(P,A)1)…...

【AI视野·今日NLP 自然语言处理论文速览 第四十期】Mon, 25 Sep 2023
AI视野今日CS.NLP 自然语言处理论文速览 Mon, 25 Sep 2023 Totally 46 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers ReConcile: Round-Table Conference Improves Reasoning via Consensus among Diverse LLMs Authors Justin C…...

Linux C/C++下收集指定域名的子域名信息(类似dnsmap实现)
我们知道dnsmap是一个工具,主要用于收集指定域名的子域名信息。它对于渗透测试人员在基础结构安全评估的信息收集和枚举阶段非常有用,可以帮助他们发现目标公司的IP网络地址段、域名等信息。 dnsmap的操作原理 dnsmap(DNS Mappingÿ…...

linux-定时任务
目录 一、crond命令 1、什么是计划任务 2、crond服务的概念 3、crontab 二、at命令 1、at任务的概念 三、邮件服务 1、概念 2、启动postfix 四、mailx命令 1、三个概念: 2、交互式发邮件 3、非交互式发邮件 四、cron定时任务实践 1、系统定时任务配置…...
在Spring Boot项目中使用Redisson
在Spring Boot项目中使用Redisson Redisson简介 Redisson官网仓库 Redisson中文文档 Redission是一个基于Java的分布式缓存和分布式任务调度框架,用于处理分布式系统中的缓存和任务队列。它是一个开源项目,旨在简化分布式系统的开发和管理。 以下是…...

JavaScript 函数柯里化
🎶什么是柯里化 柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。 🎡简单的函数柯里化的实现 // ------------- 原函数…...

springboot实现ACL+RBAC权限体系
本文基于web系统的权限控制非常重要的前提下,从ALC和RBAC权限控制两个方面,介绍如何在springboot项目中实现一个完整的权限体系。 源码下载 :https://gitee.com/skyblue0678/springboot-demo 序章 一个后台管理系统,基本都有一套…...

19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...

USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...