首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pyserial命令问题

Pyserial命令问题
EN

Stack Overflow用户
提问于 2019-05-28 10:40:25
回答 1查看 152关注 0票数 0

我想通过pyserial发送一个简单的命令,但是我发现当我在pyserial.write中发送pyserial.write符号时,它会改变为另一种格式。

我可以知道如何使用pyserial发送""符号吗?

代码语言:javascript
复制
import serial
import time
import sys


class SIMComModem(object):

def __init__(self):
    self.open()

def open(self):
    self.ser = serial.Serial('COM9', 115200, timeout=5)
    print("Send AT OK command \n ")
    self.SendCommand('AT\r')
    time.sleep(0.5)


def SendCommand(self, command, getline=True):
    self.ser.flushInput()
    self.ser.flushOutput()
    print(command.encode())
    self.ser.write(command.encode())
    data = ''
    if getline:
        data = self.ReadLine()
    return data

def ReadLine(self):
    data = self.ser.readline()
    data = self.ser.readline()
    print(data)
    return data

def SetGPS(self):
    pass

def GetGpsOne(self):
    print("Set APN")
    self.SendCommand('AT+CGSOCKCONT=1,”IP”,”mobile”\r')
    time.sleep(0.5)
    print("Donwnload GpsOneData")
    self.SendCommand('AT+CGPSXD=0\r')
    time.sleep(0.5)
    self.SendCommand('AT+CHTPSERV=\\”ADD\\”,\\”www.google.com\\”,80,1\r')
    time.sleep(0.5)
    print("Update Time zone")
    self.SendCommand('AT+CTZU=1\r')
    time.sleep(0.5)
    self.SendCommand('AT+CCLK?\r')
    time.sleep(0.5)

我希望当我调用GetGpsOne函数时,它会将AT+CGSOCKCONT=1,"IP","mobile"发送到COM端口,但结果如下:

代码语言:javascript
复制
b'AT\r'
b'OK\r\n'
Set APN
b'AT+CGSOCKCONT=1,\xe2\x80\x9dIP\xe2\x80\x9d,\xe2\x80\x9dmobile\xe2\x80\x9d\r'
EN

回答 1

Stack Overflow用户

发布于 2019-05-28 10:54:05

您需要的是“直”引号,而不是您当前使用的“排版”引号

试一试

代码语言:javascript
复制
print("Set APN")
self.SendCommand('AT+CGSOCKCONT=1,"IP","mobile"\r')
time.sleep(0.5)
print("Donwnload GpsOneData")
self.SendCommand('AT+CGPSXD=0\r')
time.sleep(0.5)
self.SendCommand('AT+CHTPSERV="ADD","www.google.com",80,1\r')
time.sleep(0.5)
print("Update Time zone")
self.SendCommand('AT+CTZU=1\r')
time.sleep(0.5)
self.SendCommand('AT+CCLK?\r')
time.sleep(0.5)

而不是。

为了澄清这一点,下面是你的排版引文的错误所在:

代码语言:javascript
复制
>>> ord('”')  # <-- the quote used by the original code
8221
>>> '”'.encode('utf-8')
b'\xe2\x80\x9d'  # <-- the UTF-8 encoding you saw



>>> ord('"')  # <-- the correct ASCII quote
34
>>> '"'.encode('utf-8')  # <-- its UTF-8 encoding
b'\x22'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56340405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档