用python编写向通信产品发送AT指令的程序实例
一、安装pyserial包
pip install pyserial
二、实例代码
# -*- coding: utf-8 -*-
import time
import hashlib
from serial import Serial
import serial.tools.list_ports
#查找端口函数
def findPort():
ports = serial.tools.list_ports.comports()
for each in ports:
if 'Android' in each:
com_android = each.split(' - ')[0]
return com_android
#发送AT指令函数
def sendAT(port, bsn):
try:
serial = Serial(port=port, baudrate=9600, timeout=1)
at_bsn = 'AT*****={}'.format(bsn) # 具体命令就不给出了。
sha256 = hashlib.sha256() # 用到了哈希函数。
sha256.update(bsn.encode('utf-8'))
hash = 'AT******={}'.format(sha256.hexdigest())
serial.write(at_bsn.encode('utf-8') + b'\r\n') # 向端口发送指令必须二进制格式;末尾添加\r\n表示发送。
serial.write(b'AT******\r\n')
serial.write(b'AT******\r\n')
serial.write(hash.encode('utf-8') + b'\r\n')
print('SUCCESS!')
except Exception as e:
print(e)
finally:
serial.close() # 最后不要忘记把占用的端口关掉。
#主程序
if __name__ == '__main__':
port = findPort()
if 'COM' in port:
_bsn = input('Please input your BSN number: ')
sendAT(port=port, bsn=_bsn)
else:
print("Can't find the port!")
time.sleep(2) # CMD终端运行时,打印语句一闪而过,需要设置等待。
用python编写向通信产品发送AT指令的程序实例的更多相关文章
- Python学习笔记四:列表,购物车程序实例
列表 切片 中括号,逗号分隔,可以一次取出多个元素,起始位置包括,结束位置不包括(顾头不顾尾) 如果取最后一个,而且不知道列表长度,可以使用负数(-1是最后一个,以此类推) 如果取最后几个,记住从左往 ...
- python编写DDoS攻击脚本
python编写DDoS攻击脚本 一.什么是DDoS攻击 DDoS攻击就是分布式的拒绝服务攻击,DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式.单一的DoS攻击一般是采用一对一方式的, ...
- 【转载】Python编写简易木马程序
转载来自: http://drops.wooyun.org/papers/4751?utm_source=tuicool 使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马. 首先准备好 ...
- [译]Python编写虚拟解释器
使用Python编写虚拟机解释器 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环 ...
- python编写网络抓包分析脚本
python编写网络抓包分析脚本 写网络抓包分析脚本,一个称手的sniffer工具是必不可少的,我习惯用Ethereal,简单,易用,基于winpcap的一个开源的软件 Ethereal自带许多协议的 ...
- Python编写守护进程程序
Python编写守护进程程序思路 1. fork子进程,父进程退出通常,我们执行服务端程序的时候都会通过终端连接到服务器,成功连接后会加载shell环境,终端和shell都是进程,shell进程是终端 ...
- 用Python编写一个简单的Http Server
用Python编写一个简单的Http Server Python内置了支持HTTP协议的模块,我们可以用来开发单机版功能较少的Web服务器.Python支持该功能的实现模块是BaseFTTPServe ...
- Python 利用Python编写简单网络爬虫实例3
利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://bbs.51testing. ...
- Python 利用Python编写简单网络爬虫实例2
利用Python编写简单网络爬虫实例2 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://www.51testing. ...
- 【转】使用python编写网络通信程序
文章主体现部分来自:http://openexperience.iteye.com/blog/145701 1. 背景知识 如果使用TCP协议来传递数据,客户端和服务器端需要分别经过以下步骤: ser ...
随机推荐
- 记录--h5调用手机摄像头踩坑
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 1. 背景 一般业务也很少接触摄像头,有也是现成的工具库扫个二维码.难得用一次,记录下踩坑. 2.调用摄像头的方法 2.1. input ...
- 使用JMeter从JSON响应的URL参数中提取特定值
在使用Apache JMeter进行API测试时,我们经常需要从JSON格式的响应中提取特定字段的值.这可以通过使用JMeter内置的JSON提取器和正则表达式提取器来完成.以下是一个具体的例子,展示 ...
- 大模型时代的PDF解析工具
去年(2023年)是大模型爆发元年.但是大模型具有两个缺点:缺失私有领域知识和幻觉.缺失私有领域知识是指大模型训练时并没有企业私有数据/知识,所以无法正确回答相关问题.并且在这种情况下,大模型会一本正 ...
- 操作推荐-git工作流
操作推荐-git工作流 sourcetree环境 sourcetree是一款可视化的版本管理软件 可以实现版本的管理和发布 同样,也支持git工作流的使用 创建git工作流 在main或者master ...
- CentripetalNet:更合理的角点匹配,多方面改进CornerNet | CVPR 2020
CentripetalNet的核心在于新的角点匹配方式,额外学习一个向心偏移值,偏移值足够小的角点即为匹配,相对于embedding向量的匹配方式,这种方法更为鲁棒,解释性更好.另外论文提出的十字星变 ...
- CentOS 7 上搭建nginx来部署静态网页
目录 0. Nginx简介 1. 安装以及使用 1.1 安装和启动 1.2 配置服务器的访问地址 1.3 重启nginx,打开浏览器访问 0. Nginx简介 Nginx (engine x) 是一个 ...
- Java对象序列化和反序列化
Java类的序列化和反序列化 序列化:指将对象转换为字节序列的过程,也就是将对象的信息转换成文件保存. 反序列化:将字节序列转换成目标对象的过程,也就是读取文件,并转换为对象. 几个关键点: 必须实现 ...
- DNS的各种记录类型的应用解析
可能很多人平时工作中不会遇到DNS配置相关的问题, 但如果偶尔遇到不同类型DNS记录的配置, 在没有搞清楚它们都是干啥的情况下, 会眼花缭乱, 还记得很多年前实验室配置DNS不太对导致只能访问www. ...
- #NIM游戏#CodeChef A Game With a Sheet of Paper
SHGAME 分析 可以发现每次相当于去掉上下左右的若干行列,也就是 \(x-1,n-1-x,y-1,m-1-y\) 题目就转换成了取石子的问题,先手必胜当且仅当 \((x-1)\) xor \((n ...
- JS 取Json中对象特定属性值
解析JSON JSON 数据 var str = '[{"a": "1","b": "2"}, {"a&quo ...