embeded/raspberry pi2015. 10. 5. 22:05

cam 1은 왼쪽 눈깔.. (?)

cam 2는 오른쪽 눈깔

각각의 눈에 대한 pan (X축) 제어가 가능하며

control 윈도우는 두개 동시 동축 제어


우측 상단의 작은 창은 현재 클릭해서 저장된 영역이며

검은 사각형은 중심점

녹색 사각형은 클릭한 위치의 이미지와 매칭되는 영역

빨간 사각형은 클릭했던 위치이나... 별 의미는 없다

(클릭시 녹색 영역으로 겹치고 움직이면 이전 클릭 위치라는 정도니..)


초당 1프레임 겨우 하는 느낌이니..

쓰레드나  openMP 사용해서 프로세스 별로 분할해서 퍼포먼스를 올려봐야겠다.



$ cat makefile

all:

        g++ cv.cpp -lopencv_core -lopencv_video -lopencv_highgui -lopencv_imgproc -lwiringPi


clean:

        rm a.out


run:

        DISPLAY=:0.0 sudo ./a.out 


$ cat cv.cpp

#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>

#include <opencv2/imgproc/imgproc.hpp>

#include <iostream>


#include <wiringPi.h>


#define MIN_POS 30

#define MAX_POS 110


using namespace cv;

using namespace std;


bool bMouse = true;

Point mpos(160,120);


void CallBackFunc(int event, int x, int y, int flags, void* userdata)

{


        switch(event)

        {

        default:

                break;


        case EVENT_LBUTTONDOWN:

                cout << "EVENT_LBUTTONDOWN" << endl;

                cout << "pos (" << x << "," << y << ")" << endl;

                mpos.x = x;

                mpos.y = y;

                bMouse = true;

                break;

        case EVENT_LBUTTONUP:

                cout << "EVENT_LBUTTONUP" << endl;

                break;

        case EVENT_RBUTTONDOWN:

                cout << "EVENT_RBUTTONDOWN" << endl;

                bMouse = true;

                break;

        }

}


void init_wiringpi()

{

        if(wiringPiSetup() == -1) exit(0);


        pinMode(1, PWM_OUTPUT);

        pwmSetMode(PWM_MODE_MS);

//      pwmSetRange(1024);

//      pwmSetClock(400);


        pinMode(23, PWM_OUTPUT);

        pwmSetMode(PWM_MODE_MS);

        pwmSetRange(1024);

        pwmSetClock(400);


        pwmWrite(1,     MIN_POS + (MAX_POS - MIN_POS) / 2);

        pwmWrite(23,    MIN_POS + (MAX_POS - MIN_POS) / 2);

}


void setPWM_1(int val)

{

        pwmWrite(23, val);

}


void setPWM_2(int val)

{

        pwmWrite(1, val);

}



void on_trackbar_1(int pos, void *ptr)

{

        int val = MIN_POS + pos * (MAX_POS - MIN_POS) / 100;

        setPWM_1(val);


        cout << "pos 1 [" << pos << ":" << val << "]" << endl;

}


void on_trackbar_2(int pos, void *ptr)

{

        int val = MIN_POS + pos * (MAX_POS - MIN_POS) / 100;

        setPWM_2(val);


        cout << "pos 2 [" << pos << ":" << val << "]" << endl;

}


void on_trackbar_3(int pos, void *ptr)

{

        int val = MIN_POS + pos * (MAX_POS - MIN_POS) / 100;

//      setPWM_1(val);

//      setPWM_2(val);


        setTrackbarPos("track 1", "cam 1", pos);

        setTrackbarPos("track 2", "cam 2", pos);


        cout << "pos 3 [" << pos << ":" << val << "]" << endl;

}


int main(int argc, char** argv)

{

        // opencv 2 style

        VideoCapture cap(0);

        int pos[2];


        init_wiringpi();


        if(!cap.isOpened())

        {

                cout << "No camera detected" << endl;

                return -1;

        }

        else

        {

                cout << "In capture ..." << endl;

                cap.set(CV_CAP_PROP_FRAME_WIDTH, 320);

                cap.set(CV_CAP_PROP_FRAME_HEIGHT, 240);

        }


        VideoCapture cap2(1);

        if(!cap2.isOpened())

        {

                cout << "No camera detected" << endl;

                return -1;

        }

        else

        {

                cout << "In capture ..." << endl;

                cap2.set(CV_CAP_PROP_FRAME_WIDTH, 320);

                cap2.set(CV_CAP_PROP_FRAME_HEIGHT, 240);

        }


        namedWindow("cam 1", WINDOW_AUTOSIZE );

        namedWindow("cam 2", WINDOW_AUTOSIZE );

        namedWindow("control", WINDOW_AUTOSIZE );

        namedWindow("crop", WINDOW_AUTOSIZE );


        createTrackbar("track 1", "cam 1", &pos[0], 100, on_trackbar_1 );

        createTrackbar("track 2", "cam 2", &pos[1], 100, on_trackbar_2 );

        createTrackbar("track 3", "control", &pos[0], 100, on_trackbar_3 );


        setTrackbarPos("track 1", "cam 1", 50);

        setTrackbarPos("track 2", "cam 2", 50);

        setTrackbarPos("track 3", "control", 50);


        setMouseCallback("cam 1", CallBackFunc, NULL);


        Mat frame;

        Mat result;

        Mat tMat;

        Mat crop;


        double minVal;

        double maxVal;

        Point minLoc;

        Point maxLoc;

        Point matchLoc;


        for(;;)

        {


                Point pt[2];

                if(!cap.read(frame)) break;

                        pt[0].x = 150;

                        pt[0].y = 110;

                        pt[1].x = pt[0].x + 20;

                        pt[1].y = pt[0].y + 20;


                if(bMouse)

                {

                        tMat = frame.clone();

                        crop = Mat(tMat, Rect(mpos.x - 10, mpos.y - 10, 20, 20));

                        imshow("crop", crop);

                        bMouse = false;

                }


                matchTemplate( frame, crop, result, CV_TM_SQDIFF );

                normalize( result, result, 0, 1, NORM_MINMAX, -1, Mat() );

                minMaxLoc( result, &minVal, &maxVal, &minLoc, &maxLoc, Mat() );

                matchLoc = minLoc;

                cout << "matchLoc : " << matchLoc << endl;


                rectangle(frame, pt[0], pt[1], Scalar(0,0,0),2);

                rectangle(frame, Point(mpos.x - 10, mpos.y - 10), Point(mpos.x + 10, mpos.y + 10), Scalar(0,0,255),2);

                rectangle(frame, matchLoc, Point( matchLoc.x + 20 , matchLoc.y + 20 ), Scalar(0,255,0), 2);


                        imshow("cam 1", frame);


                if(!cap2.read(frame)) break;

                rectangle(frame, pt[0], pt[1], Scalar(0,0,0),2);


                matchTemplate( frame, crop, result, CV_TM_SQDIFF );

                normalize( result, result, 0, 1, NORM_MINMAX, -1, Mat() );

                minMaxLoc( result, &minVal, &maxVal, &minLoc, &maxLoc, Mat() );

                matchLoc = minLoc;

                cout << "matchLoc : " << matchLoc << endl;


                rectangle(frame, matchLoc, Point( matchLoc.x + 20 , matchLoc.y + 20 ), Scalar(0,255,0), 2);

                        imshow("cam 2", frame);


                if(waitKey(30) >= 0) break;

        }


        return 0;

} 



Posted by 구차니
embeded/arduino(genuino)2015. 10. 5. 16:52

아두이노 보면 여러가지 버전(?)이라고 해야하나?

보드가 여러가지가 존재하는데


[링크 : https://www.arduino.cc/en/Reference/SPI]


세부적인걸 제외하면

Due만 AT91SAM ARM Cortex-m3 계열이고

나머지는 AVR 계열이다.

[링크 : http://arduinomidi.com/xe/BlogBoard/9489]

'embeded > arduino(genuino)' 카테고리의 다른 글

아두이노 나노 - 시리얼 테스트  (3) 2016.03.27
아두이노 나노 v3.0 / v3.1  (0) 2016.03.27
지름 도착 - 아두이노 나노/표준서보  (0) 2016.03.26
아두이노 부품들...  (0) 2015.06.29
아두이노 (arduino)  (0) 2011.12.29
Posted by 구차니
embeded/Cortex-M3 Ti2015. 10. 5. 16:47

SSIConfigSetExpClk() 에서

모드, 클럭, polarity, 데이터 버스 width를 설정한다.


static void SetSPIFunction(void)

{

SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);


GPIOPinConfigure(GPIO_PA2_SSI0CLK);

GPIOPinConfigure(GPIO_PA3_SSI0FSS);

GPIOPinConfigure(GPIO_PA4_SSI0RX);

GPIOPinConfigure(GPIO_PA5_SSI0TX);


GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_3 | GPIO_PIN_2);

SSIConfigSetExpClk(SSI0_BASE, SysCtlClockGet(), SSI_FRF_MOTO_MODE_0, SSI_MODE_MASTER, 1000000, 8);

SSIEnable(SSI0_BASE);

}


ssi.h

#define SSI_FRF_MOTO_MODE_0     0x00000000  // Moto fmt, polarity 0, phase 0

#define SSI_FRF_MOTO_MODE_1     0x00000002  // Moto fmt, polarity 0, phase 1

#define SSI_FRF_MOTO_MODE_2     0x00000001  // Moto fmt, polarity 1, phase 0

#define SSI_FRF_MOTO_MODE_3     0x00000003  // Moto fmt, polarity 1, phase 1

#define SSI_FRF_TI              0x00000010  // TI frame format

#define SSI_FRF_NMW             0x00000020  // National MicroWire frame format


#define SSI_MODE_MASTER         0x00000000  // SSI master

#define SSI_MODE_SLAVE          0x00000001  // SSI slave

#define SSI_MODE_SLAVE_OD       0x00000002  // SSI slave with output disabled


[링크 : http://irmus.tistory.com/61]




아두이노의 Atmega 시리즈와 1:1 매칭되려나?


[링크 : https://www.arduino.cc/en/Reference/SPI]

'embeded > Cortex-M3 Ti' 카테고리의 다른 글

lm3s617 stepper rdk  (0) 2015.10.13
lm3s spi / ssi  (0) 2015.10.06
cortex-m3 ROM direct call  (0) 2015.09.25
LM3S Stellarisware - GPIOIntTypeSet  (0) 2015.08.03
bitband / cortex-m3  (0) 2013.08.16
Posted by 구차니
embeded/ARM2015. 10. 1. 16:59

확실히. SIMD쪽이 DSP 보다는 명령어가 먼가.. 파워풀 해보이는 기분?


ARM9 dsp

[링크 : http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dvi0022a/ar01s02s14.html]


ARM11 simd

[링크 : http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0301h/Caccebch.html]


Parallel add /subtract

Sign/zero extend and add

Signed multiply and multiply, accumulate

Saturate, select, and pack

네가지 종류의 명령어가 SIMD로 추가된 듯?

[링크 : http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0491i/CJADHCJE.html]

'embeded > ARM' 카테고리의 다른 글

jtag과 swd  (0) 2015.12.14
비글본 github 저장소  (0) 2015.10.30
arm11 simd instruction  (0) 2015.10.01
cortex-A5/A7  (0) 2015.09.21
cortex-m 시리즈와 포화연산  (0) 2015.08.26
Posted by 구차니
embeded/ARM2015. 10. 1. 16:41

그나저나..ARM11의 SIMD 명령어 셋 목록 구하기 어렵네..

무슨 차이가 있나 보려고 했더니..


ARMv6 SIMD Features:

 75% performance increase for audio and video processing

 Simultaneous computation of 2x16-bit or 4x8-bit operands

 Fractional arithmetic

 User definable saturation modes (arbitrary word-width)

 Dual 16x16 multiply-add/subtract 32x32 fractional MAC

 Simultaneous 8/16-bit select operations

 Performance up to 3.2 GOPS at 800MHz

 Performance is achieved with a "near zero" increase in power consumption on a typical implementation

[링크 : http://www.arm.com/products/processors/technologies/dsp-simd.php]




[링크 : http://elinux.org/images/4/40/Elc2011_anderson_arm.pdf]




[링크 : https://web.eecs.umich.edu/~prabal/teaching/eecs373-f10/readings/ARM_Architecture_Overview.pdf]


오예 찾았다

__qadd16 intrinsic

__qadd8 intrinsic

__qasx intrinsic

__qsax intrinsic

__qsub16 intrinsic

__qsub8 intrinsic

__sadd16 intrinsic

__sadd8 intrinsic

__sasx intrinsic

__sel intrinsic

__shadd16 intrinsic

__shadd8 intrinsic

__shasx intrinsic

__shsax intrinsic

__shsub16 intrinsic

__shsub8 intrinsic

__smlad intrinsic

__smladx intrinsic

__smlald intrinsic

__smlaldx intrinsic

__smlsd intrinsic

__smlsdx intrinsic

__smlsld intrinsic

__smlsldx intrinsic

__smuad intrinsic

__smuadx intrinsic

__smusd intrinsic

__smusdx intrinsic

__ssat16 intrinsic

__ssax intrinsic

__ssub16 intrinsic

__ssub8 intrinsic

__sxtab16 intrinsic

__sxtb16 intrinsic

__uadd16 intrinsic

__uadd8 intrinsic

__uasx intrinsic

__uhadd16 intrinsic

__uhadd8 intrinsic

__uhasx intrinsic

__uhsax intrinsic

__uhsub16 intrinsic

__uhsub8 intrinsic

__uqadd16 intrinsic

__uqadd8 intrinsic

__uqasx intrinsic

__uqsax intrinsic

__uqsub16 intrinsic

__uqsub8 intrinsic

__usad8 intrinsic

__usada8 intrinsic

__usax intrinsic

__usat16 intrinsic

__usub16 intrinsic

__usub8 intrinsic

__uxtab16 intrinsic

__uxtb16 intrinsic.

[링크 : http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0491i/CJADHCJE.html]

'embeded > ARM' 카테고리의 다른 글

비글본 github 저장소  (0) 2015.10.30
arm9 dsp / arm11 simd instuction 비교?  (0) 2015.10.01
cortex-A5/A7  (0) 2015.09.21
cortex-m 시리즈와 포화연산  (0) 2015.08.26
ARM926EJ / ARMv5TE  (0) 2015.07.28
Posted by 구차니
embeded/raspberry pi2015. 10. 1. 13:27

웹을 통해서 GPIO 제어하는 웹 어플


확장 보드를 통해 pwm 제어용 칩을 달면 device를 통해 찾아서 제어가 가능하지만..

gpio는 in/out만 설정이 가능하고 on/off만 되는 듯 제약이 크다

보기에는 좋으나.. 그리 쓸만하진 않은 기분?

(wiringpi를 써서 그런걸지도..)


[링크 : http://todayhumor.com/?programmer_13608]

    [링크 : http://www.rasplay.org/?p=5061]

    [링크 : http://webiopi.trouch.com/]


다만.. rpi 2b에서는 안될거 같기도 하고..

[링크 : https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=98981]


+

0.7.1 rpi2용 패치 적용 버전

WebIOPi-0.7.1.tar.gz

+



으으 설치 겁나 길다

$ sudo ./setup.sh


Installing WebIOPi...


Updating apt package list...

기존 http://raspberrypi.collabora.com wheezy Release.gpg

받기:1 http://archive.raspberrypi.org wheezy Release.gpg [473 B]

받기:2 http://mirrordirector.raspbian.org wheezy Release.gpg [490 B]

기존 http://raspberrypi.collabora.com wheezy Release

받기:3 http://mirrordirector.raspbian.org wheezy Release [14.4 kB]

받기:4 http://archive.raspberrypi.org wheezy Release [17.6 kB]

기존 http://raspberrypi.collabora.com wheezy/rpi armhf Packages

받기:5 http://archive.raspberrypi.org wheezy/main armhf Packages [135 kB]

받기:6 http://mirrordirector.raspbian.org wheezy/main armhf Packages [6,908 kB]

무시http://raspberrypi.collabora.com wheezy/rpi Translation-ko_KR

무시http://raspberrypi.collabora.com wheezy/rpi Translation-ko

무시http://raspberrypi.collabora.com wheezy/rpi Translation-en

무시http://archive.raspberrypi.org wheezy/main Translation-ko_KR

무시http://archive.raspberrypi.org wheezy/main Translation-ko

무시http://archive.raspberrypi.org wheezy/main Translation-en

받기:7 http://mirrordirector.raspbian.org wheezy/contrib armhf Packages [23.6 kB]

받기:8 http://mirrordirector.raspbian.org wheezy/non-free armhf Packages [49.3 kB]

받기:9 http://mirrordirector.raspbian.org wheezy/rpi armhf Packages [592 B]

무시http://mirrordirector.raspbian.org wheezy/contrib Translation-ko_KR

무시http://mirrordirector.raspbian.org wheezy/contrib Translation-ko

무시http://mirrordirector.raspbian.org wheezy/contrib Translation-en

무시http://mirrordirector.raspbian.org wheezy/main Translation-ko_KR

무시http://mirrordirector.raspbian.org wheezy/main Translation-ko

무시http://mirrordirector.raspbian.org wheezy/main Translation-en

무시http://mirrordirector.raspbian.org wheezy/non-free Translation-ko_KR

무시http://mirrordirector.raspbian.org wheezy/non-free Translation-ko

무시http://mirrordirector.raspbian.org wheezy/non-free Translation-en

무시http://mirrordirector.raspbian.org wheezy/rpi Translation-ko_KR

무시http://mirrordirector.raspbian.org wheezy/rpi Translation-ko

무시http://mirrordirector.raspbian.org wheezy/rpi Translation-en

내려받기 7,149 k바이트, 소요시간 28초 (249 k바이트/초)

패키지 목록을 읽는 중입니다... 완료


Found Python 2.7.3...

Trying to install python-dev using apt-get

패키지 목록을 읽는 중입니다... 완료

의존성 트리를 만드는 중입니다

상태 정보를 읽는 중입니다... 완료

다음 패키지를 더 설치할 것입니다:

  libssl-dev libssl-doc python-pkg-resources python2.7-dev

제안하는 패키지:

  python-distribute python-distribute-doc

다음 새 패키지를 설치할 것입니다:

  libssl-dev libssl-doc python-dev python-pkg-resources python-setuptools

  python2.7-dev

0개 업그레이드, 6개 새로 설치, 0개 제거 및 6개 업그레이드 안 함.

31.9 M바이트 아카이브를 받아야 합니다.

이 작업 후 42.7 M바이트의 디스크 공간을 더 사용하게 됩니다.

받기:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libssl-dev armhf 1.0.1e-2+rvt+deb7u17 [1,500 kB]

받기:2 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libssl-doc all 1.0.1e-2+rvt+deb7u17 [1,199 kB]

받기:3 http://mirrordirector.raspbian.org/raspbian/ wheezy/main python2.7-dev armhf 2.7.3-6+deb7u2 [28.7 MB]

받기:4 http://mirrordirector.raspbian.org/raspbian/ wheezy/main python-dev all 2.7.3-4+deb7u1 [920 B]

받기:5 http://mirrordirector.raspbian.org/raspbian/ wheezy/main python-pkg-resources all 0.6.24-1 [63.6 kB]

받기:6 http://mirrordirector.raspbian.org/raspbian/ wheezy/main python-setuptools all 0.6.24-1 [449 kB]

내려받기 31.9 M바이트, 소요시간 14초 (2,171 k바이트/초)

Selecting previously unselected package libssl-dev.

(데이터베이스 읽는중 ...현재 91702개의 파일과 디렉터리가 설치되어 있습니다.)

libssl-dev 패키지를 푸는 중입니다 (.../libssl-dev_1.0.1e-2+rvt+deb7u17_armhf.deb에서) ...

Selecting previously unselected package libssl-doc.

libssl-doc 패키지를 푸는 중입니다 (.../libssl-doc_1.0.1e-2+rvt+deb7u17_all.deb에서) ...

Selecting previously unselected package python2.7-dev.

python2.7-dev 패키지를 푸는 중입니다 (.../python2.7-dev_2.7.3-6+deb7u2_armhf.deb에서) ...

Selecting previously unselected package python-dev.

python-dev 패키지를 푸는 중입니다 (.../python-dev_2.7.3-4+deb7u1_all.deb에서) ...

Selecting previously unselected package python-pkg-resources.

python-pkg-resources 패키지를 푸는 중입니다 (.../python-pkg-resources_0.6.24-1_all.deb에서) ...

Selecting previously unselected package python-setuptools.

python-setuptools 패키지를 푸는 중입니다 (.../python-setuptools_0.6.24-1_all.deb에서) ...

man-db에 대한 트리거를 처리하는 중입니다 ...

libssl-dev (1.0.1e-2+rvt+deb7u17) 설정하는 중입니다 ...

libssl-doc (1.0.1e-2+rvt+deb7u17) 설정하는 중입니다 ...

python2.7-dev (2.7.3-6+deb7u2) 설정하는 중입니다 ...

python-dev (2.7.3-4+deb7u1) 설정하는 중입니다 ...

python-pkg-resources (0.6.24-1) 설정하는 중입니다 ...

python-setuptools (0.6.24-1) 설정하는 중입니다 ...

Trying to install WebIOPi for Python 2.7.3

running install

Checking .pth file support in /usr/local/lib/python2.7/dist-packages/

/usr/bin/python -E -c pass

TEST PASSED: /usr/local/lib/python2.7/dist-packages/ appears to support .pth files

running bdist_egg

running egg_info

creating WebIOPi.egg-info

writing WebIOPi.egg-info/PKG-INFO

writing top-level names to WebIOPi.egg-info/top_level.txt

writing dependency_links to WebIOPi.egg-info/dependency_links.txt

writing manifest file 'WebIOPi.egg-info/SOURCES.txt'

reading manifest file 'WebIOPi.egg-info/SOURCES.txt'

writing manifest file 'WebIOPi.egg-info/SOURCES.txt'

installing library code to build/bdist.linux-armv7l/egg

running install_lib

running build_py

creating build

creating build/lib.linux-armv7l-2.7

creating build/lib.linux-armv7l-2.7/webiopi

copying webiopi/__main__.py -> build/lib.linux-armv7l-2.7/webiopi

copying webiopi/__init__.py -> build/lib.linux-armv7l-2.7/webiopi

creating build/lib.linux-armv7l-2.7/webiopi/utils

copying webiopi/utils/crypto.py -> build/lib.linux-armv7l-2.7/webiopi/utils

copying webiopi/utils/config.py -> build/lib.linux-armv7l-2.7/webiopi/utils

copying webiopi/utils/loader.py -> build/lib.linux-armv7l-2.7/webiopi/utils

copying webiopi/utils/version.py -> build/lib.linux-armv7l-2.7/webiopi/utils

copying webiopi/utils/__init__.py -> build/lib.linux-armv7l-2.7/webiopi/utils

copying webiopi/utils/logger.py -> build/lib.linux-armv7l-2.7/webiopi/utils

copying webiopi/utils/types.py -> build/lib.linux-armv7l-2.7/webiopi/utils

copying webiopi/utils/thread.py -> build/lib.linux-armv7l-2.7/webiopi/utils

creating build/lib.linux-armv7l-2.7/webiopi/clients

copying webiopi/clients/__init__.py -> build/lib.linux-armv7l-2.7/webiopi/clients

creating build/lib.linux-armv7l-2.7/webiopi/protocols

copying webiopi/protocols/coap.py -> build/lib.linux-armv7l-2.7/webiopi/protocols

copying webiopi/protocols/__init__.py -> build/lib.linux-armv7l-2.7/webiopi/protocols

copying webiopi/protocols/rest.py -> build/lib.linux-armv7l-2.7/webiopi/protocols

copying webiopi/protocols/http.py -> build/lib.linux-armv7l-2.7/webiopi/protocols

creating build/lib.linux-armv7l-2.7/webiopi/server

copying webiopi/server/__init__.py -> build/lib.linux-armv7l-2.7/webiopi/server

creating build/lib.linux-armv7l-2.7/webiopi/decorators

copying webiopi/decorators/__init__.py -> build/lib.linux-armv7l-2.7/webiopi/decorators

copying webiopi/decorators/rest.py -> build/lib.linux-armv7l-2.7/webiopi/decorators

creating build/lib.linux-armv7l-2.7/webiopi/devices

copying webiopi/devices/i2c.py -> build/lib.linux-armv7l-2.7/webiopi/devices

copying webiopi/devices/onewire.py -> build/lib.linux-armv7l-2.7/webiopi/devices

copying webiopi/devices/__init__.py -> build/lib.linux-armv7l-2.7/webiopi/devices

copying webiopi/devices/spi.py -> build/lib.linux-armv7l-2.7/webiopi/devices

copying webiopi/devices/serial.py -> build/lib.linux-armv7l-2.7/webiopi/devices

copying webiopi/devices/bus.py -> build/lib.linux-armv7l-2.7/webiopi/devices

copying webiopi/devices/manager.py -> build/lib.linux-armv7l-2.7/webiopi/devices

copying webiopi/devices/instance.py -> build/lib.linux-armv7l-2.7/webiopi/devices

creating build/lib.linux-armv7l-2.7/webiopi/devices/digital

copying webiopi/devices/digital/pcf8574.py -> build/lib.linux-armv7l-2.7/webiopi/devices/digital

copying webiopi/devices/digital/ds2408.py -> build/lib.linux-armv7l-2.7/webiopi/devices/digital

copying webiopi/devices/digital/__init__.py -> build/lib.linux-armv7l-2.7/webiopi/devices/digital

copying webiopi/devices/digital/mcp23XXX.py -> build/lib.linux-armv7l-2.7/webiopi/devices/digital

copying webiopi/devices/digital/gpio.py -> build/lib.linux-armv7l-2.7/webiopi/devices/digital

creating build/lib.linux-armv7l-2.7/webiopi/devices/analog

copying webiopi/devices/analog/pcf8591.py -> build/lib.linux-armv7l-2.7/webiopi/devices/analog

copying webiopi/devices/analog/__init__.py -> build/lib.linux-armv7l-2.7/webiopi/devices/analog

copying webiopi/devices/analog/mcp492X.py -> build/lib.linux-armv7l-2.7/webiopi/devices/analog

copying webiopi/devices/analog/mcp48XX.py -> build/lib.linux-armv7l-2.7/webiopi/devices/analog

copying webiopi/devices/analog/mcp3x0x.py -> build/lib.linux-armv7l-2.7/webiopi/devices/analog

copying webiopi/devices/analog/mcp4725.py -> build/lib.linux-armv7l-2.7/webiopi/devices/analog

copying webiopi/devices/analog/pca9685.py -> build/lib.linux-armv7l-2.7/webiopi/devices/analog

copying webiopi/devices/analog/ads1x1x.py -> build/lib.linux-armv7l-2.7/webiopi/devices/analog

creating build/lib.linux-armv7l-2.7/webiopi/devices/sensor

copying webiopi/devices/sensor/tslXXXX.py -> build/lib.linux-armv7l-2.7/webiopi/devices/sensor

copying webiopi/devices/sensor/onewiretemp.py -> build/lib.linux-armv7l-2.7/webiopi/devices/sensor

copying webiopi/devices/sensor/bmp085.py -> build/lib.linux-armv7l-2.7/webiopi/devices/sensor

copying webiopi/devices/sensor/__init__.py -> build/lib.linux-armv7l-2.7/webiopi/devices/sensor

copying webiopi/devices/sensor/hytXXX.py -> build/lib.linux-armv7l-2.7/webiopi/devices/sensor

copying webiopi/devices/sensor/tmpXXX.py -> build/lib.linux-armv7l-2.7/webiopi/devices/sensor

copying webiopi/devices/sensor/vcnl4000.py -> build/lib.linux-armv7l-2.7/webiopi/devices/sensor

creating build/lib.linux-armv7l-2.7/webiopi/devices/shield

copying webiopi/devices/shield/__init__.py -> build/lib.linux-armv7l-2.7/webiopi/devices/shield

copying webiopi/devices/shield/piface.py -> build/lib.linux-armv7l-2.7/webiopi/devices/shield

running build_ext

building '_webiopi.GPIO' extension

creating build/temp.linux-armv7l-2.7

creating build/temp.linux-armv7l-2.7/native

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c native/bridge.c -o build/temp.linux-armv7l-2.7/native/bridge.o

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c native/gpio.c -o build/temp.linux-armv7l-2.7/native/gpio.o

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c native/cpuinfo.c -o build/temp.linux-armv7l-2.7/native/cpuinfo.o

creating build/lib.linux-armv7l-2.7/_webiopi

gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-armv7l-2.7/native/bridge.o build/temp.linux-armv7l-2.7/native/gpio.o build/temp.linux-armv7l-2.7/native/cpuinfo.o -o build/lib.linux-armv7l-2.7/_webiopi/GPIO.so

creating build/bdist.linux-armv7l

creating build/bdist.linux-armv7l/egg

creating build/bdist.linux-armv7l/egg/webiopi

creating build/bdist.linux-armv7l/egg/webiopi/server

copying build/lib.linux-armv7l-2.7/webiopi/server/__init__.py -> build/bdist.linux-armv7l/egg/webiopi/server

copying build/lib.linux-armv7l-2.7/webiopi/__main__.py -> build/bdist.linux-armv7l/egg/webiopi

creating build/bdist.linux-armv7l/egg/webiopi/decorators

copying build/lib.linux-armv7l-2.7/webiopi/decorators/__init__.py -> build/bdist.linux-armv7l/egg/webiopi/decorators

copying build/lib.linux-armv7l-2.7/webiopi/decorators/rest.py -> build/bdist.linux-armv7l/egg/webiopi/decorators

copying build/lib.linux-armv7l-2.7/webiopi/__init__.py -> build/bdist.linux-armv7l/egg/webiopi

creating build/bdist.linux-armv7l/egg/webiopi/utils

copying build/lib.linux-armv7l-2.7/webiopi/utils/crypto.py -> build/bdist.linux-armv7l/egg/webiopi/utils

copying build/lib.linux-armv7l-2.7/webiopi/utils/config.py -> build/bdist.linux-armv7l/egg/webiopi/utils

copying build/lib.linux-armv7l-2.7/webiopi/utils/loader.py -> build/bdist.linux-armv7l/egg/webiopi/utils

copying build/lib.linux-armv7l-2.7/webiopi/utils/version.py -> build/bdist.linux-armv7l/egg/webiopi/utils

copying build/lib.linux-armv7l-2.7/webiopi/utils/__init__.py -> build/bdist.linux-armv7l/egg/webiopi/utils

copying build/lib.linux-armv7l-2.7/webiopi/utils/logger.py -> build/bdist.linux-armv7l/egg/webiopi/utils

copying build/lib.linux-armv7l-2.7/webiopi/utils/types.py -> build/bdist.linux-armv7l/egg/webiopi/utils

copying build/lib.linux-armv7l-2.7/webiopi/utils/thread.py -> build/bdist.linux-armv7l/egg/webiopi/utils

creating build/bdist.linux-armv7l/egg/webiopi/protocols

copying build/lib.linux-armv7l-2.7/webiopi/protocols/coap.py -> build/bdist.linux-armv7l/egg/webiopi/protocols

copying build/lib.linux-armv7l-2.7/webiopi/protocols/__init__.py -> build/bdist.linux-armv7l/egg/webiopi/protocols

copying build/lib.linux-armv7l-2.7/webiopi/protocols/rest.py -> build/bdist.linux-armv7l/egg/webiopi/protocols

copying build/lib.linux-armv7l-2.7/webiopi/protocols/http.py -> build/bdist.linux-armv7l/egg/webiopi/protocols

creating build/bdist.linux-armv7l/egg/webiopi/devices

copying build/lib.linux-armv7l-2.7/webiopi/devices/i2c.py -> build/bdist.linux-armv7l/egg/webiopi/devices

creating build/bdist.linux-armv7l/egg/webiopi/devices/digital

copying build/lib.linux-armv7l-2.7/webiopi/devices/digital/pcf8574.py -> build/bdist.linux-armv7l/egg/webiopi/devices/digital

copying build/lib.linux-armv7l-2.7/webiopi/devices/digital/ds2408.py -> build/bdist.linux-armv7l/egg/webiopi/devices/digital

copying build/lib.linux-armv7l-2.7/webiopi/devices/digital/__init__.py -> build/bdist.linux-armv7l/egg/webiopi/devices/digital

copying build/lib.linux-armv7l-2.7/webiopi/devices/digital/mcp23XXX.py -> build/bdist.linux-armv7l/egg/webiopi/devices/digital

copying build/lib.linux-armv7l-2.7/webiopi/devices/digital/gpio.py -> build/bdist.linux-armv7l/egg/webiopi/devices/digital

copying build/lib.linux-armv7l-2.7/webiopi/devices/onewire.py -> build/bdist.linux-armv7l/egg/webiopi/devices

copying build/lib.linux-armv7l-2.7/webiopi/devices/__init__.py -> build/bdist.linux-armv7l/egg/webiopi/devices

copying build/lib.linux-armv7l-2.7/webiopi/devices/spi.py -> build/bdist.linux-armv7l/egg/webiopi/devices

creating build/bdist.linux-armv7l/egg/webiopi/devices/shield

copying build/lib.linux-armv7l-2.7/webiopi/devices/shield/__init__.py -> build/bdist.linux-armv7l/egg/webiopi/devices/shield

copying build/lib.linux-armv7l-2.7/webiopi/devices/shield/piface.py -> build/bdist.linux-armv7l/egg/webiopi/devices/shield

copying build/lib.linux-armv7l-2.7/webiopi/devices/serial.py -> build/bdist.linux-armv7l/egg/webiopi/devices

copying build/lib.linux-armv7l-2.7/webiopi/devices/bus.py -> build/bdist.linux-armv7l/egg/webiopi/devices

creating build/bdist.linux-armv7l/egg/webiopi/devices/analog

copying build/lib.linux-armv7l-2.7/webiopi/devices/analog/pcf8591.py -> build/bdist.linux-armv7l/egg/webiopi/devices/analog

copying build/lib.linux-armv7l-2.7/webiopi/devices/analog/__init__.py -> build/bdist.linux-armv7l/egg/webiopi/devices/analog

copying build/lib.linux-armv7l-2.7/webiopi/devices/analog/mcp492X.py -> build/bdist.linux-armv7l/egg/webiopi/devices/analog

copying build/lib.linux-armv7l-2.7/webiopi/devices/analog/mcp48XX.py -> build/bdist.linux-armv7l/egg/webiopi/devices/analog

copying build/lib.linux-armv7l-2.7/webiopi/devices/analog/mcp3x0x.py -> build/bdist.linux-armv7l/egg/webiopi/devices/analog

copying build/lib.linux-armv7l-2.7/webiopi/devices/analog/mcp4725.py -> build/bdist.linux-armv7l/egg/webiopi/devices/analog

copying build/lib.linux-armv7l-2.7/webiopi/devices/analog/pca9685.py -> build/bdist.linux-armv7l/egg/webiopi/devices/analog

copying build/lib.linux-armv7l-2.7/webiopi/devices/analog/ads1x1x.py -> build/bdist.linux-armv7l/egg/webiopi/devices/analog

copying build/lib.linux-armv7l-2.7/webiopi/devices/manager.py -> build/bdist.linux-armv7l/egg/webiopi/devices

creating build/bdist.linux-armv7l/egg/webiopi/devices/sensor

copying build/lib.linux-armv7l-2.7/webiopi/devices/sensor/tslXXXX.py -> build/bdist.linux-armv7l/egg/webiopi/devices/sensor

copying build/lib.linux-armv7l-2.7/webiopi/devices/sensor/onewiretemp.py -> build/bdist.linux-armv7l/egg/webiopi/devices/sensor

copying build/lib.linux-armv7l-2.7/webiopi/devices/sensor/bmp085.py -> build/bdist.linux-armv7l/egg/webiopi/devices/sensor

copying build/lib.linux-armv7l-2.7/webiopi/devices/sensor/__init__.py -> build/bdist.linux-armv7l/egg/webiopi/devices/sensor

copying build/lib.linux-armv7l-2.7/webiopi/devices/sensor/hytXXX.py -> build/bdist.linux-armv7l/egg/webiopi/devices/sensor

copying build/lib.linux-armv7l-2.7/webiopi/devices/sensor/tmpXXX.py -> build/bdist.linux-armv7l/egg/webiopi/devices/sensor

copying build/lib.linux-armv7l-2.7/webiopi/devices/sensor/vcnl4000.py -> build/bdist.linux-armv7l/egg/webiopi/devices/sensor

copying build/lib.linux-armv7l-2.7/webiopi/devices/instance.py -> build/bdist.linux-armv7l/egg/webiopi/devices

creating build/bdist.linux-armv7l/egg/webiopi/clients

copying build/lib.linux-armv7l-2.7/webiopi/clients/__init__.py -> build/bdist.linux-armv7l/egg/webiopi/clients

creating build/bdist.linux-armv7l/egg/_webiopi

copying build/lib.linux-armv7l-2.7/_webiopi/GPIO.so -> build/bdist.linux-armv7l/egg/_webiopi

byte-compiling build/bdist.linux-armv7l/egg/webiopi/server/__init__.py to __init__.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/__main__.py to __main__.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/decorators/__init__.py to __init__.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/decorators/rest.py to rest.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/__init__.py to __init__.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/utils/crypto.py to crypto.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/utils/config.py to config.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/utils/loader.py to loader.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/utils/version.py to version.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/utils/__init__.py to __init__.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/utils/logger.py to logger.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/utils/types.py to types.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/utils/thread.py to thread.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/protocols/coap.py to coap.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/protocols/__init__.py to __init__.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/protocols/rest.py to rest.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/protocols/http.py to http.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/i2c.py to i2c.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/digital/pcf8574.py to pcf8574.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/digital/ds2408.py to ds2408.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/digital/__init__.py to __init__.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/digital/mcp23XXX.py to mcp23XXX.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/digital/gpio.py to gpio.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/onewire.py to onewire.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/__init__.py to __init__.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/spi.py to spi.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/shield/__init__.py to __init__.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/shield/piface.py to piface.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/serial.py to serial.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/bus.py to bus.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/analog/pcf8591.py to pcf8591.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/analog/__init__.py to __init__.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/analog/mcp492X.py to mcp492X.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/analog/mcp48XX.py to mcp48XX.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/analog/mcp3x0x.py to mcp3x0x.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/analog/mcp4725.py to mcp4725.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/analog/pca9685.py to pca9685.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/analog/ads1x1x.py to ads1x1x.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/manager.py to manager.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/sensor/tslXXXX.py to tslXXXX.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/sensor/onewiretemp.py to onewiretemp.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/sensor/bmp085.py to bmp085.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/sensor/__init__.py to __init__.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/sensor/hytXXX.py to hytXXX.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/sensor/tmpXXX.py to tmpXXX.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/sensor/vcnl4000.py to vcnl4000.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/instance.py to instance.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/clients/__init__.py to __init__.pyc

creating stub loader for _webiopi/GPIO.so

Creating missing __init__.py for _webiopi

byte-compiling build/bdist.linux-armv7l/egg/_webiopi/GPIO.py to GPIO.pyc

byte-compiling build/bdist.linux-armv7l/egg/_webiopi/__init__.py to __init__.pyc

creating build/bdist.linux-armv7l/egg/EGG-INFO

copying WebIOPi.egg-info/PKG-INFO -> build/bdist.linux-armv7l/egg/EGG-INFO

copying WebIOPi.egg-info/SOURCES.txt -> build/bdist.linux-armv7l/egg/EGG-INFO

copying WebIOPi.egg-info/dependency_links.txt -> build/bdist.linux-armv7l/egg/EGG-INFO

copying WebIOPi.egg-info/top_level.txt -> build/bdist.linux-armv7l/egg/EGG-INFO

writing build/bdist.linux-armv7l/egg/EGG-INFO/native_libs.txt

zip_safe flag not set; analyzing archive contents...

creating dist

creating 'dist/WebIOPi-0.7.1-py2.7-linux-armv7l.egg' and adding 'build/bdist.linux-armv7l/egg' to it

removing 'build/bdist.linux-armv7l/egg' (and everything under it)

Processing WebIOPi-0.7.1-py2.7-linux-armv7l.egg

creating /usr/local/lib/python2.7/dist-packages/WebIOPi-0.7.1-py2.7-linux-armv7l.egg

Extracting WebIOPi-0.7.1-py2.7-linux-armv7l.egg to /usr/local/lib/python2.7/dist-packages

Adding WebIOPi 0.7.1 to easy-install.pth file


Installed /usr/local/lib/python2.7/dist-packages/WebIOPi-0.7.1-py2.7-linux-armv7l.egg

Processing dependencies for WebIOPi==0.7.1

Finished processing dependencies for WebIOPi==0.7.1

WebIOPi installed for Python 2.7.3


Found Python 3.2.3...

Trying to install python3-dev using apt-get

패키지 목록을 읽는 중입니다... 완료

의존성 트리를 만드는 중입니다

상태 정보를 읽는 중입니다... 완료

다음 패키지를 더 설치할 것입니다:

  libpython3.2 python3-pkg-resources python3.2-dev

다음 새 패키지를 설치할 것입니다:

  libpython3.2 python3-dev python3-pkg-resources python3-setuptools python3.2-dev

0개 업그레이드, 5개 새로 설치, 0개 제거 및 6개 업그레이드 안 함.

32.4 M바이트 아카이브를 받아야 합니다.

이 작업 후 42.0 M바이트의 디스크 공간을 더 사용하게 됩니다.

받기:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libpython3.2 armhf 3.2.3-7 [1,173 kB]

받기:2 http://mirrordirector.raspbian.org/raspbian/ wheezy/main python3.2-dev armhf 3.2.3-7 [30.9 MB]

받기:3 http://mirrordirector.raspbian.org/raspbian/ wheezy/main python3-dev all 3.2.3-6 [1,062 B]

받기:4 http://mirrordirector.raspbian.org/raspbian/ wheezy/main python3-pkg-resources all 0.6.24-1 [33.9 kB]

받기:5 http://mirrordirector.raspbian.org/raspbian/ wheezy/main python3-setuptools all 0.6.24-1 [363 kB]

내려받기 32.4 M바이트, 소요시간 14초 (2,311 k바이트/초)

Selecting previously unselected package libpython3.2.

(데이터베이스 읽는중 ...현재 93423개의 파일과 디렉터리가 설치되어 있습니다.)

libpython3.2 패키지를 푸는 중입니다 (.../libpython3.2_3.2.3-7_armhf.deb에서) ...

Selecting previously unselected package python3.2-dev.

python3.2-dev 패키지를 푸는 중입니다 (.../python3.2-dev_3.2.3-7_armhf.deb에서) ...

Selecting previously unselected package python3-dev.

python3-dev 패키지를 푸는 중입니다 (.../python3-dev_3.2.3-6_all.deb에서) ...

Selecting previously unselected package python3-pkg-resources.

python3-pkg-resources 패키지를 푸는 중입니다 (.../python3-pkg-resources_0.6.24-1_all.deb에서) ...

Selecting previously unselected package python3-setuptools.

python3-setuptools 패키지를 푸는 중입니다 (.../python3-setuptools_0.6.24-1_all.deb에서) ...

man-db에 대한 트리거를 처리하는 중입니다 ...

libpython3.2 (3.2.3-7) 설정하는 중입니다 ...

python3.2-dev (3.2.3-7) 설정하는 중입니다 ...

python3-dev (3.2.3-6) 설정하는 중입니다 ...

python3-pkg-resources (0.6.24-1) 설정하는 중입니다 ...

python3-setuptools (0.6.24-1) 설정하는 중입니다 ...

Trying to install WebIOPi for Python 3.2.3

running install

Checking .pth file support in /usr/local/lib/python3.2/dist-packages/

/usr/bin/python3 -E -c pass

TEST PASSED: /usr/local/lib/python3.2/dist-packages/ appears to support .pth files

running bdist_egg

running egg_info

writing WebIOPi.egg-info/PKG-INFO

writing top-level names to WebIOPi.egg-info/top_level.txt

writing dependency_links to WebIOPi.egg-info/dependency_links.txt

reading manifest file 'WebIOPi.egg-info/SOURCES.txt'

writing manifest file 'WebIOPi.egg-info/SOURCES.txt'

installing library code to build/bdist.linux-armv7l/egg

running install_lib

running build_py

creating build/lib.linux-armv7l-3.2

creating build/lib.linux-armv7l-3.2/webiopi

copying webiopi/__main__.py -> build/lib.linux-armv7l-3.2/webiopi

copying webiopi/__init__.py -> build/lib.linux-armv7l-3.2/webiopi

creating build/lib.linux-armv7l-3.2/webiopi/utils

copying webiopi/utils/crypto.py -> build/lib.linux-armv7l-3.2/webiopi/utils

copying webiopi/utils/config.py -> build/lib.linux-armv7l-3.2/webiopi/utils

copying webiopi/utils/loader.py -> build/lib.linux-armv7l-3.2/webiopi/utils

copying webiopi/utils/version.py -> build/lib.linux-armv7l-3.2/webiopi/utils

copying webiopi/utils/__init__.py -> build/lib.linux-armv7l-3.2/webiopi/utils

copying webiopi/utils/logger.py -> build/lib.linux-armv7l-3.2/webiopi/utils

copying webiopi/utils/types.py -> build/lib.linux-armv7l-3.2/webiopi/utils

copying webiopi/utils/thread.py -> build/lib.linux-armv7l-3.2/webiopi/utils

creating build/lib.linux-armv7l-3.2/webiopi/clients

copying webiopi/clients/__init__.py -> build/lib.linux-armv7l-3.2/webiopi/clients

creating build/lib.linux-armv7l-3.2/webiopi/protocols

copying webiopi/protocols/coap.py -> build/lib.linux-armv7l-3.2/webiopi/protocols

copying webiopi/protocols/__init__.py -> build/lib.linux-armv7l-3.2/webiopi/protocols

copying webiopi/protocols/rest.py -> build/lib.linux-armv7l-3.2/webiopi/protocols

copying webiopi/protocols/http.py -> build/lib.linux-armv7l-3.2/webiopi/protocols

creating build/lib.linux-armv7l-3.2/webiopi/server

copying webiopi/server/__init__.py -> build/lib.linux-armv7l-3.2/webiopi/server

creating build/lib.linux-armv7l-3.2/webiopi/decorators

copying webiopi/decorators/__init__.py -> build/lib.linux-armv7l-3.2/webiopi/decorators

copying webiopi/decorators/rest.py -> build/lib.linux-armv7l-3.2/webiopi/decorators

creating build/lib.linux-armv7l-3.2/webiopi/devices

copying webiopi/devices/i2c.py -> build/lib.linux-armv7l-3.2/webiopi/devices

copying webiopi/devices/onewire.py -> build/lib.linux-armv7l-3.2/webiopi/devices

copying webiopi/devices/__init__.py -> build/lib.linux-armv7l-3.2/webiopi/devices

copying webiopi/devices/spi.py -> build/lib.linux-armv7l-3.2/webiopi/devices

copying webiopi/devices/serial.py -> build/lib.linux-armv7l-3.2/webiopi/devices

copying webiopi/devices/bus.py -> build/lib.linux-armv7l-3.2/webiopi/devices

copying webiopi/devices/manager.py -> build/lib.linux-armv7l-3.2/webiopi/devices

copying webiopi/devices/instance.py -> build/lib.linux-armv7l-3.2/webiopi/devices

creating build/lib.linux-armv7l-3.2/webiopi/devices/digital

copying webiopi/devices/digital/pcf8574.py -> build/lib.linux-armv7l-3.2/webiopi/devices/digital

copying webiopi/devices/digital/ds2408.py -> build/lib.linux-armv7l-3.2/webiopi/devices/digital

copying webiopi/devices/digital/__init__.py -> build/lib.linux-armv7l-3.2/webiopi/devices/digital

copying webiopi/devices/digital/mcp23XXX.py -> build/lib.linux-armv7l-3.2/webiopi/devices/digital

copying webiopi/devices/digital/gpio.py -> build/lib.linux-armv7l-3.2/webiopi/devices/digital

creating build/lib.linux-armv7l-3.2/webiopi/devices/analog

copying webiopi/devices/analog/pcf8591.py -> build/lib.linux-armv7l-3.2/webiopi/devices/analog

copying webiopi/devices/analog/__init__.py -> build/lib.linux-armv7l-3.2/webiopi/devices/analog

copying webiopi/devices/analog/mcp492X.py -> build/lib.linux-armv7l-3.2/webiopi/devices/analog

copying webiopi/devices/analog/mcp48XX.py -> build/lib.linux-armv7l-3.2/webiopi/devices/analog

copying webiopi/devices/analog/mcp3x0x.py -> build/lib.linux-armv7l-3.2/webiopi/devices/analog

copying webiopi/devices/analog/mcp4725.py -> build/lib.linux-armv7l-3.2/webiopi/devices/analog

copying webiopi/devices/analog/pca9685.py -> build/lib.linux-armv7l-3.2/webiopi/devices/analog

copying webiopi/devices/analog/ads1x1x.py -> build/lib.linux-armv7l-3.2/webiopi/devices/analog

creating build/lib.linux-armv7l-3.2/webiopi/devices/sensor

copying webiopi/devices/sensor/tslXXXX.py -> build/lib.linux-armv7l-3.2/webiopi/devices/sensor

copying webiopi/devices/sensor/onewiretemp.py -> build/lib.linux-armv7l-3.2/webiopi/devices/sensor

copying webiopi/devices/sensor/bmp085.py -> build/lib.linux-armv7l-3.2/webiopi/devices/sensor

copying webiopi/devices/sensor/__init__.py -> build/lib.linux-armv7l-3.2/webiopi/devices/sensor

copying webiopi/devices/sensor/hytXXX.py -> build/lib.linux-armv7l-3.2/webiopi/devices/sensor

copying webiopi/devices/sensor/tmpXXX.py -> build/lib.linux-armv7l-3.2/webiopi/devices/sensor

copying webiopi/devices/sensor/vcnl4000.py -> build/lib.linux-armv7l-3.2/webiopi/devices/sensor

creating build/lib.linux-armv7l-3.2/webiopi/devices/shield

copying webiopi/devices/shield/__init__.py -> build/lib.linux-armv7l-3.2/webiopi/devices/shield

copying webiopi/devices/shield/piface.py -> build/lib.linux-armv7l-3.2/webiopi/devices/shield

running build_ext

building '_webiopi.GPIO' extension

creating build/temp.linux-armv7l-3.2

creating build/temp.linux-armv7l-3.2/native

gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -fPIC -I/usr/include/python3.2mu -c native/bridge.c -o build/temp.linux-armv7l-3.2/native/bridge.o

gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -fPIC -I/usr/include/python3.2mu -c native/gpio.c -o build/temp.linux-armv7l-3.2/native/gpio.o

gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -fPIC -I/usr/include/python3.2mu -c native/cpuinfo.c -o build/temp.linux-armv7l-3.2/native/cpuinfo.o

native/cpuinfo.c: In function ‘get_cpuinfo_revision’:

native/cpuinfo.c:38:12: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result]

creating build/lib.linux-armv7l-3.2/_webiopi

gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-armv7l-3.2/native/bridge.o build/temp.linux-armv7l-3.2/native/gpio.o build/temp.linux-armv7l-3.2/native/cpuinfo.o -o build/lib.linux-armv7l-3.2/_webiopi/GPIO.cpython-32mu.so

creating build/bdist.linux-armv7l/egg

creating build/bdist.linux-armv7l/egg/webiopi

creating build/bdist.linux-armv7l/egg/webiopi/server

copying build/lib.linux-armv7l-3.2/webiopi/server/__init__.py -> build/bdist.linux-armv7l/egg/webiopi/server

copying build/lib.linux-armv7l-3.2/webiopi/__main__.py -> build/bdist.linux-armv7l/egg/webiopi

creating build/bdist.linux-armv7l/egg/webiopi/decorators

copying build/lib.linux-armv7l-3.2/webiopi/decorators/__init__.py -> build/bdist.linux-armv7l/egg/webiopi/decorators

copying build/lib.linux-armv7l-3.2/webiopi/decorators/rest.py -> build/bdist.linux-armv7l/egg/webiopi/decorators

copying build/lib.linux-armv7l-3.2/webiopi/__init__.py -> build/bdist.linux-armv7l/egg/webiopi

creating build/bdist.linux-armv7l/egg/webiopi/utils

copying build/lib.linux-armv7l-3.2/webiopi/utils/crypto.py -> build/bdist.linux-armv7l/egg/webiopi/utils

copying build/lib.linux-armv7l-3.2/webiopi/utils/config.py -> build/bdist.linux-armv7l/egg/webiopi/utils

copying build/lib.linux-armv7l-3.2/webiopi/utils/loader.py -> build/bdist.linux-armv7l/egg/webiopi/utils

copying build/lib.linux-armv7l-3.2/webiopi/utils/version.py -> build/bdist.linux-armv7l/egg/webiopi/utils

copying build/lib.linux-armv7l-3.2/webiopi/utils/__init__.py -> build/bdist.linux-armv7l/egg/webiopi/utils

copying build/lib.linux-armv7l-3.2/webiopi/utils/logger.py -> build/bdist.linux-armv7l/egg/webiopi/utils

copying build/lib.linux-armv7l-3.2/webiopi/utils/types.py -> build/bdist.linux-armv7l/egg/webiopi/utils

copying build/lib.linux-armv7l-3.2/webiopi/utils/thread.py -> build/bdist.linux-armv7l/egg/webiopi/utils

creating build/bdist.linux-armv7l/egg/webiopi/protocols

copying build/lib.linux-armv7l-3.2/webiopi/protocols/coap.py -> build/bdist.linux-armv7l/egg/webiopi/protocols

copying build/lib.linux-armv7l-3.2/webiopi/protocols/__init__.py -> build/bdist.linux-armv7l/egg/webiopi/protocols

copying build/lib.linux-armv7l-3.2/webiopi/protocols/rest.py -> build/bdist.linux-armv7l/egg/webiopi/protocols

copying build/lib.linux-armv7l-3.2/webiopi/protocols/http.py -> build/bdist.linux-armv7l/egg/webiopi/protocols

creating build/bdist.linux-armv7l/egg/webiopi/devices

copying build/lib.linux-armv7l-3.2/webiopi/devices/i2c.py -> build/bdist.linux-armv7l/egg/webiopi/devices

creating build/bdist.linux-armv7l/egg/webiopi/devices/digital

copying build/lib.linux-armv7l-3.2/webiopi/devices/digital/pcf8574.py -> build/bdist.linux-armv7l/egg/webiopi/devices/digital

copying build/lib.linux-armv7l-3.2/webiopi/devices/digital/ds2408.py -> build/bdist.linux-armv7l/egg/webiopi/devices/digital

copying build/lib.linux-armv7l-3.2/webiopi/devices/digital/__init__.py -> build/bdist.linux-armv7l/egg/webiopi/devices/digital

copying build/lib.linux-armv7l-3.2/webiopi/devices/digital/mcp23XXX.py -> build/bdist.linux-armv7l/egg/webiopi/devices/digital

copying build/lib.linux-armv7l-3.2/webiopi/devices/digital/gpio.py -> build/bdist.linux-armv7l/egg/webiopi/devices/digital

copying build/lib.linux-armv7l-3.2/webiopi/devices/onewire.py -> build/bdist.linux-armv7l/egg/webiopi/devices

copying build/lib.linux-armv7l-3.2/webiopi/devices/__init__.py -> build/bdist.linux-armv7l/egg/webiopi/devices

copying build/lib.linux-armv7l-3.2/webiopi/devices/spi.py -> build/bdist.linux-armv7l/egg/webiopi/devices

creating build/bdist.linux-armv7l/egg/webiopi/devices/shield

copying build/lib.linux-armv7l-3.2/webiopi/devices/shield/__init__.py -> build/bdist.linux-armv7l/egg/webiopi/devices/shield

copying build/lib.linux-armv7l-3.2/webiopi/devices/shield/piface.py -> build/bdist.linux-armv7l/egg/webiopi/devices/shield

copying build/lib.linux-armv7l-3.2/webiopi/devices/serial.py -> build/bdist.linux-armv7l/egg/webiopi/devices

copying build/lib.linux-armv7l-3.2/webiopi/devices/bus.py -> build/bdist.linux-armv7l/egg/webiopi/devices

creating build/bdist.linux-armv7l/egg/webiopi/devices/analog

copying build/lib.linux-armv7l-3.2/webiopi/devices/analog/pcf8591.py -> build/bdist.linux-armv7l/egg/webiopi/devices/analog

copying build/lib.linux-armv7l-3.2/webiopi/devices/analog/__init__.py -> build/bdist.linux-armv7l/egg/webiopi/devices/analog

copying build/lib.linux-armv7l-3.2/webiopi/devices/analog/mcp492X.py -> build/bdist.linux-armv7l/egg/webiopi/devices/analog

copying build/lib.linux-armv7l-3.2/webiopi/devices/analog/mcp48XX.py -> build/bdist.linux-armv7l/egg/webiopi/devices/analog

copying build/lib.linux-armv7l-3.2/webiopi/devices/analog/mcp3x0x.py -> build/bdist.linux-armv7l/egg/webiopi/devices/analog

copying build/lib.linux-armv7l-3.2/webiopi/devices/analog/mcp4725.py -> build/bdist.linux-armv7l/egg/webiopi/devices/analog

copying build/lib.linux-armv7l-3.2/webiopi/devices/analog/pca9685.py -> build/bdist.linux-armv7l/egg/webiopi/devices/analog

copying build/lib.linux-armv7l-3.2/webiopi/devices/analog/ads1x1x.py -> build/bdist.linux-armv7l/egg/webiopi/devices/analog

copying build/lib.linux-armv7l-3.2/webiopi/devices/manager.py -> build/bdist.linux-armv7l/egg/webiopi/devices

creating build/bdist.linux-armv7l/egg/webiopi/devices/sensor

copying build/lib.linux-armv7l-3.2/webiopi/devices/sensor/tslXXXX.py -> build/bdist.linux-armv7l/egg/webiopi/devices/sensor

copying build/lib.linux-armv7l-3.2/webiopi/devices/sensor/onewiretemp.py -> build/bdist.linux-armv7l/egg/webiopi/devices/sensor

copying build/lib.linux-armv7l-3.2/webiopi/devices/sensor/bmp085.py -> build/bdist.linux-armv7l/egg/webiopi/devices/sensor

copying build/lib.linux-armv7l-3.2/webiopi/devices/sensor/__init__.py -> build/bdist.linux-armv7l/egg/webiopi/devices/sensor

copying build/lib.linux-armv7l-3.2/webiopi/devices/sensor/hytXXX.py -> build/bdist.linux-armv7l/egg/webiopi/devices/sensor

copying build/lib.linux-armv7l-3.2/webiopi/devices/sensor/tmpXXX.py -> build/bdist.linux-armv7l/egg/webiopi/devices/sensor

copying build/lib.linux-armv7l-3.2/webiopi/devices/sensor/vcnl4000.py -> build/bdist.linux-armv7l/egg/webiopi/devices/sensor

copying build/lib.linux-armv7l-3.2/webiopi/devices/instance.py -> build/bdist.linux-armv7l/egg/webiopi/devices

creating build/bdist.linux-armv7l/egg/webiopi/clients

copying build/lib.linux-armv7l-3.2/webiopi/clients/__init__.py -> build/bdist.linux-armv7l/egg/webiopi/clients

creating build/bdist.linux-armv7l/egg/_webiopi

copying build/lib.linux-armv7l-3.2/_webiopi/GPIO.cpython-32mu.so -> build/bdist.linux-armv7l/egg/_webiopi

byte-compiling build/bdist.linux-armv7l/egg/webiopi/server/__init__.py to __init__.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/__main__.py to __main__.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/decorators/__init__.py to __init__.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/decorators/rest.py to rest.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/__init__.py to __init__.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/utils/crypto.py to crypto.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/utils/config.py to config.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/utils/loader.py to loader.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/utils/version.py to version.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/utils/__init__.py to __init__.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/utils/logger.py to logger.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/utils/types.py to types.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/utils/thread.py to thread.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/protocols/coap.py to coap.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/protocols/__init__.py to __init__.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/protocols/rest.py to rest.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/protocols/http.py to http.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/i2c.py to i2c.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/digital/pcf8574.py to pcf8574.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/digital/ds2408.py to ds2408.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/digital/__init__.py to __init__.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/digital/mcp23XXX.py to mcp23XXX.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/digital/gpio.py to gpio.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/onewire.py to onewire.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/__init__.py to __init__.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/spi.py to spi.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/shield/__init__.py to __init__.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/shield/piface.py to piface.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/serial.py to serial.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/bus.py to bus.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/analog/pcf8591.py to pcf8591.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/analog/__init__.py to __init__.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/analog/mcp492X.py to mcp492X.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/analog/mcp48XX.py to mcp48XX.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/analog/mcp3x0x.py to mcp3x0x.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/analog/mcp4725.py to mcp4725.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/analog/pca9685.py to pca9685.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/analog/ads1x1x.py to ads1x1x.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/manager.py to manager.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/sensor/tslXXXX.py to tslXXXX.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/sensor/onewiretemp.py to onewiretemp.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/sensor/bmp085.py to bmp085.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/sensor/__init__.py to __init__.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/sensor/hytXXX.py to hytXXX.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/sensor/tmpXXX.py to tmpXXX.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/sensor/vcnl4000.py to vcnl4000.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/devices/instance.py to instance.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/webiopi/clients/__init__.py to __init__.cpython-32.pyc

creating stub loader for _webiopi/GPIO.cpython-32mu.so

Creating missing __init__.py for _webiopi

byte-compiling build/bdist.linux-armv7l/egg/_webiopi/GPIO.py to GPIO.cpython-32.pyc

byte-compiling build/bdist.linux-armv7l/egg/_webiopi/__init__.py to __init__.cpython-32.pyc

creating build/bdist.linux-armv7l/egg/EGG-INFO

copying WebIOPi.egg-info/PKG-INFO -> build/bdist.linux-armv7l/egg/EGG-INFO

copying WebIOPi.egg-info/SOURCES.txt -> build/bdist.linux-armv7l/egg/EGG-INFO

copying WebIOPi.egg-info/dependency_links.txt -> build/bdist.linux-armv7l/egg/EGG-INFO

copying WebIOPi.egg-info/top_level.txt -> build/bdist.linux-armv7l/egg/EGG-INFO

writing build/bdist.linux-armv7l/egg/EGG-INFO/native_libs.txt

zip_safe flag not set; analyzing archive contents...

_webiopi.__pycache__.GPIO.cpython-32: module references __file__

creating 'dist/WebIOPi-0.7.1-py3.2-linux-armv7l.egg' and adding 'build/bdist.linux-armv7l/egg' to it

removing 'build/bdist.linux-armv7l/egg' (and everything under it)

Processing WebIOPi-0.7.1-py3.2-linux-armv7l.egg

creating /usr/local/lib/python3.2/dist-packages/WebIOPi-0.7.1-py3.2-linux-armv7l.egg

Extracting WebIOPi-0.7.1-py3.2-linux-armv7l.egg to /usr/local/lib/python3.2/dist-packages

Adding WebIOPi 0.7.1 to easy-install.pth file


Installed /usr/local/lib/python3.2/dist-packages/WebIOPi-0.7.1-py3.2-linux-armv7l.egg

Processing dependencies for WebIOPi==0.7.1

Finished processing dependencies for WebIOPi==0.7.1

WebIOPi installed for Python 3.2.3


Copying HTML resources...

`htdocs' -> `/usr/share/webiopi/htdocs'

`htdocs/jquery.js' -> `/usr/share/webiopi/htdocs/jquery.js'

`htdocs/index.html' -> `/usr/share/webiopi/htdocs/index.html'

`htdocs/app' -> `/usr/share/webiopi/htdocs/app'

`htdocs/app/gpio-list' -> `/usr/share/webiopi/htdocs/app/gpio-list'

`htdocs/app/gpio-list/index.html' -> `/usr/share/webiopi/htdocs/app/gpio-list/index.html'

`htdocs/app/devices-monitor' -> `/usr/share/webiopi/htdocs/app/devices-monitor'

`htdocs/app/devices-monitor/index.html' -> `/usr/share/webiopi/htdocs/app/devices-monitor/index.html'

`htdocs/app/serial-monitor' -> `/usr/share/webiopi/htdocs/app/serial-monitor'

`htdocs/app/serial-monitor/index.html' -> `/usr/share/webiopi/htdocs/app/serial-monitor/index.html'

`htdocs/app/gpio-header' -> `/usr/share/webiopi/htdocs/app/gpio-header'

`htdocs/app/gpio-header/index.html' -> `/usr/share/webiopi/htdocs/app/gpio-header/index.html'

`htdocs/webiopi.css' -> `/usr/share/webiopi/htdocs/webiopi.css'

`htdocs/webiopi.js' -> `/usr/share/webiopi/htdocs/webiopi.js'


Copying default config file...

`python/config' -> `/etc/webiopi/config'

Copying default passwd file...

`python/passwd' -> `/etc/webiopi/passwd'

Installing startup script...

Installing webiopi command...

Installing webiopi-passwd command...


Do you want to access WebIOPi over Internet ? [y/n]

y

Extracting Weaved Software into /home/pi/src/WebIOPi-0.7.1

Finished extracting

You are running installer script Version: v1.3

Last modified on February 3, 2015, by Mike Young.


Now launching the Weaved connectd daemon installer...

.

Sorry, you are running this installer on an unsupported platform. But if you go to

http://forum.weaved.com we'll be happy to help you get your platform up and running.


Thanks!


WebIOPi successfully installed

* To start WebIOPi foreground   : sudo webiopi [-h] [-c config] [-l log] [-s script] [-d] [port]


* To start WebIOPi background   : sudo /etc/init.d/webiopi start

* To start WebIOPi at boot      : sudo update-rc.d webiopi defaults


* Weaved IoT Kit installed, log on http://developer.weaved.com to access your device


* Look in /home/pi/src/WebIOPi-0.7.1/examples for Python library usage examples 


기본 포트 8000번

$ sudo vi /etc/webiopi/config

[HTTP]

# HTTP Server configuration

enabled = true

port = 8000


# File containing sha256(base64("user:password"))

# Use webiopi-passwd command to generate it

passwd-file = /etc/webiopi/passwd


# Change login prompt message

prompt = "WebIOPi" 


로그인 계정

id: webiopi

pw: raspberry



음..


음.. 되는게 없네? ㅠㅠ


---

rpi 2b용 패치 라는데..

패치하고 나니 좀 먼가 많아졌다?


[링크 : https://groups.google.com/forum/#!topic/webiopi/RGtrRfFJMKY]

[링크 : https://github.com/doublebind/raspi] << 패치 내용 확인요망





Posted by 구차니
embeded/raspberry pi2015. 10. 1. 09:03





$ dmesg

[    6.294914] media: Linux media interface: v0.10

[    6.324668] Linux video capture interface: v2.00

[    6.381431] bcm2835-v4l2: scene mode selected 0, was 0

[    6.381912] bcm2835-v4l2: V4L2 device registered as video0 - stills mode > 1280x720

[    6.396970] bcm2835-v4l2: Broadcom 2835 MMAL video capture ver 0.0.2 loaded. 


$ v4l2-ctl


General/Common options:

  --all              display all information available

  -C, --get-ctrl=<ctrl>[,<ctrl>...]

                     get the value of the controls [VIDIOC_G_EXT_CTRLS]

  -c, --set-ctrl=<ctrl>=<val>[,<ctrl>=<val>...]

                     set the value of the controls [VIDIOC_S_EXT_CTRLS]

  -D, --info         show driver info [VIDIOC_QUERYCAP]

  -d, --device=<dev> use device <dev> instead of /dev/video0

                     if <dev> starts with a digit, then /dev/video<dev> is used

  -h, --help         display this help message

  --help-all         all options

  --help-io          input/output options

  --help-misc        miscellaneous options

  --help-overlay     overlay format options

  --help-selection   crop/selection options

  --help-stds        standards and other video timings options

  --help-streaming   streaming options

  --help-tuner       tuner/modulator options

  --help-vbi         VBI format options

  --help-vidcap      video capture format options

  --help-vidout      vidout output format options

  -k, --concise      be more concise if possible.

  -l, --list-ctrls   display all controls and their values [VIDIOC_QUERYCTRL]

  -L, --list-ctrls-menus

                     display all controls and their menus [VIDIOC_QUERYMENU]

  -w, --wrapper      use the libv4l2 wrapper library.

  --list-devices     list all v4l devices

  --log-status       log the board status in the kernel log [VIDIOC_LOG_STATUS]

  --get-priority     query the current access priority [VIDIOC_G_PRIORITY]

  --set-priority=<prio>

                     set the new access priority [VIDIOC_S_PRIORITY]

                     <prio> is 1 (background), 2 (interactive) or 3 (record)

  --silent           only set the result code, do not print any messages

  --sleep=<secs>     sleep <secs>, call QUERYCAP and close the file handle

  --verbose          turn on verbose ioctl status reporting 


$ v4l2-ctl --help-all


General/Common options:

  --all              display all information available

  -C, --get-ctrl=<ctrl>[,<ctrl>...]

                     get the value of the controls [VIDIOC_G_EXT_CTRLS]

  -c, --set-ctrl=<ctrl>=<val>[,<ctrl>=<val>...]

                     set the value of the controls [VIDIOC_S_EXT_CTRLS]

  -D, --info         show driver info [VIDIOC_QUERYCAP]

  -d, --device=<dev> use device <dev> instead of /dev/video0

                     if <dev> starts with a digit, then /dev/video<dev> is used

  -h, --help         display this help message

  --help-all         all options

  --help-io          input/output options

  --help-misc        miscellaneous options

  --help-overlay     overlay format options

  --help-selection   crop/selection options

  --help-stds        standards and other video timings options

  --help-streaming   streaming options

  --help-tuner       tuner/modulator options

  --help-vbi         VBI format options

  --help-vidcap      video capture format options

  --help-vidout      vidout output format options

  -k, --concise      be more concise if possible.

  -l, --list-ctrls   display all controls and their values [VIDIOC_QUERYCTRL]

  -L, --list-ctrls-menus

                     display all controls and their menus [VIDIOC_QUERYMENU]

  -w, --wrapper      use the libv4l2 wrapper library.

  --list-devices     list all v4l devices

  --log-status       log the board status in the kernel log [VIDIOC_LOG_STATUS]

  --get-priority     query the current access priority [VIDIOC_G_PRIORITY]

  --set-priority=<prio>

                     set the new access priority [VIDIOC_S_PRIORITY]

                     <prio> is 1 (background), 2 (interactive) or 3 (record)

  --silent           only set the result code, do not print any messages

  --sleep=<secs>     sleep <secs>, call QUERYCAP and close the file handle

  --verbose          turn on verbose ioctl status reporting


Tuner/Modulator options:

  -F, --get-freq     query the frequency [VIDIOC_G_FREQUENCY]

  -f, --set-freq=<freq>

                     set the frequency to <freq> MHz [VIDIOC_S_FREQUENCY]

  -T, --get-tuner    query the tuner settings [VIDIOC_G_TUNER]

  -t, --set-tuner=<mode>

                     set the audio mode of the tuner [VIDIOC_S_TUNER]

                     Possible values: mono, stereo, lang2, lang1, bilingual

  --tuner-index=<idx> Use idx as tuner idx for tuner/modulator commands

  --list-freq-bands  display all frequency bands for the tuner/modulator

                     [VIDIOC_ENUM_FREQ_BANDS]

  --get-modulator    query the modulator settings [VIDIOC_G_MODULATOR]

  --set-modulator=<txsubchans>

                     set the sub-carrier modulation [VIDIOC_S_MODULATOR]

                     <txsubchans> is one of:

                     mono:       Modulate as mono

                     mono-rds:   Modulate as mono with RDS (radio only)

                     stereo:     Modulate as stereo

                     stereo-rds: Modulate as stereo with RDS (radio only)

                     bilingual:  Modulate as bilingual

                     mono-sap:   Modulate as mono with Second Audio Program

                     stereo-sap: Modulate as stereo with Second Audio Program

  --freq-seek=dir=<0/1>,wrap=<0/1>,spacing=<hz>,low=<freq>,high=<freq>

                     perform a hardware frequency seek [VIDIOC_S_HW_FREQ_SEEK]

                     dir is 0 (seek downward) or 1 (seek upward)

                     wrap is 0 (do not wrap around) or 1 (wrap around)

                     spacing sets the seek resolution (use 0 for default)

                     low and high set the low and high seek frequency range in MHz


Input/Output options:

  -I, --get-input    query the video input [VIDIOC_G_INPUT]

  -i, --set-input=<num>

                     set the video input to <num> [VIDIOC_S_INPUT]

  -N, --list-outputs display video outputs [VIDIOC_ENUMOUTPUT]

  -n, --list-inputs  display video inputs [VIDIOC_ENUMINPUT]

  -O, --get-output   query the video output [VIDIOC_G_OUTPUT]

  -o, --set-output=<num>

                     set the video output to <num> [VIDIOC_S_OUTPUT]

  --set-audio-output=<num>

                     set the audio output to <num> [VIDIOC_S_AUDOUT]

  --get-audio-input  query the audio input [VIDIOC_G_AUDIO]

  --set-audio-input=<num>

                     set the audio input to <num> [VIDIOC_S_AUDIO]

  --get-audio-output query the audio output [VIDIOC_G_AUDOUT]

  --set-audio-output=<num>

                     set the audio output to <num> [VIDIOC_S_AUDOUT]

  --list-audio-outputs

                     display audio outputs [VIDIOC_ENUMAUDOUT]

  --list-audio-inputs

                     display audio inputs [VIDIOC_ENUMAUDIO]


Standards/Timings options:

  --list-standards   display supported video standards [VIDIOC_ENUMSTD]

  -S, --get-standard

                     query the video standard [VIDIOC_G_STD]

  -s, --set-standard=<num>

                     set the video standard to <num> [VIDIOC_S_STD]

                     <num> a numerical v4l2_std value, or one of:

                     pal or pal-X (X = B/G/H/N/Nc/I/D/K/M/60) (V4L2_STD_PAL)

                     ntsc or ntsc-X (X = M/J/K) (V4L2_STD_NTSC)

                     secam or secam-X (X = B/G/H/D/K/L/Lc) (V4L2_STD_SECAM)

  --get-detected-standard

                     display detected input video standard [VIDIOC_QUERYSTD]

  --list-dv-timings  list supp. standard dv timings [VIDIOC_ENUM_DV_TIMINGS]

  --set-dv-bt-timings

                     query: use the output of VIDIOC_QUERY_DV_TIMINGS

                     index=<index>: use the index as provided by --list-dv-timings

                     or give a fully specified timings:

                     width=<width>,height=<height>,interlaced=<0/1>,

                     polarities=<polarities mask>,pixelclock=<pixelclock Hz>,

                     hfp=<horizontal front porch>,hs=<horizontal sync>,

                     hbp=<horizontal back porch>,vfp=<vertical front porch>,

                     vs=<vertical sync>,vbp=<vertical back porch>,

                     il_vfp=<vertical front porch for bottom field>,

                     il_vs=<vertical sync for bottom field>,

                     il_vbp=<vertical back porch for bottom field>,

                     set the digital video timings according to the BT 656/1120

                     standard [VIDIOC_S_DV_TIMINGS]

  --get-dv-timings   get the digital video timings in use [VIDIOC_G_DV_TIMINGS]

  --query-dv-timings query the detected dv timings [VIDIOC_QUERY_DV_TIMINGS]

  --get-dv-timings-cap

                     get the dv timings capabilities [VIDIOC_DV_TIMINGS_CAP]


Video Capture Formats options:

  --list-formats     display supported video formats [VIDIOC_ENUM_FMT]

  --list-formats-mplane

                     display supported video multi-planar formats

                     [VIDIOC_ENUM_FMT]

  --list-formats-ext display supported video formats including frame sizes

                     and intervals

  --list-formats-ext-mplane

                     display supported video multi-planar formats including

                     frame sizes and intervals

  --list-framesizes=<f>

                     list supported framesizes for pixelformat <f>

                     [VIDIOC_ENUM_FRAMESIZES]

                     pixelformat is the fourcc value as a string

  --list-frameintervals=width=<w>,height=<h>,pixelformat=<f>

                     list supported frame intervals for pixelformat <f> and

                     the given width and height [VIDIOC_ENUM_FRAMEINTERVALS]

                     pixelformat is the fourcc value as a string

  -V, --get-fmt-video

                     query the video capture format [VIDIOC_G_FMT]

  -v, --set-fmt-video=width=<w>,height=<h>,pixelformat=<f>

                     set the video capture format [VIDIOC_S_FMT]

                     pixelformat is either the format index as reported by

                     --list-formats, or the fourcc value as a string

  --try-fmt-video=width=<w>,height=<h>,pixelformat=<f>

                     try the video capture format [VIDIOC_TRY_FMT]

                     pixelformat is either the format index as reported by

                     --list-formats, or the fourcc value as a string

  --get-fmt-video-mplane

                     query the video capture format through the multi-planar API

                     [VIDIOC_G_FMT]

  --set-fmt-video-mplane

  --try-fmt-video-mplane=width=<w>,height=<h>,pixelformat=<f>

                     set/try the video capture format using the multi-planar API

                     [VIDIOC_S/TRY_FMT]

                     pixelformat is either the format index as reported by

                     --list-formats-mplane, or the fourcc value as a string


Video Output Formats options:

  --list-formats-out display supported video output formats [VIDIOC_ENUM_FMT]

  --get-fmt-video-out

                     query the video output format [VIDIOC_G_FMT]

  --set-fmt-video-out

  --try-fmt-video-out=width=<w>,height=<h>,pixelformat=<f>

                     set/try the video output format [VIDIOC_TRY_FMT]

                     pixelformat is either the format index as reported by

                     --list-formats-out, or the fourcc value as a string

  --list-formats-out-mplane

                     display supported video output multi-planar formats

                     [VIDIOC_ENUM_FMT]

  --get-fmt-video-out-mplane

                     query the video output format using the multi-planar API

                     [VIDIOC_G_FMT]

  --set-fmt-video-out-mplane

  --try-fmt-video-out-mplane=width=<w>,height=<h>,pixelformat=<f>

                     set/try the video output format with the multi-planar API

                     [VIDIOC_S/TRY_FMT]

                     pixelformat is either the format index as reported by

                     --list-formats-out-mplane, or the fourcc value as a string


Video Overlay options:

  --list-formats-overlay

                     display supported overlay formats [VIDIOC_ENUM_FMT]

  --overlay=<on>     turn overlay on (1) or off (0) (VIDIOC_OVERLAY)

  --get-fmt-overlay  query the video overlay format [VIDIOC_G_FMT]

  --get-fmt-output-overlay

                     query the video output overlay format [VIDIOC_G_FMT]

  --set-fmt-overlay

  --try-fmt-overlay

  --set-fmt-output-overlay

  --try-fmt-output-overlay=chromakey=<key>,global_alpha=<alpha>,

                           top=<t>,left=<l>,width=<w>,height=<h>,field=<f>

                     set/try the video or video output overlay format

                     [VIDIOC_S/TRY_FMT], <f> can be one of:

                     any, none, top, bottom, interlaced, seq_tb, seq_bt,

                     alternate, interlaced_tb, interlaced_bt

  --get-fbuf         query the overlay framebuffer data [VIDIOC_G_FBUF]

  --set-fbuf=chromakey=<b>,global_alpha=<b>,local_alpha=<b>,local_inv_alpha=<b>

                     set the overlay framebuffer [VIDIOC_S_FBUF]

                     b = 0 or 1


VBI Formats options:

  --get-sliced-vbi-cap

                     query the sliced VBI capture capabilities

                     [VIDIOC_G_SLICED_VBI_CAP]

  --get-sliced-vbi-out-cap

                     query the sliced VBI output capabilities

                     [VIDIOC_G_SLICED_VBI_CAP]

  -B, --get-fmt-sliced-vbi

                     query the sliced VBI capture format [VIDIOC_G_FMT]

  --get-fmt-sliced-vbi-out

                     query the sliced VBI output format [VIDIOC_G_FMT]

  -b, --set-fmt-sliced-vbi

  --try-fmt-sliced-vbi

  --set-fmt-sliced-vbi-out

  --try-fmt-sliced-vbi-out=<mode>

                     set/try the sliced VBI capture/output format to <mode>

                     [VIDIOC_S/TRY_FMT], <mode> is a comma separated list of:

                     off:      turn off sliced VBI (cannot be combined with

                               other modes)

                     teletext: teletext (PAL/SECAM)

                     cc:       closed caption (NTSC)

                     wss:      widescreen signal (PAL/SECAM)

                     vps:      VPS (PAL/SECAM)

  --get-fmt-vbi      query the VBI capture format [VIDIOC_G_FMT]

  --get-fmt-vbi-out  query the VBI output format [VIDIOC_G_FMT]


Selection/Cropping options:

  --get-cropcap      query the crop capabilities [VIDIOC_CROPCAP]

  --get-crop         query the video capture crop window [VIDIOC_G_CROP]

  --set-crop=top=<x>,left=<y>,width=<w>,height=<h>

                     set the video capture crop window [VIDIOC_S_CROP]

  --get-cropcap-output

                     query crop capabilities for video output [VIDIOC_CROPCAP]

  --get-crop-output  query the video output crop window [VIDIOC_G_CROP]

  --set-crop-output=top=<x>,left=<y>,width=<w>,height=<h>

                     set the video output crop window [VIDIOC_S_CROP]

  --get-cropcap-overlay

                     query crop capabilities for video overlay [VIDIOC_CROPCAP]

  --get-crop-overlay query the video overlay crop window [VIDIOC_G_CROP]

  --set-crop-overlay=top=<x>,left=<y>,width=<w>,height=<h>

                     set the video overlay crop window [VIDIOC_S_CROP]

  --get-cropcap-output-overlay

                     query the crop capabilities for video output overlays

                     [VIDIOC_CROPCAP]

  --get-crop-output-overlay

                     query the video output overlay crop window [VIDIOC_G_CROP]

  --set-crop-output-overlay=top=<x>,left=<y>,width=<w>,height=<h>

                     set the video output overlay crop window [VIDIOC_S_CROP]

  --get-selection=target=<target>

                     query the video capture selection rectangle [VIDIOC_G_SELECTION]

                     See --set-selection command for the valid <target> values.

  --set-selection=target=<target>,flags=<flags>,top=<x>,left=<y>,width=<w>,height=<h>

                     set the video capture selection rectangle [VIDIOC_S_SELECTION]

                     target=crop|crop_bounds|crop_default|compose|compose_bounds|

                            compose_default|compose_padded

                     flags=le|ge

  --get-selection-output=target=<target>

                     query the video output selection rectangle [VIDIOC_G_SELECTION]

                     See --set-selection command for the valid <target> values.

  --set-selection-output=target=<target>,flags=<flags>,top=<x>,left=<y>,width=<w>,height=<h>

                     set the video output selection rectangle [VIDIOC_S_SELECTION]

                     See --set-selection command for the arguments.


Miscellaneous options:

  --wait-for-event=<event>

                     wait for an event [VIDIOC_DQEVENT]

                     <event> is the event number or one of:

                     eos, vsync, ctrl=<id>, frame_sync

                     where <id> is the name of the control

  --poll-for-event=<event>

                     poll for an event [VIDIOC_DQEVENT]

                     see --wait-for-event for possible events

  -P, --get-parm     display video parameters [VIDIOC_G_PARM]

  -p, --set-parm=<fps>

                     set video framerate in <fps> [VIDIOC_S_PARM]

  --get-output-parm  display output video parameters [VIDIOC_G_PARM]

  --set-output-parm=<fps>

                     set output video framerate in <fps> [VIDIOC_S_PARM]

  --get-jpeg-comp    query the JPEG compression [VIDIOC_G_JPEGCOMP]

  --set-jpeg-comp=quality=<q>,markers=<markers>,comment=<c>,app<n>=<a>

                     set the JPEG compression [VIDIOC_S_JPEGCOMP]

                     <n> is the app segment: 0-9/a-f, <a> is the actual string.

                     <markers> is a colon separated list of:

                     dht:      Define Huffman Tables

                     dqt:      Define Quantization Tables

                     dri:      Define Restart Interval

  --encoder-cmd=cmd=<cmd>,flags=<flags>

                     Send a command to the encoder [VIDIOC_ENCODER_CMD]

                     cmd=start|stop|pause|resume

                     flags=stop_at_gop_end

  --try-encoder-cmd=cmd=<cmd>,flags=<flags>

                     Try an encoder command [VIDIOC_TRY_ENCODER_CMD]

                     See --encoder-cmd for the arguments.

  --decoder-cmd=cmd=<cmd>,flags=<flags>,stop_pts=<pts>,start_speed=<speed>,

                     start_format=<none|gop>

                     Send a command to the decoder [VIDIOC_DECODER_CMD]

                     cmd=start|stop|pause|resume

                     flags=start_mute_audio|pause_to_black|stop_to_black|

                           stop_immediately

  --try-decoder-cmd=cmd=<cmd>,flags=<flags>

                     Try a decoder command [VIDIOC_TRY_DECODER_CMD]

                     See --decoder-cmd for the arguments.


Video Streaming options:

  --stream-count=<count>

                     stream <count> buffers. The default is to keep streaming

                     forever. This count does not include the number of initial

                     skipped buffers as is passed by --stream-skip.

  --stream-skip=<count>

                     skip the first <count> buffers. The default is 0.

  --stream-to=<file> stream to this file. The default is to discard the

                     data. If <file> is '-', then the data is written to stdout

                     and the --silent option is turned on automatically.

  --stream-poll      use non-blocking mode and select() to stream.

  --stream-mmap=<count>

                     capture video using mmap() [VIDIOC_(D)QBUF]

                     count: the number of buffers to allocate. The default is 3.

  --stream-user=<count>

                     capture video using user pointers [VIDIOC_(D)QBUF]

                     count: the number of buffers to allocate. The default is 3.

  --stream-from=<file> stream from this file. The default is to generate a pattern.

                     If <file> is '-', then the data is read from stdin.

  --stream-loop      loop when the end of the file we are streaming from is reached.

                     The default is to stop.

  --stream-pattern=<count>

                     choose output pattern. The default is 0.

  --stream-out-mmap=<count>

                     output video using mmap() [VIDIOC_(D)QBUF]

                     count: the number of buffers to allocate. The default is 3.

  --stream-out-user=<count>

                     output video using user pointers [VIDIOC_(D)QBUF]

                     count: the number of buffers to allocate. The default is 3.

  --list-buffers     list all video buffers [VIDIOC_QUERYBUF]

  --list-buffers-out list all video output buffers [VIDIOC_QUERYBUF]

  --list-buffers-vbi list all VBI buffers [VIDIOC_QUERYBUF]

  --list-buffers-vbi-out

                     list all VBI output buffers [VIDIOC_QUERYBUF]

  --list-buffers-sliced-vbi

                     list all sliced VBI buffers [VIDIOC_QUERYBUF]

  --list-buffers-sliced-vbi-out

                     list all sliced VBI output buffers [VIDIOC_QUERYBUF]


$ v4l2-ctl --list-devices

mmal service 16.1 (platform:bcm2835-v4l2):

        /dev/video0


$ v4l2-ctl -D

Driver Info (not using libv4l2):

        Driver name   : bm2835 mmal

        Card type     : mmal service 16.1

        Bus info      : platform:bcm2835-v4l2

        Driver version: 4.1.6

        Capabilities  : 0x85200005

                Video Capture

                Video Overlay

                Read/Write

                Streaming

                Device Capabilities

        Device Caps   : 0x05200005

                Video Capture

                Video Overlay

                Read/Write

                Streaming


$ v4l2-ctl --get-fmt-video

Format Video Capture:

        Width/Height  : 1920/1088

        Pixel Format  : 'H264'

        Field         : None

        Bytes per Line: 0

        Size Image    : 2088960

        Colorspace    : Broadcast NTSC/PAL (SMPTE170M/ITU601)

        Custom Info   : feedcafe


$ v4l2-ctl --list-formats

ioctl: VIDIOC_ENUM_FMT

        Index       : 0

        Type        : Video Capture

        Pixel Format: 'YU12'

        Name        : 4:2:0, planar, YUV


        Index       : 1

        Type        : Video Capture

        Pixel Format: 'YUYV'

        Name        : 4:2:2, packed, YUYV


        Index       : 2

        Type        : Video Capture

        Pixel Format: 'RGB3'

        Name        : RGB24 (LE)


        Index       : 3

        Type        : Video Capture

        Pixel Format: 'JPEG' (compressed)

        Name        : JPEG


        Index       : 4

        Type        : Video Capture

        Pixel Format: 'H264' (compressed)

        Name        : H264


        Index       : 5

        Type        : Video Capture

        Pixel Format: 'MJPG' (compressed)

        Name        : MJPEG


        Index       : 6

        Type        : Video Capture

        Pixel Format: 'YVYU'

        Name        : 4:2:2, packed, YVYU


        Index       : 7

        Type        : Video Capture

        Pixel Format: 'VYUY'

        Name        : 4:2:2, packed, VYUY


        Index       : 8

        Type        : Video Capture

        Pixel Format: 'UYVY'

        Name        : 4:2:2, packed, UYVY


        Index       : 9

        Type        : Video Capture

        Pixel Format: 'NV12'

        Name        : 4:2:0, planar, NV12


        Index       : 10

        Type        : Video Capture

        Pixel Format: 'BGR3'

        Name        : RGB24 (BE)


        Index       : 11

        Type        : Video Capture

        Pixel Format: 'YV12'

        Name        : 4:2:0, planar, YVU


        Index       : 12

        Type        : Video Capture

        Pixel Format: 'NV21'

        Name        : 4:2:0, planar, NV21


        Index       : 13

        Type        : Video Capture

        Pixel Format: 'BGR4'

        Name        : RGB32 (BE)


$ v4l2-ctl -L


User Controls


                     brightness (int)    : min=0 max=100 step=1 default=50 value=50 flags=slider

                       contrast (int)    : min=-100 max=100 step=1 default=0 value=0 flags=slider

                     saturation (int)    : min=-100 max=100 step=1 default=0 value=0 flags=slider

                    red_balance (int)    : min=1 max=7999 step=1 default=1000 value=1000 flags=slider

                   blue_balance (int)    : min=1 max=7999 step=1 default=1000 value=1000 flags=slider

                horizontal_flip (bool)   : default=0 value=0

                  vertical_flip (bool)   : default=0 value=0

           power_line_frequency (menu)   : min=0 max=3 default=1 value=1

                                0: Disabled

                                1: 50 Hz

                                2: 60 Hz

                                3: Auto

                      sharpness (int)    : min=-100 max=100 step=1 default=0 value=0 flags=slider

                  color_effects (menu)   : min=0 max=15 default=0 value=0

                                0: None

                                1: Black & White

                                2: Sepia

                                3: Negative

                                4: Emboss

                                5: Sketch

                                6: Sky Blue

                                7: Grass Green

                                8: Skin Whiten

                                9: Vivid

                                10: Aqua

                                11: Art Freeze

                                12: Silhouette

                                13: Solarization

                                14: Antique

                                15: Set Cb/Cr

                         rotate (int)    : min=0 max=360 step=90 default=0 value=0

             color_effects_cbcr (int)    : min=0 max=65535 step=1 default=32896 value=32896


Codec Controls


             video_bitrate_mode (menu)   : min=0 max=1 default=0 value=0 flags=update

                                0: Variable Bitrate

                                1: Constant Bitrate

                  video_bitrate (int)    : min=25000 max=25000000 step=25000 default=10000000 value=10000000

         repeat_sequence_header (bool)   : default=0 value=0

            h264_i_frame_period (int)    : min=0 max=2147483647 step=1 default=60 value=60

                     h264_level (menu)   : min=0 max=11 default=11 value=11

                                0: 1

                                1: 1b

                                2: 1.1

                                3: 1.2

                                4: 1.3

                                5: 2

                                6: 2.1

                                7: 2.2

                                8: 3

                                9: 3.1

                                10: 3.2

                                11: 4

                   h264_profile (menu)   : min=0 max=4 default=4 value=4

                                0: Baseline

                                1: Constrained Baseline

                                2: Main

                                4: High


Camera Controls


                  auto_exposure (menu)   : min=0 max=3 default=0 value=0

                                0: Auto Mode

                                1: Manual Mode

         exposure_time_absolute (int)    : min=1 max=10000 step=1 default=1000 value=1000

     exposure_dynamic_framerate (bool)   : default=0 value=0

             auto_exposure_bias (intmenu): min=0 max=24 default=12 value=12

                                0: -4000 (0xfffffffffffff060)

                                1: -3667 (0xfffffffffffff1ad)

                                2: -3333 (0xfffffffffffff2fb)

                                3: -3000 (0xfffffffffffff448)

                                4: -2667 (0xfffffffffffff595)

                                5: -2333 (0xfffffffffffff6e3)

                                6: -2000 (0xfffffffffffff830)

                                7: -1667 (0xfffffffffffff97d)

                                8: -1333 (0xfffffffffffffacb)

                                9: -1000 (0xfffffffffffffc18)

                                10: -667 (0xfffffffffffffd65)

                                11: -333 (0xfffffffffffffeb3)

                                12: 0 (0x0)

                                13: 333 (0x14d)

                                14: 667 (0x29b)

                                15: 1000 (0x3e8)

                                16: 1333 (0x535)

                                17: 1667 (0x683)

                                18: 2000 (0x7d0)

                                19: 2333 (0x91d)

                                20: 2667 (0xa6b)

                                21: 3000 (0xbb8)

                                22: 3333 (0xd05)

                                23: 3667 (0xe53)

                                24: 4000 (0xfa0)

      white_balance_auto_preset (menu)   : min=0 max=9 default=1 value=1

                                0: Manual

                                1: Auto

                                2: Incandescent

                                3: Fluorescent

                                4: Fluorescent H

                                5: Horizon

                                6: Daylight

                                7: Flash

                                8: Cloudy

                                9: Shade

            image_stabilization (bool)   : default=0 value=0

                iso_sensitivity (intmenu): min=0 max=4 default=0 value=0

                                0: 0 (0x0)

                                1: 100 (0x64)

                                2: 200 (0xc8)

                                3: 400 (0x190)

                                4: 800 (0x320)

         exposure_metering_mode (menu)   : min=0 max=2 default=0 value=0

                                0: Average

                                1: Center Weighted

                                2: Spot

                     scene_mode (menu)   : min=0 max=13 default=0 value=0

                                0: None

                                8: Night

                                11: Sports


JPEG Compression Controls


            compression_quality (int)    : min=1 max=100 step=1 default=30 value=30


$ v4l2-ctl --get-priority

Priority: 2


$ v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=4


2015/08/09 - [개소리 왈왈/라즈베리 파이(rpi)] - 라즈베리 파이 csi v4l


'embeded > raspberry pi' 카테고리의 다른 글

opencv 템플릿 매칭 / wiring pi PWM ing..  (0) 2015.10.05
webiopi - rpi IoT  (2) 2015.10.01
라즈베리 파이 2 + usb webcam + servo 2ch  (2) 2015.09.28
라즈베리 파이 PWM 데이터 시트  (0) 2015.09.28
wiring pi PWM / c 코드  (0) 2015.09.28
Posted by 구차니
embeded/raspberry pi2015. 9. 28. 12:57

라즈베리 파이 2에는 PWM 2채널이 사용이 가능해서

2채널 Servo와

2채널 USB webcam(v4l)을 통해서 비디오를 받아 서보로 제어하도록 해봄



$ g++ cv.cpp -lopencv_core -lopencv_video -lopencv_highgui -lwiringPi 


$ cat cv.cpp

#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>

#include <iostream>


#include <wiringPi.h>


#define MIN_POS 30

#define MAX_POS 110


using namespace cv;

using namespace std;


void init_wiringpi()

{

        if(wiringPiSetup() == -1) exit(0);


        pinMode(1, PWM_OUTPUT);

        pwmSetMode(PWM_MODE_MS);

//      pwmSetRange(1024);

//      pwmSetClock(400);


        pinMode(23, PWM_OUTPUT);

        pwmSetMode(PWM_MODE_MS);

        pwmSetRange(1024);

        pwmSetClock(400);


        pwmWrite(1,     MIN_POS + (MAX_POS - MIN_POS) / 2);

        pwmWrite(23,    MIN_POS + (MAX_POS - MIN_POS) / 2);

}


void setPWM_1(int val)

{

        pwmWrite(23, val);

}


void setPWM_2(int val)

{

        pwmWrite(1, val);

}



void on_trackbar_1(int pos, void *ptr)

{

        int val = MIN_POS + pos * (MAX_POS - MIN_POS) / 100;

        setPWM_1(val);


        cout << "pos 1 [" << pos << ":" << val << "]" << endl;

}


void on_trackbar_2(int pos, void *ptr)

{

        int val = MIN_POS + pos * (MAX_POS - MIN_POS) / 100;

        setPWM_2(val);


        cout << "pos 2 [" << pos << ":" << val << "]" << endl;

}


void on_trackbar_3(int pos, void *ptr)

{

        int val = MIN_POS + pos * (MAX_POS - MIN_POS) / 100;

//      setPWM_1(val);

//      setPWM_2(val);


        setTrackbarPos("track 1", "cam 1", pos);

        setTrackbarPos("track 2", "cam 2", pos);


        cout << "pos 3 [" << pos << ":" << val << "]" << endl;

}


int main(int argc, char** argv)

{

        // opencv 2 style

        VideoCapture cap(0);

        int pos[2];


        init_wiringpi();


        if(!cap.isOpened())

        {

                cout << "No camera detected" << endl;

                return -1;

        }

        else

        {

                cout << "In capture ..." << endl;

                cap.set(CV_CAP_PROP_FRAME_WIDTH, 320);

                cap.set(CV_CAP_PROP_FRAME_HEIGHT, 240);

        }


        VideoCapture cap2(1);

        if(!cap2.isOpened())

        {

                cout << "No camera detected" << endl;

                return -1;

        }

        else

        {

                cout << "In capture ..." << endl;

                cap2.set(CV_CAP_PROP_FRAME_WIDTH, 320);

                cap2.set(CV_CAP_PROP_FRAME_HEIGHT, 240);

        }


        namedWindow("cam 1", WINDOW_AUTOSIZE );

        namedWindow("cam 2", WINDOW_AUTOSIZE );

        namedWindow("control", WINDOW_AUTOSIZE );


        createTrackbar("track 1", "cam 1", &pos[0], 100, on_trackbar_1 );

        createTrackbar("track 2", "cam 2", &pos[1], 100, on_trackbar_2 );

        createTrackbar("track 3", "control", &pos[0], 100, on_trackbar_3 );


        setTrackbarPos("track 1", "cam 1", 50);

        setTrackbarPos("track 2", "cam 2", 50);

        setTrackbarPos("track 3", "control", 50);


        for(;;)

        {

                Mat frame;

                if(!cap.read(frame)) break;

                imshow("cam 1", frame);


                if(!cap2.read(frame)) break;

                imshow("cam 2", frame);


                if(waitKey(30) >= 0) break;

        }


        return 0;

} 


이제...

다음 목표는 오른쪽 카메라 중앙을 ROI 로 설정하여

왼쪽의 카메라와 같은 곳을 바라보도록 서보를 제어하는 것!

'embeded > raspberry pi' 카테고리의 다른 글

webiopi - rpi IoT  (2) 2015.10.01
라즈베리 파이 v4l2-ctl 관련  (0) 2015.10.01
라즈베리 파이 PWM 데이터 시트  (0) 2015.09.28
wiring pi PWM / c 코드  (0) 2015.09.28
뻘짓은 하긴 했는데... (카메라 + 서보)*2  (0) 2015.09.24
Posted by 구차니
embeded/raspberry pi2015. 9. 28. 12:56

pwm 클럭은 채널 1/2에 동일하게 들어가는 듯?


데이터 시트 141p

PWM clock source and frequency is controlled in CPRMAN. 


데이터 시트 138p

채널은 2개 이지만 연결 가능한 GPIO는 여러개로 보인다.

 GPIO가 여러개 라고 해도 동시에 활성화 가능한건 2채널이려나?


+

40번 이후 부터는 compute module에서나 쓸수 있을테고

라즈베리 파이 2에서는

좌/우 로 2개씩 총 4개의 핀이지만 2개의 채널이니까 12,13번 핀을 나란히 써주는 것도 무난 할 듯?

 +-----+-----+---------+------+---+---Pi 2---+---+------+---------+-----+-----+

 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |

 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+

 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |

 |   2 |   8 |   SDA.1 |   IN | 1 |  3 || 4  |   |      | 5V      |     |     |

 |   3 |   9 |   SCL.1 |   IN | 1 |  5 || 6  |   |      | 0v      |     |     |

 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |

 |     |     |      0v |      |   |  9 || 10 | 1 | ALT0 | RxD     | 16  | 15  |

 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |

 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |

 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |

 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |

 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |

 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |

 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |

 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |

 |   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |

 |   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |

 |   6 |  22 | GPIO.22 |   IN | 1 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |

 |  13 |  23 | GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v      |     |     |

 |  19 |  24 | GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |

 |  26 |  25 | GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | GPIO.28 | 28  | 20  |

 |     |     |      0v |      |   | 39 || 40 | 0 | IN   | GPIO.29 | 29  | 21  |

 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+

 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |

 +-----+-----+---------+------+---+---Pi 2---+---+------+---------+-----+-----+



+


클럭관련해서는 PWM 쪽이 아닌 상위에서 넣어준다.

[링크 : http://www.farnell.com/datasheets/1521578.pdf]



---


wiring pi 상으로는 ABC 정렬도 아닌거 같고..

그냥 초기화 해야 하는 순서대로

Mode / Range / Clock 순인것 같다.

PWM Control


PWM can not be controlled when running in Sys mode.

  • pwmSetMode (int mode) ;

The PWM generator can run in 2 modes – “balanced” and “mark:space”. The mark:space mode is traditional, however the default mode in the Pi is “balanced”. You can switch modes by supplying the parameter: PWM_MODE_BAL or PWM_MODE_MS.

  • pwmSetRange (unsigned int range) ;

This sets the range register in the PWM generator. The default is 1024.

  • pwmSetClock (int divisor) ;

This sets the divisor for the PWM clock.

To understand more about the PWM system, you’ll need to read the Broadcom ARM peripherals manual.

[링크 : https://projects.drogon.net/raspberry-pi/wiringpi/functions/] 


Posted by 구차니
embeded/raspberry pi2015. 9. 28. 08:29


void pinMode (int pin, int mode) ;

This sets the mode of a pin to either INPUT, OUTPUT, or PWM_OUTPUT. Note that only wiringPi pin 1 (BCM_GPIO 18) supports PWM output.


void pwmWrite (int pin, int value) ;

Writes the value to the PWM register for the given pin. The value must be between 0 and 1024. (Again, note that only pin 1 (BCM_GPIO 18) supports PWM)


pwmSetMode (int mode) ;

The PWM generator can run in 2 modes – “balanced” and “mark:space”. The mark:space mode is traditional, however the default mode in the Pi is “balanced”. You can switch modes by supplying the parameter: PWM_MODE_BAL or PWM_MODE_MS.


pwmSetRange (unsigned int range) ;

This sets the range register in the PWM generator. The default is 1024.


pwmSetClock (int divisor) ;

This sets the divisor for the PWM clock.


[링크 : https://projects.drogon.net/raspberry-pi/wiringpi/functions/]


LED PWM 예제 - c언어 / wiring pi

[링크 : https://learn.sparkfun.com/tutorials/raspberry-gpio/c-wiringpi-example]


python / pwm 2 ch 예제

[링크 : http://electronut.in/controlling-two-servos-with-hardware-pwm-on-the-raspberry-pi-model-a/]

Posted by 구차니