2014-04-17 2 views
1

많은 나무 딸기 파이 중에서 내 집에 보안 카메라 시스템을 구축하고 있습니다. 각 카메라 시스템에있는 것들 중 하나는 인터넷 연결을 나타내는 표시등입니다. 이를 위해 python check to see if host is connected to network에있는 코드를 사용하여 수정했습니다. 내 파이를 통해 코드를 실행하면라즈베리 파이와 함께 작동하는 인터넷 연결을위한 파이썬 확인

#! /usr/bin/python 

import socket 
import fcntl 
import struct 
import RPi.GPIO as GPIO 
import time 
pinNum = 8 
GPIO.setmode(GPIO.BCM) #numbering scheme that corresponds to breakout board and pin layout 
GPIO.setup(pinNum,GPIO.OUT) #replace pinNum with whatever pin you used, this sets up that pin as an output 
#set LED to flash forever 

def check_connection(): 

    ifaces = ['eth0','wlan0'] 
    connected = [] 

    i = 0 
    for ifname in ifaces: 

     s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
     try: 
      socket.inet_ntoa(fcntl.ioctl(
        s.fileno(), 
        0x8915, # SIOCGIFADDR 
        struct.pack('256s', ifname[:15]) 
      )[20:24]) 
      connected.append(ifname) 
      print "%s is connected" % ifname 
      while True: 
       GPIO.output(pinNum,GPIO.HIGH) 
       time.sleep(0.5) 
       GPIO.output(pinNum,GPIO.LOW) 
       time.sleep(0.5) 
       GPIO.output(pinNum,GPIO.LOW) 
       time.sleep(2.0) 

     except: 
      print "%s is not connected" % ifname 

     i += 1 

    return connected 

connected_ifaces = check_connection()

그러나 오류가 읽

[email protected] ~/Desktop $  while True: 
>    ^
> TabError: inconsistent use of tabs and spaces in indentation 
> ^C 

누구든지이 문제를 알아? 기본 사과라면 사과드립니다. Python Programming을 처음 접했습니다. 간단히 말해 인터넷 연결이있을 때 8 번 핀의 불이 들어올 것입니다.

감사합니다.

+0

들여 쓰기에 탭과 공백이 섞여있는 것처럼 보입니다. 들여 쓰기에 탭이나 (더 좋은) 공백을 사용하지 마십시오. 'python -tt'를 사용하여 코드를 실행 해보십시오. – jfs

+0

'python -tt'이 좋습니다. 'TabError : 들여 쓰기에서 탭과 공백의 일관성없는 사용'이라고 말한 것을 보여주십시오. 그래도 코드에 어떤 문제가 있는지 보지 못합니다. 이제 탭을 사용하고 있습니다. 위의 코드를 업데이트했습니다. 내가 얻는 오류는 '사실 인 동안'이다. 선. –

+0

* "코드에 어떤 문제가 있는지 알지 못합니다"* - 들여 쓰기에 탭과 공백을 섞어 쓰지 마십시오 : 파이썬에서 구문의 일부입니다. 귀하의 질문에있는 코드가 들여 쓰기에 공백과 탭을 모두 사용한다는 것을 알고 있습니다 – jfs

답변

0

파이썬은 코드 블록을 그룹화하기 위해 들여 쓰기를 사용하기 때문에 들여 쓰기가 매우 까다 롭습니다. 그것은 코드가 4 칸 (또는 탭)을 사용하여 30 칸에서 35 칸을 제외하고 모든 칸을 들여 쓰기하는 것으로 보입니다. 단 두 칸 밖에 없습니다. 들여 쓰기가 코드 전체에서 일관성이 있는지 확인하고 문제가 해결되어야합니다.

업데이트 : 새 오류로 공백이나 탭 사용 여부와 일관성이 있는지 확인하십시오. 코드의 각 행을 살펴보고 탭당 4 개의 공백을 사용하거나 올바른 들여 쓰기에 탭을 사용하고 있는지 확인하십시오. 고정 들여 쓰기에

더 많은 정보 : How to fix python indentation 는 또한이 체크 아웃 : http://www.annedawson.net/Python_Spaces_Indentation.html

이 코드를 수정으로 들여 쓰기 파이썬에 대한 자세한 내용은 인터넷 검색을 시도하십시오.

+0

Thanks @Tyler Ferraro - 위 질문에 대한 답을 수정했는데, 귀하의 솔루션이 효과적이었습니다. 지금은 다른 오류를 보여줍니다. –