From aab048841f2991d71378f5e69b15264037aec73a Mon Sep 17 00:00:00 2001 From: Vincent BENOIT Date: Sat, 24 Sep 2022 11:34:03 +0100 Subject: [PATCH] =?UTF-8?q?DTMF=20Code=20and=20dur=C3=A9e=20dans=20le=20fi?= =?UTF-8?q?chier=20de=20configuration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/KineIntercom.json | 2 ++ src/intercom.py | 21 ++++++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/KineIntercom.json b/src/KineIntercom.json index 11f4274..67b52a6 100644 --- a/src/KineIntercom.json +++ b/src/KineIntercom.json @@ -1,6 +1,8 @@ { "CODE_PIN": 1234, "NUM_AUTORISE": "0607297154", + "DTMF_CODE": "*", + "DTMF_DURATION": 1, "HORAIRES": [{ "monday":{ "00h00":0,"00h30":0,"01h00":0,"01h30":0,"02h00":0,"02h30":0,"03h00":0, diff --git a/src/intercom.py b/src/intercom.py index 8287f81..bb2fa65 100644 --- a/src/intercom.py +++ b/src/intercom.py @@ -60,10 +60,12 @@ def send_at_cmd(cmd='', serObj=None, log=None): return False return True -def init_com(serObj=None, pin='', log=None): +def init_com(serObj=None, config=None, log=None): ''' Init GSM Communication source : SIM800_Series_AT_command Manual_v1.09 AT : test command + ATE1 : + AT+CMEE=2 : AT+CPIN? : Enter PIN (response READY: MT is not pending for any password AT+CREG? : Network registration - return the status of result code AT+CSQ : @@ -76,15 +78,15 @@ def init_com(serObj=None, pin='', log=None): :param serObj: serial object - :param pin: - GSM Pin code + :param config: + config object :param log: logger object :return bool: ''' - cmd_lst = ['AT', 'ATE1', 'AT+CMEE=2', 'AT+CPIN?', 'AT+CREG?', 'AT+CSQ', 'AT+CLTS=1', 'AT+CLIP=1', 'AT+VTD=1'] + cmd_lst = ['AT', 'ATE1', 'AT+CMEE=2', 'AT+CPIN?', 'AT+CREG?', 'AT+CSQ', 'AT+CLTS=1', 'AT+CLIP=1', 'AT+VTD='+str(config['DTMF_DURATION'])] for cmd in cmd_lst: ret = send_at_cmd(cmd=cmd, serObj=serObj, log=log) if not ret: @@ -114,9 +116,8 @@ def verify_caller(buf="", num="", log=None): log.debug("=> {}".format(outlst)) phone_number = outlst[0].replace("\"","") if phone_number != num: - log.debug("phone number not match ! {}/{}".format(phone_number, num)) + log.warning("phone number not match ! {}/{}".format(phone_number, num)) return False, phone_number - log.debug("phone number match ! {}/{}".format(phone_number, num)) return True, phone_number ################################################################### @@ -159,7 +160,7 @@ def main(): ser.flushInput() #flush input buffer, discarding all its contents ser.flushOutput() #flush output buffer, aborting current output # Initialize GSM communication - ret = init_com(serObj=ser, pin=config['CODE_PIN'], log=logger) + ret = init_com(serObj=ser, config=config, log=logger) if not ret: logger.error("Erreur d'initialisation de la communication avec le module GSM") return @@ -186,10 +187,12 @@ def main(): if ret: time.sleep(0.2) # send DMTF tone - send_at_cmd(cmd='AT+VTS=*', serObj=ser, log=logger) + send_at_cmd(cmd='AT+VTS='+config['DTMF_CODE'], serObj=ser, log=logger) time.sleep(0.5) # Disconnect - send_at_cmd(cmd='ATH', serObj=ser, log=logger) + ret = send_at_cmd(cmd='ATH', serObj=ser, log=logger) + if not ret: + logger.error('Cannot disconnect ...') out = '' except Exception as e: logger.error("error communicating: {}".format(e))