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(f'4g模块短信-{phonenumber}发送成功,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模块短信-{phonenumber}发送失败,请检查错误')