用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 ...
随机推荐
- Performance Improvements in .NET 8 & 7 & 6 -- String【翻译】
原文:https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-8/#strings-arrays-and-spans ...
- Linux 运维工程师面试真题-5-常考题目汇总
Linux 运维工程师面试真题-5-常考题目汇总 1.解释下什么是 GPL,GNU,自由软件? GPL:(通用公共许可证):一种授权,任何人有权取得.修改.重新发布自由软件的权力. GNU:(革奴计划 ...
- 调试3D渲染和3D可视化的五个好处
建筑和建筑环境是我们日常生活中不可避免的一部分,直接影响我们和我们的福祉.它可以是我们的家.办公室.附近的教堂或城市的商业综合体;所有这一切的设计和规划都是建筑.然而,具有讽刺意味的是,建筑的交流往往 ...
- Avalonia 11.1.0-beta1 发布
11.1.0-beta1 Avalonia 是 dotnet 的跨平台 UI 框架,提供灵活的样式系统,支持 Windows.macOS.Linux.iOS.Android 和 WebAssembly ...
- uniapp如何给空包进行签名操作
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 首先安装sdk https://www.oracle.com/java/technologies/downloads/ 正常下一步即可~安 ...
- Numpy 模块常用函数速查表
序 号 方 法 说 明 1 array(object[, dtype, copy, order, subok, ndmin]) 创建一个数组 2 asarray(a[, dtype, o ...
- linux xfce 在文件管理器里点击运行shell脚本文件
1.打开 Settings Editor 2.点击左边的 thunar 3.点击右边的 添加 ,在属性中输入 /misc-exec-shell-scripts-by-default 在类型中选择布尔类 ...
- #莫比乌斯函数,Miller-Rabin#洛谷 3653 小清新数学题
题目 求\(\sum_{i=l}^r\mu(i),r-l\leq 10^5,1\leq l\leq r\leq 10^{18}\) 分析 其实有一道可以算是弱化版的题目 这种类型的tricks就是枚举 ...
- 演示webuploader和cropperjs图片裁剪上传
最近有个项目要在浏览器端裁剪并上传图片.由于缺乏人力,只能我上阵杀敌.通过参考各种文章,最后决定用cropperjs进行图片裁剪,用webuploader上传文件.本文涉及到的知识至少有Java基础. ...
- centos-stream-9 centos9 配置国内yum源 阿里云源
源配置 tips: yum配置文件路径 /etc/yum.repos.d/centos.repo 1.备份源配置 [Very Important!] mv /etc/yum.repos.d/cento ...