95 lines
2.6 KiB
Python
95 lines
2.6 KiB
Python
import serial
|
|
import time
|
|
from tgMesaage import sendTg
|
|
|
|
#手机号
|
|
phonenumber=''
|
|
# 短信内容
|
|
warntext=''
|
|
|
|
# 在test(US2)模式下需要用16进制转换电话和中文短信
|
|
# 转换为hex16进制
|
|
def Unicode2HexStr(Unicde_Str):
|
|
Hex_Str = ""
|
|
for i in range(0, len(Unicde_Str)):
|
|
Hex_Str += (hex(ord(Unicde_Str[i])).replace('0x','').zfill(4))
|
|
return Hex_Str
|
|
|
|
def decode2HexStr(Unicde_Str):
|
|
newText=bytes.fromhex(Unicde_Str).decode('utf-16-be')
|
|
print(newText)
|
|
return newText
|
|
|
|
|
|
|
|
def sendSMS(phonenumber,warntext,modem):
|
|
modem.write(("AT"+"\r\n").encode())
|
|
print(modem.readline())
|
|
time.sleep(0.5)
|
|
|
|
modem.write(("AT+CMGF=1"+"\r\n").encode())
|
|
print(modem.readline())
|
|
time.sleep(0.5)
|
|
|
|
modem.write(("AT+CSCS="+'"UCS2"'+"\r\n").encode())
|
|
print(modem.readline())
|
|
time.sleep(0.5)
|
|
|
|
|
|
modem.write(("AT+CSCA?"+"\r\n").encode())
|
|
print(modem.readline())
|
|
time.sleep(0.5)
|
|
|
|
#尾数如果是24,则短消息不会保存,也不会提示号码,可用来短信轰炸机
|
|
modem.write(("AT+CSMP=17,167,0,24"+"\r\n").encode())
|
|
# modem.write(("AT+CSMP=17,167,0,25"+"\r\n").encode())
|
|
print(modem.readline())
|
|
time.sleep(0.5)
|
|
|
|
#modem.write('AT+CMGS="' + convert2Unicode( str(phonenumber) ) + '"\r\n')
|
|
newNum=Unicode2HexStr(phonenumber)
|
|
print(newNum)
|
|
modem.write(("AT+CMGS="+'"%s"'%(newNum)+"\r\n").encode())
|
|
print(modem.readline())
|
|
time.sleep(1)
|
|
|
|
|
|
#modem.write(Unicode2HexStr(warntext.decode('utf-8')))
|
|
modem.write((Unicode2HexStr(warntext)).encode())
|
|
print(modem.readline())
|
|
#print(Unicode2HexStr(u"我爱你"))
|
|
time.sleep(1)
|
|
|
|
# 构造 HEX 1A
|
|
modem.write((chr(26)).encode())
|
|
print(modem.readline())
|
|
time.sleep(1)
|
|
|
|
line = modem.readline()
|
|
print(modem.readline())
|
|
print('end---')
|
|
# 触发tg消息提醒
|
|
sendTg('4g模块短信发送成功,succsess')
|
|
# if line.startswith("+CMGS"):
|
|
# print ("已成功发送")
|
|
# return True
|
|
# else:
|
|
# print ("发送遇到问题,请检查控制模块")
|
|
# modem.close()
|
|
# return False
|
|
|
|
|
|
|
|
def sendFlash(phonenumber,warntext):
|
|
try:
|
|
modem = serial.Serial(port='/dev/ttyUSB2', baudrate=9600)
|
|
print ("短信助手硬件USB接口已连接成功...正在启动")
|
|
# phonenumber=input('请输入phonenumber: ')
|
|
# warntext=input('warntext: ')
|
|
sendSMS(phonenumber,warntext,modem)
|
|
modem.close()
|
|
except Exception as e:
|
|
print(e)
|
|
print ("请检查短信模块是否插上usb 或 确定端口号是否正确")
|
|
# 触发tg消息提醒
|
|
sendTg('4g模块短信发送失败,请检查错误') |