用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 ...
随机推荐
- 瑞云科技荣获全国电子信息行业专精特新“最具创新价值 TOP20”!
"专精特新",从概念提出到写入政府工作报告走过了十年.这十年来我国促进中小企业发展力度之大.出台政策之密集.含金量之高前所未有,足见走专精特新发展之路深入人心."专精特新 ...
- C#的播放资源文件里的音频例子 - 开源研究系列文章
今天无聊,想起原来开发的待办列表TodoList里还缺个提醒声音,于是就添加了提供声音模块代码.然后想着记录一下,让更多的读者能够复用这个模块代码,于是就有了此博文.这个例子只是用于播放资源文件里的w ...
- 懂一点前端—Vue快速入门
01. 什么是 Vue Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架,是当下很火的一个 JavaScript MVVM 库,是以 数据驱动和组件化 的思想构建的 ...
- 使用Go语言开发一个短链接服务:二、架构设计
章节 使用Go语言开发一个短链接服务:一.基本原理 使用Go语言开发一个短链接服务:二.架构设计 使用Go语言开发一个短链接服务:三.项目目录结构设计 使用Go语言开发一个短链接服务:四.生成 ...
- go语言漏桶算法思路简单实现
package main import ( "fmt" "time" ) // 桶 type LeakBucket struct { capacity int ...
- Lambda表达式编写递归函数
class Program { //Fix求出的是函数f的不动点,它就是我们所需要的递归函数: static Func<T, TResult> Fix<T, TResult>( ...
- zynq之TF卡写入函数f_printf
zynq之TF卡写入函数f_printf 1.基本原理 前面使用f_write写入了数据到TF(SD)卡中,可以实现较短字符串的写入.当字符增加时,容易出现乱码.而f_printf则是专门用于字符串写 ...
- .NET开源、免费、跨平台的Git可视化管理工具
前言 俗话说得好"工欲善其事,必先利其器",合理的选择和使用可视化的管理工具可以降低技术入门和使用的门槛.今天大姚给大家分享一款.NET Avalonia开源.免费.跨平台.快速的 ...
- async/await 与console(C#)
问题: 上一篇async/await 致WPF卡死问题(https://www.cnblogs.com/stephen2023/p/17725159.html),介绍主线程阻塞,async/await ...
- Scala 不可变Map
1 package chapter07 2 3 object Test08_ImmutableMap { 4 def main(args: Array[String]): Unit = { 5 // ...