소스 관련 오류 질문입니다.



  • try:
    while True:
    time.sleep(DELAY)
    previous_state = current_state
    previous_state1 = current_state1
    current_state = GPIO.input(sensor)
    current_state1 = GPIO.input(sensor1)
    if current_state != previous_state:
    new_state = "HIGH"
    if current_state else "LOW"
    print(“GPIO pin %s is %s” %
    (sensor, new_state))
    if current_state:
    GPIO.output(LED, True)
    print(PUSH_MSG)
    sendPush(PUSH_MSG)
    subprocess.call
    (“sudo sh mjpg.sh”, shell=True)
    time.sleep(DELAY)

             else:
                  GPIO.output(LED, False)
                  subprocess.call
                 ("sudo sh stop.sh", shell=True)
             if current_state1 != previous_state1:
                  new_state1 = "HIGH" if current_state1 else "LOW"
                  print("GPIO pin %s is %s" % 
                 (sensor1, new_state1))
             if current_state1:  
                  GPIO.output(LED, True)
                  print(PUSH_MSG1)
              sendPush(PUSH_MSG1)
                  subprocess.call("sudo sh mjpg.sh", shell=True)
                  time.sleep(DELAY)
                  
            else:
                 GPIO.output(LED, False)
             subprocess.call("sudo sh stop.sh", shell=True)
    
                except KeyboardInterrupt:
    	           GPIO.cleanup()
    

    if current_state else “LOW” 이부분에서 ’ invalid syntax ’ 에러가 계속뜨는데 도무지 어떻게 해결해야될지 모르겠네요 … 도움 부탁드립니다.


  • Global Moderator

    if current_state != previous_state:
    new_state = "HIGH"
    if current_state else "LOW"
    print(“GPIO pin %s is %s” %
    (sensor, new_state))
    

    이 문장은

    if [조건문]:
    [들여쓰기 없는 실행문]
    if [변수] else [상수]
    [실행문]
    

    이라는 전혀 파이썬이 알아먹을 수 없는 문법으로 되어있습니다.

    if [조건문] :
        [실행문]
    else:
        [실행문]
    

    이라는 문법을 지키지 않아서 오류가 나는듯 보입니다.

    invalid syntax = 알수없는 문법 = 문법 오류 입니다.


  • Global Moderator

    @Seungrok-Han 추천이 없는게 아쉽네 ^.*


답변을 위해 로그인하기