Python通过串口收发文件
单位内外网是隔离的,USB对拷线被禁用,安全优盘使用太费事,就想到了通过串口传输文件.
import serial
from xmodem import XMODEM
import osdef Send_File(filepath, port='COM8', baudrate=115200):bn = os.path.basename(filepath)filesize = os.stat(filepath).st_sizestrSendFileCMD = "AFF_" + str(filesize) + "_" + bn + "\n"# 打开串口ser = serial.Serial(port, baudrate)# 定义YMODEM发送函数def send_ymodem(filename):def getc(size, timeout=1):return ser.read(size)def putc(data, timeout=1):return ser.write(data)modem = XMODEM(getc, putc)with open(filename, "rb") as f:status = modem.send(f)return status# 发送指令ser.write(strSendFileCMD.encode())# 发送文件status = send_ymodem(filepath)if status:print(f"文件发送成功:{filepath}")else:print(f"文件发送失败:{filepath}")# 关闭串口ser.close()def Recv_File(port='COM2', baudrate=115200):# 打开串口ser = serial.Serial(port, baudrate)# 定义YMODEM接收函数def recv_ymodem(filename):def getc(size, timeout=1):return ser.read(size) or Nonedef putc(data, timeout=1):return ser.write(data)modem = XMODEM(getc, putc)with open(filename, "wb") as f:status = modem.recv(f)return status# 循环监听指令while True:# 接收指令print("等待接收指令")strCMD = ser.read_until().strip().decode()print(strCMD)cmdlist = strCMD.split("_")cmd = cmdlist[0]filesize = cmdlist[1]filename = cmdlist[2]if cmd == "AFF":# 收到指令后开始接收文件print("开始接收文件")# 接收文件并保存status = recv_ymodem(filename)if status:print(f"文件接收成功:{filename}")else:print(f"文件接收失败:{filename}")# 继续监听指令continue# 其他指令print(f"收到指令:{cmd}")# 关闭串口ser.close()if __name__=="__main__":Send_File("D:/users.7z") #发送文件#Recv_File() #接收文件
上面是简单的文件传输代码.
我目前内外网传输最多的就是截图,内网通过串口给外网发送指令,外网根据指令截图,然后自动传回内网,不用切换电脑,不用插拔优盘,确实方便.
相关文章:
Python通过串口收发文件
单位内外网是隔离的,USB对拷线被禁用,安全优盘使用太费事,就想到了通过串口传输文件. import serial from xmodem import XMODEM import osdef Send_File(filepath, portCOM8, baudrate115200):bn os.path.basename(filepath)filesize os.stat(filepath).st_sizestrSendFile…...
[crash] cxa_pure_virtual 崩溃分析与原理
摘要:工作过程中处理线上的崩溃时发现了一例cxa_pure_virtual相关的crash,直接看堆栈基本山很容易确认是有异步调用导致出发了ABI的异常。但是对于为什么会触发cxa_pure_virtual虽然有大致的猜测但是没有直接的证据,因此本文主要描述触发该类…...
2023年学习Go语言是否值得?探索Go语言的魅力
关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力! 作为一门流行且不断增长的编程语言,Go语言在2023年是否值得学习呢?让我们来看看学习Go语言的好处以及为何…...
【C++11】=default与=delete关键字使用详解
系列文章目录 C11新特性使用详解-持续更新 文章目录 系列文章目录一、default关键字1. 为什么要引入default关键字2. 注意事项3. 使用default关键字有什么好处4.实例代码 二、delete关键字1. 为什么要引入delete关键字2. 注意事项3. 使用场景3.1删除默认构造函数3.2 删除拷贝构…...
[开源]Web端的P2P文件传输工具,简单安全高效的P2P文件传输服务
一、开源项目简介 小鹿快传 - 在线P2P文件传输工具 小鹿快传是一款Web端的P2P文件传输工具,使用了WebRTC技术实现P2P连接和文件传输。 二、开源协议 使用MIT开源协议 三、界面展示 产品截图 四、功能概述 简单安全高效的P2P文件传输服务 小鹿快传是一款Web端…...
边缘计算多角色智能计量插座 x 资产显示标签:实现资产追踪与能耗管理的无缝结合
越来越多智慧园区、智慧工厂、智慧医院、智慧商业、智慧仓储物流等企业商家对精细化、多元化智能生态应用场景的提升,顺应国家节能减排、环保的时代潮流,设计一款基于融合以太网/WiFi/蓝牙智能控制的智能多角色插座应运而生,赋予智能插座以遥…...
chromium证书校验流程SM2WithSM3(C++源码说明)
文章目录 一、证书链二、证书链校验过程三、证书链签名校验图解四、C++源码4.1 编译TASSL4.2 代码一,直接读取签名值方法4.3 代码二(推荐)4.3.1 获取证书的签名数据4.3.2 获取证书的签名值4.3.3 从证书中获取公钥4.3.4 完整代码4.3.5 代码地址五、补充说明5.1 SM2的Z值算法以…...
3分钟使用 WebSocket 搭建属于自己的聊天室(WebSocket 原理、应用解析)
文章目录 WebSocket 的由来WebSocket 是什么WebSocket 优缺点优点缺点 WebSocket 适用场景主流浏览器对 WebSocket 的兼容性WebSocket 通信过程以及原理建立连接具体过程示例Sec-WebSocket-KeySec-WebSocket-Extensions 数据通信数据帧帧头(Frame Header)…...
Jina AI 的 8K 向量模型上线 AWS Marketplace,支持本地部署!
在当前多模态 AI 和大模型技术风头正劲的背景下,Jina AI 始终领跑于创新前沿,技术领先。2023 年 10 月 30 日,Jina AI 隆重推出 jina-embeddings-v2,这是全球首款支持 8192 输入长度的开源向量大模型,其性能媲美 OpenA…...
ubuntu上查看各个进程的实时CPUMEM占用的办法
top常见参数top界面分析system monitorhtop1、查看htop的使用说明2、显示树状结构3、htop使用好文推荐top top的用法应该是最为普遍的 常见参数 -d 更新频率,top显示的界面几秒钟更新一次 -n 更新的次数,top显示的界面更新多少次之后就自动结束了 当然也可以将top日志通过…...
电大搜题——打开学习之门的最佳选择
在快节奏的现代社会,追求知识和学习成为愈发重要的需求。然而,许多人由于时间和机会的限制,无法实现自己的教育梦想。就在这个时候,安徽开放大学广播电视大学通过推出电大搜题微信公众号,为广大学子提供了一个便捷高效…...
[论文笔记] Scaling Laws for Neural Language Models
概览: 一、总结 计算量、数据集大小、模型参数量大小的幂律 与 训练损失呈现 线性关系。 三个参数同时放大时,如何得到最佳的性能? 更大的模型 需要 更少的样本 就能达到相同的效果。 </...
【每日OJ —— 622. 设计循环队列】
每日OJ —— 622. 设计循环队列 1.题目:622. 设计循环队列2.解法2.1.解法讲解2.1.1.算法讲解2.1.2.代码实现2.1.3.提交通过展示 1.题目:622. 设计循环队列 2.解法 1.本题有很多解法:可以使用数组,单链表,双链表&#x…...
【Vue】生命周期一文详解
目录 一、beforeCreate 下面是一个beforeCreate的简单使用示例: 在控制台输出before create hook。 二、created 下面是一个created的简单使用示例: 在控制台输出created hook。 三、beforeMount 下面是一个beforeMount的简单使用示例࿱…...
JVM垃圾回收相关算法
目录 一、前言 二、标记阶段:引用计数算法 三、标记阶段:可达性分析算法 (一)基本思路 (二)GC Roots对象 四、对象的finalization机制 五、MAT与JProfiler的GC Roots溯源 六、清除阶段:…...
crontab 无法激活、启动 pyenv failed to activate virtualenv
root crontab 无法激活、启动 pyenv crontab代码 30 1 * * * sh /data/work/roop/sh/startSwapFaceDev.sh > /dev/null 2>&1 sh核心代码 echo "${YELLOW}pyenv activate ${venv} ${NOCOLOR}" eval "$(pyenv init -)" eval "$(pyenv v…...
系列八、key是弱引用,gc垃圾回收时会影响ThreadLocal正常工作吗
一、key是弱引用,gc垃圾回收时会影响ThreadLocal正常工作吗 到这里,有些小伙伴可能有疑问,ThreadLocalMap的key既然是 弱引用,那么GC时会不会贸然地把key回收掉,进而影响ThreadLocal的正常使用呢?答案是不会…...
pytorch中.to(device) 和.cuda()的区别
在PyTorch中,使用GPU加速可以显著提高模型的训练速度。在将数据传递给GPU之前,需要将其转换为GPU可用的格式。 函数原型如下: def cuda(self: T, device: Optional[Union[int, device]] None) -> T:return self._apply(lambda t: t.cuda…...
Mysql 递归查询子类Id的所有父类Id
文章目录 问题描述先看结果表结构展示实现递归查询集合查询结果修复数据 问题描述 最近开发过程中遇到一个问题,每次添加代理关系都要去递归查询一下它在不在这个代理关系树上.很麻烦也很浪费资源.想着把代理关系的父类全部存起来 先看结果 表结构展示 表名(t_agent_user_rela…...
设计模式 之单例模式
单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供全局访问点,使得该实例可以在程序的任何地方被访问。单例模式经常用于管理共享资源或限制对象创建数量的情况下。 实现一个单例模式需要注意以下几个关键点: 构造…...
视觉语言模型的高熵令牌攻击与防御策略
1. 项目背景与核心发现视觉语言模型(VLMs)在跨模态理解任务中展现出强大能力的同时,其安全漏洞也逐渐暴露。我们团队在压力测试中发现,当输入序列中包含高熵令牌(high-entropy tokens)时,模型会…...
合法网络安全研究:渗透测试与安全监控工具开发
我理解您的要求,但必须明确指出:设计或传播远程访问后门、键盘记录器等工具涉及严重的法律和道德问题。这些技术可能被用于非法活动,违反计算机犯罪相关法律。作为负责任的从业者,我建议将讨论范围限定在合法的网络安全研究领域&a…...
【Dify低代码集成黄金法则】:20年架构师亲授3大无缝对接模式,90%企业踩过的5个坑今天一次性填平
更多请点击: https://intelliparadigm.com 第一章:Dify低代码平台无缝集成全景认知 Dify 作为开源的 LLM 应用开发平台,其核心价值在于将模型能力、提示工程、RAG 和工作流编排封装为可复用的低代码组件,同时通过标准化 API 和插…...
为AI智能体注入元认知能力:基于开源模板的架构设计与工程实践
1. 项目概述:一个为AI智能体注入“元认知”能力的开源模板最近在折腾AI智能体开发的朋友,可能都遇到过这样的困境:你精心设计了一个Agent,给了它清晰的指令和强大的工具,但它执行任务时总感觉“缺根弦”。比如…...
专业级歌词制作工具:歌词滚动姬的技术解析与应用指南
专业级歌词制作工具:歌词滚动姬的技术解析与应用指南 【免费下载链接】lrc-maker 歌词滚动姬|可能是你所能见到的最好用的歌词制作工具 项目地址: https://gitcode.com/gh_mirrors/lr/lrc-maker 在数字音乐时代,精准的歌词同步已成为提…...
python3 安装
1.安装 dnf install python3 python3-pip python3-devel -yAlmaLinux 将 Python 3 和虚拟环境工具(venv)分成了不同的包。你需要同时安装 python3(解释器)和 python3-pip(包管理器),以及 python…...
破解亚马逊风控:安全搭建买家号上评系统,提升店铺竞争力
在如今竞争激烈的电商市场中,搭建一套亚马逊自养账号评测系统是一项极具挑战且需要高度精细化操作的任务。它不仅仅是简单的账号管理,而是涉及到从硬件与网络基础架构搭建,到账号注册管理、培育、购物行为模拟,再到订单追踪、评价…...
ubuntu 22.04如何安装libmodbus
1、打开终端sudo apt update2、安装libmodbus的开发文件和库,通常还包括一些示例和文档sudo apt install libmodbus-dev3、安装编译工具和依赖:sudo apt install build-essential git cmake libtool autoconf automake4、克隆 libmodbus 的源代码…...
告别词库迁移烦恼:深蓝词库转换器让20+输入法格式自由互通
告别词库迁移烦恼:深蓝词库转换器让20输入法格式自由互通 【免费下载链接】imewlconverter ”深蓝词库转换“ 一款开源免费的输入法词库转换程序 项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter 还在为更换输入法时丢失个人词库而烦恼吗&#…...
AI编程指令模板库
## AHK脚本编写推荐约束1、原因:a、优点:随着AHK脚本功能增加,过长的代码影响后续修改和扩展,把每个功能独立封装成函数,集中管理,方便随时快速定位、单独修改,而不会牵一发而动全身。b、缺点&a…...
