[ProgressBar4.java]

public class ProgressBar4 extends Activity {
    private boolean mToggleIndeterminate = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Request progress bar
        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
        setContentView(R.layout.progressbar_4);
        setProgressBarIndeterminateVisibility(mToggleIndeterminate);
       
        Button button = (Button) findViewById(R.id.toggle);
        button.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
                mToggleIndeterminate = !mToggleIndeterminate;
                setProgressBarIndeterminateVisibility(mToggleIndeterminate);
            }
        });
    }
}



[progressbar_4.xml]

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <Button android:id="@+id/toggle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/progressbar_4_toggle" />

</LinearLayout>

'old > API_Demo' 카테고리의 다른 글

Views_RatingBar  (0) 2010.05.06
Views_RadioGroup  (0) 2010.05.06
Views_ProgressBar_Dialogs  (0) 2010.05.06
Views_ProgressBar_Smooth  (0) 2010.05.06
Views_ProgressBar_Incremental  (0) 2010.05.06
Posted by jazzlife
,

[ProgressBar3.java]

public class ProgressBar3 extends Activity {

    ProgressDialog mDialog1;
    ProgressDialog mDialog2;

    private static final int DIALOG1_KEY = 0;
    private static final int DIALOG2_KEY = 1;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.progressbar_3);

        Button button = (Button) findViewById(R.id.showIndeterminate);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                showDialog(DIALOG1_KEY);
            }
        });

        button = (Button) findViewById(R.id.showIndeterminateNoTitle);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                showDialog(DIALOG2_KEY);
            }
        });
    }

    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
            case DIALOG1_KEY: {
                ProgressDialog dialog = new ProgressDialog(this);
                dialog.setTitle("Indeterminate");
                dialog.setMessage("Please wait while loading...");
                dialog.setIndeterminate(true);
                dialog.setCancelable(true);
                return dialog;
            }
            case DIALOG2_KEY: {
                ProgressDialog dialog = new ProgressDialog(this);
                dialog.setMessage("Please wait while loading...");
                dialog.setIndeterminate(true);
                dialog.setCancelable(true);
                return dialog;
            }
        }
        return null;
    }
}



[progressbar_3.xml]

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <Button android:id="@+id/showIndeterminate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/progressbar_3_indeterminate" />

    <Button android:id="@+id/showIndeterminateNoTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/progressbar_3_indeterminate_no_title" />

</LinearLayout>


 

'old > API_Demo' 카테고리의 다른 글

Views_RadioGroup  (0) 2010.05.06
Views_ProgressBar_Dialogs  (0) 2010.05.06
Views_ProgressBar_Smooth  (0) 2010.05.06
Views_ProgressBar_Incremental  (0) 2010.05.06
Views_Lists_Efficient Adapter  (0) 2010.04.27
Posted by jazzlife
,

[ProgressBar2.java]

public class ProgressBar2 extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Request for the progress bar to be shown in the title
        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
       
        setContentView(R.layout.progressbar_2);
       
        // Make sure the progress bar is visible
        setProgressBarVisibility(true);
    }
}


[progressbar_2.xml]

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <ProgressBar android:id="@+android:id/progress_large"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <ProgressBar android:id="@+android:id/progress"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <ProgressBar android:id="@+android:id/progress_small"
        style="?android:attr/progressBarStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <ProgressBar android:id="@+android:id/progress_small_title"
        style="?android:attr/progressBarStyleSmallTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

'old > API_Demo' 카테고리의 다른 글

Views_ProgressBar_Dialogs  (0) 2010.05.06
Views_ProgressBar_Dialogs  (0) 2010.05.06
Views_ProgressBar_Incremental  (0) 2010.05.06
Views_Lists_Efficient Adapter  (0) 2010.04.27
Views_Lists_Slow Adapter  (0) 2010.04.27
Posted by jazzlife
,

[ProgressBar1.java]

public class ProgressBar1 extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Request the progress bar to be shown in the title
        requestWindowFeature(Window.FEATURE_PROGRESS);
        setContentView(R.layout.progressbar_1);
        setProgressBarVisibility(true);
       
        final ProgressBar progressHorizontal = (ProgressBar) findViewById(R.id.progress_horizontal);
        setProgress(progressHorizontal.getProgress() * 100);
        setSecondaryProgress(progressHorizontal.getSecondaryProgress() * 100);
       
        Button button = (Button) findViewById(R.id.increase);
        button.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
                progressHorizontal.incrementProgressBy(1);
                // Title progress is in range 0..10000
                setProgress(100 * progressHorizontal.getProgress());
            }
        });

        button = (Button) findViewById(R.id.decrease);
        button.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
                progressHorizontal.incrementProgressBy(-1);
                // Title progress is in range 0..10000
                setProgress(100 * progressHorizontal.getProgress());
            }
        });

        button = (Button) findViewById(R.id.increase_secondary);
        button.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
                progressHorizontal.incrementSecondaryProgressBy(1);
                // Title progress is in range 0..10000
                setSecondaryProgress(100 * progressHorizontal.getSecondaryProgress());
            }
        });

        button = (Button) findViewById(R.id.decrease_secondary);
        button.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
                progressHorizontal.incrementSecondaryProgressBy(-1);
                // Title progress is in range 0..10000
                setSecondaryProgress(100 * progressHorizontal.getSecondaryProgress());
            }
        });
       
    }
}


[progressbar_1.xml]

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <ProgressBar android:id="@+id/progress_horizontal"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="200dip"
        android:layout_height="wrap_content"
        android:max="100"
        android:progress="50"
        android:secondaryProgress="75" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/progressbar_1_default_progress" />       

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <Button android:id="@+id/decrease"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/progressbar_1_minus" />

        <Button android:id="@+id/increase"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/progressbar_1_plus" />

    </LinearLayout>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/progressbar_1_secondary_progress" />       

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <Button android:id="@+id/decrease_secondary"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/progressbar_1_minus" />

        <Button android:id="@+id/increase_secondary"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/progressbar_1_plus" />

    </LinearLayout>

</LinearLayout>

'old > API_Demo' 카테고리의 다른 글

Views_ProgressBar_Dialogs  (0) 2010.05.06
Views_ProgressBar_Smooth  (0) 2010.05.06
Views_Lists_Efficient Adapter  (0) 2010.04.27
Views_Lists_Slow Adapter  (0) 2010.04.27
Views_Lists_Transcript  (0) 2010.04.27
Posted by jazzlife
,

TinyOS-1.x Installation on Linux(Fedora 10)

TinyOS-1.x Installation on Linux(Fedora 10)

콘솔(터미널)을 열어 root 권한으로 진행...

1. IBM Java sdk, javacomm 다운로드 받는다.
http://www.ibm.com/developerworks/java/jdk/linux/download.html 에서 아래 두 개의 rpm파일을 다운로드 받는다.
다운로드 받기 위해서 등록은 필수 -.-
IBM Java를 사용하는 이유는 설치가 쉬워서?? SUN Java는 설치가 어렵다는데... -.-

ibm-java2-i386-sdk-5.0-9.0.i386.rpm
ibm-java2-i386-javacomm-5.0-9.0.i386.rpm

파일을 다운로드 받았으면 설치를 한다.

$>yum localinstall --nogpgcheck ibm-java2-i386-jre-5.0-9.0.i386.rpm
$>yum localinstall --nogpgcheck ibm-java2-i386-sdk-5.0-9.0.i386.rpm
$>yum localinstall --nogpgcheck ibm-java2-i386-javacomm-5.0-9.0.i386.rpm


설치가 끝나면 /opt/ibm/java2-i386-50에 설치된다.
vi /root/.bashrc 파일을 열어 아래와 같은 내용의 Java path 및 환경변수를 추가하고 저장한다.

#JAVA
export JAVA_HOME=/opt/ibm/java2-i386-50
export JDKROOT=$JAVA_HOME
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$CLASSPATH


2. TinyOS linux tools 를 다운로드 및 설치한다.
http://www.tinyos.net/dist-1.1.0/tools/linuxhttp://www.tinyos.net/dist-1.2.0/tools/linux 에서 아래 파일들을 다운로드 받는다.

avarice-2.0.20030825cvs-1.i386.rpm
avr-binutils-2.13.2.1-1.i386.rpm
avr-gcc-3.3tinyos-1.i386.rpm
avr-insight-pre6.0cvs.tinyos-1.3.i386.rpm(rpm -ivh --replacefiles 명령으로 설치)
avr-libc-20030512cvs-1.i386.rpm
make-3.80tinyos-1.i386.rpm (기존에 파일이 없다고 나오는 경우 yum install make로 설치)
graphviz-1.10-1.i386.rpm ( graphviz tool의 경우 compile error를 발생시키므로 yum install graphviz로 설치)
msp430tools-base-0.1-20050607.i386.rpm
msp430tools-binutils-2.16-20050607.i386.rpm
msp430tools-gcc-3.2.3-20050607.i386.rpm
msp430tools-gdb-6.0-20050609.i386.rpm (설치시 에러가 나므로 일단 패스 -.-.)
msp430tools-gdb-proxy-6.0-20050609.i386.rpm (마찬가지로 패스 -.-.)
msp430tools-libc-20050308cvs-20050608.i386.rpm
msp430tools-jtag-lib-20031101cvs-20050610.i386.rpm
msp430tools-python-tools-1.0-1.noarch.rpm
nesc-1.2.8a-1.i386.rpm
tinyos-tools-1.2.3-1.i386.rpm
tinyos-1.1.15Dec2005cvs-1.noarch.rpm

다음과 같이 설치한다.

$>yum install gcc-c++
$>yum install make
$>yum localinstall --nogpgcheck avarice-2.4-1.i386.rpm
$>yum localinstall --nogpgcheck avr-binutils-2.15tinyos-3.i386.rpm
$>yum localinstall --nogpgcheck avr-gcc-3.4.3-1.i386.rpm
$>yum localinstall --nogpgcheck avr-libc-1.2.3-1.i386.rpm
$>rpm -ivh --replacefiles avr-insight-6.3-1.i386.rpm
$>yum install graphviz
$>yum localinstall --nogpgcheck nesc-1.2.8a-1.i386.rpm
$>yum localinstall --nogpgcheck tinyos-tools-1.2.3-1.i386.rpm
$>yum localinstall --nogpgcheck msp430tools-base-0.1-20050607.i386.rpm
$>yum localinstall --nogpgcheck msp430tools-binutils-2.16-20050607.i386.rpm
$>yum localinstall --nogpgcheck msp430tools-gcc-3.2.3-20050607.i386.rpm
$>yum localinstall --nogpgcheck msp430tools-libc-20050308cvs-20050608.i386.rpm
$>yum localinstall --nogpgcheck msp430tools-jtag-lib-20031101cvs-20050610.i386.rpm
$>yum localinstall --nogpgcheck msp430tools-python-tools-1.0-1.noarch.rpm
$>yum localinstall --nogpgcheck tinyos-1.1.15Dec2005cvs-1.noarch.rpm

CVS repository로부터 TinyOS source를 다운로드 받아 복사해도 되지만 이 부분은 아직 해보지 않아서 검증되지 않았지만 다음과 같이 source를 받아오면 된다.
이 때, 반드시 해당 디렉토리로 이동 후 명령 실행해야 한다.(opt/tinyos-1.x의 경로에 설치할 경우, /opt 폴더에서 실행)

$>cvs -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos login(passware를 물어보면 엔터를 친다.)
$>cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co -r tos-1-1-14-candidate tinyos-1.x
또는, cvs -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co tinyos-1.x(설치시간은 대략 30분 남짓 걸린다.)

만약 cvs 가 실행이 안 될 경우, cvs 설치한다.

$>yum install cvs

설치가 끝나면 vi /root/.bashrc 파일을 열어 아래와 같은 내용의 환경변수를 추가한다.

#MSPGCC
export MSPGCCROOT=/opt/msp430
export PATH=$MSPGCCROOT/bin:$PATH

#TinyOS
export TOSROOT=/opt/tinyos-1.x
export TOSDIR=$TOSROOT/tos
export CLASSPATH=$TOSROOT/tools/java:$CLASSPATH
export MAKERULES=$TOSROOT/tools/make/Makerules

3. 아래 내용중에 vi /root/.bashrc 파일을 열어 빠진 내용이 없는지 확인한다.

#Java
export JAVA_HOME=/opt/ibm/java2-i386-50
export JDKROOT=$JAVA_HOME
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.

#MSPGCC
export MSPGCCROOT=/opt/msp430
export PATH=$MSPGCCROOT/bin:$PATH

#TinyOS
export TOSROOT=/opt/tinyos-1.x
export TOSDIR=$TOSROOT/tos
export CLASSPATH=$TOSROOT/tools/java:$CLASSPATH
export MAKERULES=$TOSROOT/tools/make/Makerules


이로써 fedora 10 환경에서 TinyOS를 사용할 수 있게 된다.
시스템을 재부팅을 하고, 마지막으로 테스트를 한다.

Blink 디렉토리로 이동~~

$>cd /opt/tinyos-1.x/apps/Blink
$>make install telosb
...
...
...
rm -f build/telosb/main.exe.out build/telosb/main.ihex.out

성공이다... :-)

*TIP
java tools 가 실행되지 않을 경우...
/opt/tinyos-1.x/tools/java 로 이동하여 컴파일...
$>make
해당 툴의 class 파일이 생성되면 사용가능하게 된다.

USB serial Comm. 을 위해 다음과 같이 수정한다.
$>vi /opt/ibm/java2-i386-50/jre/lib/javax.comm.properties의 내용 중

/dev/ttyS=PORT_SERIAL >> /dev/ttyUSB=PORT_SERIAL 로 변경 후 적용하면 끝. 

 

'old > Hmote' 카테고리의 다른 글

NesC Manual  (0) 2010.05.08
CC2420 채널변경 옵션  (0) 2010.05.06
NesC  (0) 2010.05.06
하이퍼터미널 사용  (0) 2010.05.06
UART  (0) 2010.05.06
Posted by jazzlife
,

Makefile 중에서...


 COMPONENT=TRecv
 PFLAGS := $(PFLAGS) -DCC2420_DEF_CHANNEL=22
 include ../Makerules

'old > Hmote' 카테고리의 다른 글

NesC Manual  (0) 2010.05.08
TinyOS-1.x Installation on Linux(Fedora 10)  (0) 2010.05.06
NesC  (0) 2010.05.06
하이퍼터미널 사용  (0) 2010.05.06
UART  (0) 2010.05.06
Posted by jazzlife
,

NesC

old/Hmote 2010. 5. 6. 09:45

TinyOS는 NesC라는 언어를 사용하고 윈도우에서 cygwin으로 프로그램을 작성한다.

메뉴얼 첨부... 

'old > Hmote' 카테고리의 다른 글

TinyOS-1.x Installation on Linux(Fedora 10)  (0) 2010.05.06
CC2420 채널변경 옵션  (0) 2010.05.06
하이퍼터미널 사용  (0) 2010.05.06
UART  (0) 2010.05.06
기본 구성 분석 (module)  (0) 2010.05.06
Posted by jazzlife
,

[ 하이퍼터미널 사용 ]

 

$motelist 명령어로 현재 사용하고있는 port 넘버를 알아낸다.

 

하이퍼터미널을 열고

 1. port 설정

 2. 57600 bit/sec 설정

 3. 8bit

 4. 패리티 없음

 5. 정지비트 1

 6. 흐름제어 없음

'old > Hmote' 카테고리의 다른 글

CC2420 채널변경 옵션  (0) 2010.05.06
NesC  (0) 2010.05.06
UART  (0) 2010.05.06
기본 구성 분석 (module)  (0) 2010.05.06
기본 구성 분석 (configuration)  (0) 2010.05.06
Posted by jazzlife
,

UART

old/Hmote 2010. 5. 6. 09:44

[ UART 사용 ]

; 시리얼 통신을 이용하여 Hmote의 출력값을 보자.


(추가할 것들)

components HPLUARTC;


interface HPLUART as UART;


call UART.init()

call UART.put()

event async result_t UART.get()

event async result_t UART.putDone()

'old > Hmote' 카테고리의 다른 글

NesC  (0) 2010.05.06
하이퍼터미널 사용  (0) 2010.05.06
기본 구성 분석 (module)  (0) 2010.05.06
기본 구성 분석 (configuration)  (0) 2010.05.06
Compile  (0) 2010.05.06
Posted by jazzlife
,

module BlinkM {                        <- 모듈을 정의.


provides {                                <- 나를 콘트롤 할 것.
interface StdControl;
  }

  uses {                                   <- 내가 사용할 것들.
   interface Timer;
   interface Leds;
  }

 }


implementation {

 int i=0;                                                <- 전역변수

 command result_t StdControl.init() {       <- 초기화
  call Leds.init();
  return SUCCESS;
 }


 command result_t StdControl.start() {                <- 시작
  return call Timer.start(TIMER_REPEAT, 1000);
 }
 
 command result_t StdControl.stop() {                <- 종료
  call Leds.init();
  return call Timer.stop();
 }


 event result_t Timer.fired() {                             <- 타이머가 호출되면 실행 (기본적으로 무한 루프)
 
  call Leds.blueOff();
  call Leds.redOff();
  call Leds.yellowOff();
 
  if((i%2)==1)
   call Leds.blueOn();
 
  if((i/2)>=1 && (i/2)%2!=0)
   call Leds.redOn();
 
  if((i/4)>=1)
   call Leds.yellowOn();
 
  i++;
  if(i==8)
   i=0;
  
  return SUCCESS;
 }
}

'old > Hmote' 카테고리의 다른 글

하이퍼터미널 사용  (0) 2010.05.06
UART  (0) 2010.05.06
기본 구성 분석 (configuration)  (0) 2010.05.06
Compile  (0) 2010.05.06
Install 및 Patch  (0) 2010.05.06
Posted by jazzlife
,

configuration Blink {
}

 

implementation {

 components Main, BlinkM, TimerC, LedsC;             <- 사용할 components 들을 선언.

 Main.StdControl -> TimerC.StdControl;                  <- 연결 해주자.
 Main.StdControl -> BlinkM.StdControl;

 BlinkM.Timer -> TimerC.Timer[unique("Timer")];
 BlinkM.Leds -> LedsC;

 }

'old > Hmote' 카테고리의 다른 글

하이퍼터미널 사용  (0) 2010.05.06
UART  (0) 2010.05.06
기본 구성 분석 (module)  (0) 2010.05.06
Compile  (0) 2010.05.06
Install 및 Patch  (0) 2010.05.06
Posted by jazzlife
,

Compile

old/Hmote 2010. 5. 6. 09:42

[ Compile ]

 

$ make <platform> install.<node_number>


$ make <platform> reinstall    <- 변경된 코드만 업로드  (빠르지만 문제가 생길 수 있다.)

 

$ make clean


ex)

 make hybus install.0

 make hybus reinstall.0

 make clean

 



* make <platform> docs  <-  웹형식의 메뉴얼을 만들어 준다. (/doc/nesdoc/<platform>에 생성됨)

'old > Hmote' 카테고리의 다른 글

하이퍼터미널 사용  (0) 2010.05.06
UART  (0) 2010.05.06
기본 구성 분석 (module)  (0) 2010.05.06
기본 구성 분석 (configuration)  (0) 2010.05.06
Install 및 Patch  (0) 2010.05.06
Posted by jazzlife
,

Install 및 Patch

old/Hmote 2010. 5. 6. 09:41

1. Install 및 patch


 1.1 tinyos install


CD안에 있는 TinyOS install 폴더에 들어가면 tinyos-1.1.11-3is.exe 라는 파일이 있다.
더블 클릭하여 실행한다.


인스톨이 다 끝나면, install done이란 메시지가 뜨고 바탕화면에 Cygwin이란 icon이 생성된다.



 1.2. RPM update

CD안에 있는 RPM_tinyos-1.1.13May2005cvs-1 폴더에 들어가면
tinyos-1.1.13May2005cvs-1.cygwin.noarch.rpm 라는 파일이 있다. 이 파일을 tinyos가 설치된 디렉토리의 /opt 디렉토리에 copy한다.
만약 install시에 설치경로를 default로 했다면 C:\Program Files\UCB\cygwin\opt 에 copy 하면 된다.
Cygwin을 클릭하여 들어간 후 ,/opt로 이동한 다음 rpm update를 한다.
완료되었으면 다음과 같이 rpm버전을 확인해보자.


rpm –Uvh tinyos-1.1.13May2005cvs-1.cygwin.noarch.rpm


1.3. Patch

CD안에 [PATCH]hybus-tinyos-1.1.13-20070119폴더로 들어가면 apps, contrib, tools, GPSInformation, tools, tos 라는 디렉토리가 있다. 모든 디렉토리를 전부 copy하여 tinyos가 설치된 곳에 덮어쓰기한다.


- default로 디렉토리 설정을 했다면 C:\Program Files\UCB\cygwin\opt\tinyos-1.x로 이동하여 덮어쓴다.


이제 Hyper-Hmote를 사용하기 위한 모든 준비를 마쳤다.


TIP )
contrib. 디렉토리는 xbow를 포함한 센서 네트워크 개발 업체들의 tinyos software를 모아 둔 디렉토리로서, 센서 노드를 이용한 프로젝트 수행 시에, 개발 참고용으로 하기 좋다.

'old > Hmote' 카테고리의 다른 글

하이퍼터미널 사용  (0) 2010.05.06
UART  (0) 2010.05.06
기본 구성 분석 (module)  (0) 2010.05.06
기본 구성 분석 (configuration)  (0) 2010.05.06
Compile  (0) 2010.05.06
Posted by jazzlife
,

UML2.x_이론7일차

old/UML_2.x 2010. 5. 4. 21:07

'old > UML_2.x' 카테고리의 다른 글

UML2.x_이론9일차  (0) 2010.05.07
UML2.x_이론8일차  (0) 2010.05.07
UML2.x_실습6일차  (0) 2010.05.04
UML2.x_이론6일차  (0) 2010.05.04
UML2.x_실습5일차  (0) 2010.05.03
Posted by jazzlife
,

UML2.x_실습6일차

old/UML_2.x 2010. 5. 4. 18:48

'old > UML_2.x' 카테고리의 다른 글

UML2.x_이론8일차  (0) 2010.05.07
UML2.x_이론7일차  (0) 2010.05.04
UML2.x_이론6일차  (0) 2010.05.04
UML2.x_실습5일차  (0) 2010.05.03
UML2.x_이론5일차  (0) 2010.05.03
Posted by jazzlife
,

UML2.x_이론6일차

old/UML_2.x 2010. 5. 4. 18:48

'old > UML_2.x' 카테고리의 다른 글

UML2.x_이론7일차  (0) 2010.05.04
UML2.x_실습6일차  (0) 2010.05.04
UML2.x_실습5일차  (0) 2010.05.03
UML2.x_이론5일차  (0) 2010.05.03
UML2.x_실습4일차  (0) 2010.04.30
Posted by jazzlife
,

UML2.x_실습5일차

old/UML_2.x 2010. 5. 3. 18:54

'old > UML_2.x' 카테고리의 다른 글

UML2.x_실습6일차  (0) 2010.05.04
UML2.x_이론6일차  (0) 2010.05.04
UML2.x_이론5일차  (0) 2010.05.03
UML2.x_실습4일차  (0) 2010.04.30
UML2.x_이론4일차  (0) 2010.04.30
Posted by jazzlife
,

UML2.x_이론5일차

old/UML_2.x 2010. 5. 3. 18:54

'old > UML_2.x' 카테고리의 다른 글

UML2.x_이론6일차  (0) 2010.05.04
UML2.x_실습5일차  (0) 2010.05.03
UML2.x_실습4일차  (0) 2010.04.30
UML2.x_이론4일차  (0) 2010.04.30
UML2.x_실습3일차  (0) 2010.04.29
Posted by jazzlife
,

UML2.x_실습4일차

old/UML_2.x 2010. 4. 30. 22:07

'old > UML_2.x' 카테고리의 다른 글

UML2.x_실습5일차  (0) 2010.05.03
UML2.x_이론5일차  (0) 2010.05.03
UML2.x_이론4일차  (0) 2010.04.30
UML2.x_실습3일차  (0) 2010.04.29
UML2.x_이론3일차  (0) 2010.04.28
Posted by jazzlife
,

UML2.x_이론4일차

old/UML_2.x 2010. 4. 30. 22:06

'old > UML_2.x' 카테고리의 다른 글

UML2.x_이론5일차  (0) 2010.05.03
UML2.x_실습4일차  (0) 2010.04.30
UML2.x_실습3일차  (0) 2010.04.29
UML2.x_이론3일차  (0) 2010.04.28
UML2.x_실습2일차  (0) 2010.04.28
Posted by jazzlife
,

UML2.x_실습3일차

old/UML_2.x 2010. 4. 29. 19:08

'old > UML_2.x' 카테고리의 다른 글

UML2.x_실습4일차  (0) 2010.04.30
UML2.x_이론4일차  (0) 2010.04.30
UML2.x_이론3일차  (0) 2010.04.28
UML2.x_실습2일차  (0) 2010.04.28
UML 소개_이론2일차  (0) 2010.04.27
Posted by jazzlife
,

UML2.x_이론3일차

old/UML_2.x 2010. 4. 28. 20:56

'old > UML_2.x' 카테고리의 다른 글

UML2.x_이론4일차  (0) 2010.04.30
UML2.x_실습3일차  (0) 2010.04.29
UML2.x_실습2일차  (0) 2010.04.28
UML 소개_이론2일차  (0) 2010.04.27
UML 2.x_실습1일차  (0) 2010.04.27
Posted by jazzlife
,

UML2.x_실습2일차

old/UML_2.x 2010. 4. 28. 20:55

구현 목적을 명사화하여 구체화하고 구체화된 구현사항에 대해서 추상화, 일반화를 진행한다.
패턴을 알고 있으면 유용하다.

'old > UML_2.x' 카테고리의 다른 글

UML2.x_실습3일차  (0) 2010.04.29
UML2.x_이론3일차  (0) 2010.04.28
UML 소개_이론2일차  (0) 2010.04.27
UML 2.x_실습1일차  (0) 2010.04.27
UML 소개_이론1일차  (0) 2010.04.26
Posted by jazzlife
,

'old > UML_2.x' 카테고리의 다른 글

UML2.x_실습3일차  (0) 2010.04.29
UML2.x_이론3일차  (0) 2010.04.28
UML2.x_실습2일차  (0) 2010.04.28
UML 2.x_실습1일차  (0) 2010.04.27
UML 소개_이론1일차  (0) 2010.04.26
Posted by jazzlife
,

UML 2.x_실습1일차

old/UML_2.x 2010. 4. 27. 18:53

클래스의 특징 : 책임,역할,협력

'old > UML_2.x' 카테고리의 다른 글

UML2.x_실습3일차  (0) 2010.04.29
UML2.x_이론3일차  (0) 2010.04.28
UML2.x_실습2일차  (0) 2010.04.28
UML 소개_이론2일차  (0) 2010.04.27
UML 소개_이론1일차  (0) 2010.04.26
Posted by jazzlife
,

[List14.java]

public class List14 extends ListActivity {

    private static class EfficientAdapter extends BaseAdapter {
        private LayoutInflater mInflater;
        private Bitmap mIcon1;
        private Bitmap mIcon2;

        public EfficientAdapter(Context context) {
            mInflater = LayoutInflater.from(context);

            mIcon1 = BitmapFactory.decodeResource(context.getResources(), R.drawable.icon48x48_1);
            mIcon2 = BitmapFactory.decodeResource(context.getResources(), R.drawable.icon48x48_2);
        }

        public int getCount() {
            return DATA.length;
        }

        public Object getItem(int position) {
            return position;
        }

        public long getItemId(int position) {
            return position;
        }

        public View getView(int position, View convertView, ViewGroup parent) {

            ViewHolder holder;

            if (convertView == null) {
                convertView = mInflater.inflate(R.layout.list_item_icon_text, null);

                holder = new ViewHolder();
                holder.text = (TextView) convertView.findViewById(R.id.text);
                holder.icon = (ImageView) convertView.findViewById(R.id.icon);

                convertView.setTag(holder);
            } else {

                holder = (ViewHolder) convertView.getTag();
            }

            holder.text.setText(DATA[position]);
            holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);

            return convertView;
        }

        static class ViewHolder {
            TextView text;
            ImageView icon;
        }
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setListAdapter(new EfficientAdapter(this));
    }

    private static final String[] DATA = {
            "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam",
            "Zanetti Grana Padano", "Zanetti Parmigiano Reggiano"};
}



[list_item.icon_text.xml]

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <ImageView android:id="@+id/icon"
        android:layout_width="48dip"
        android:layout_height="48dip" />

    <TextView android:id="@+id/text"
        android:layout_gravity="center_vertical"
        android:layout_width="0dip"
        android:layout_weight="1.0"
        android:layout_height="wrap_content" />

</LinearLayout>

'old > API_Demo' 카테고리의 다른 글

Views_ProgressBar_Smooth  (0) 2010.05.06
Views_ProgressBar_Incremental  (0) 2010.05.06
Views_Lists_Slow Adapter  (0) 2010.04.27
Views_Lists_Transcript  (0) 2010.04.27
Views_Lists_Multiple choice list  (0) 2010.04.27
Posted by jazzlife
,

[List13.java]

public class List13 extends ListActivity implements ListView.OnScrollListener {

    private TextView mStatus;
   
    private boolean mBusy = false;
   
    private class SlowAdapter extends BaseAdapter {
        private LayoutInflater mInflater;
       
        public SlowAdapter(Context context) {
            mContext = context;
            mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        }

        public int getCount() {
            return mStrings.length;
        }

        public Object getItem(int position) {
            return position;
        }

        public long getItemId(int position) {
            return position;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            TextView text;
           
            if (convertView == null) {
                text = (TextView)mInflater.inflate(android.R.layout.simple_list_item_1, parent, false);
            } else {
                text = (TextView)convertView;
            }

            if (!mBusy) {
                text.setText(mStrings[position]);
                text.setTag(null);
            } else {
                text.setText("Loading...");
                text.setTag(this);
            }

            return text;
        }

        private Context mContext;
    }
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list_13);
        mStatus = (TextView) findViewById(R.id.status);
        mStatus.setText("Idle");
       
        setListAdapter(new SlowAdapter(this));
       
        getListView().setOnScrollListener(this);
    }
   
   
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
            int totalItemCount) {
    }
   

    public void onScrollStateChanged(AbsListView view, int scrollState) {
        switch (scrollState) {
        case OnScrollListener.SCROLL_STATE_IDLE:
            mBusy = false;
           
            int first = view.getFirstVisiblePosition();
            int count = view.getChildCount();
            for (int i=0; i<count; i++) {
                TextView t = (TextView)view.getChildAt(i);
                if (t.getTag() != null) {
                    t.setText(mStrings[first + i]);
                    t.setTag(null);
                }
            }
           
            mStatus.setText("Idle");
            break;
        case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
            mBusy = true;
            mStatus.setText("Touch scroll");
            break;
        case OnScrollListener.SCROLL_STATE_FLING:
            mBusy = true;
            mStatus.setText("Fling");
            break;
        }
    }

    private String[] mStrings = {
            "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam",
            "Zanetti Grana Padano", "Zanetti Parmigiano Reggiano"};

}



[list_13.xml]

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
   
    <ListView android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:drawSelectorOnTop="false"/>
       
    <TextView android:id="@+id/status"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="8dip"
        android:paddingRight="8dip"/>
       
</LinearLayout>

'old > API_Demo' 카테고리의 다른 글

Views_ProgressBar_Incremental  (0) 2010.05.06
Views_Lists_Efficient Adapter  (0) 2010.04.27
Views_Lists_Transcript  (0) 2010.04.27
Views_Lists_Multiple choice list  (0) 2010.04.27
Views_Lists_Single choice list  (0) 2010.04.27
Posted by jazzlife
,

[List12.java]

public class List12 extends ListActivity implements OnClickListener, OnKeyListener {

    private EditText mUserText;
   
    private ArrayAdapter<String> mAdapter;
   
    private ArrayList<String> mStrings = new ArrayList<String>();
   
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       
        setContentView(R.layout.list_12);
       
        mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mStrings);
       
        setListAdapter(mAdapter);
       
        mUserText = (EditText) findViewById(R.id.userText);

        mUserText.setOnClickListener(this);
        mUserText.setOnKeyListener(this);
    }

    public void onClick(View v) {
        sendText();
    }

    private void sendText() {
        String text = mUserText.getText().toString();
        mAdapter.add(text);
        mUserText.setText(null);
    }

    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (event.getAction() == KeyEvent.ACTION_DOWN) {
            switch (keyCode) {
                case KeyEvent.KEYCODE_DPAD_CENTER:
                case KeyEvent.KEYCODE_ENTER:
                    sendText();
                    return true;
            }
        }
        return false;
    } 
}



[list_12.xml]

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingLeft="8dip"
    android:paddingRight="8dip">
   
    <ListView android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:stackFromBottom="true"
        android:transcriptMode="normal"/>
       
    <EditText android:id="@+id/userText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
       
</LinearLayout>

'old > API_Demo' 카테고리의 다른 글

Views_Lists_Efficient Adapter  (0) 2010.04.27
Views_Lists_Slow Adapter  (0) 2010.04.27
Views_Lists_Multiple choice list  (0) 2010.04.27
Views_Lists_Single choice list  (0) 2010.04.27
Views_Lists_Array(Overlay)  (0) 2010.04.27
Posted by jazzlife
,

[List11.java]

public class List11 extends ListActivity {
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setListAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_multiple_choice, GENRES));
       
        final ListView listView = getListView();

        listView.setItemsCanFocus(false);
        listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    }


    private static final String[] GENRES = new String[] {
        "Action", "Adventure", "Animation", "Children", "Comedy", "Documentary", "Drama",
        "Foreign", "History", "Independent", "Romance", "Sci-Fi", "Television", "Thriller"
    };
}

'old > API_Demo' 카테고리의 다른 글

Views_Lists_Slow Adapter  (0) 2010.04.27
Views_Lists_Transcript  (0) 2010.04.27
Views_Lists_Single choice list  (0) 2010.04.27
Views_Lists_Array(Overlay)  (0) 2010.04.27
Views_Lists_Photos  (0) 2010.04.27
Posted by jazzlife
,

[List10.java]

public class List10 extends ListActivity {
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setListAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_single_choice, GENRES));
       
        final ListView listView = getListView();

        listView.setItemsCanFocus(false);
        listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    }


    private static final String[] GENRES = new String[] {
        "Action", "Adventure", "Animation", "Children", "Comedy", "Documentary", "Drama",
        "Foreign", "History", "Independent", "Romance", "Sci-Fi", "Television", "Thriller"
    };
}

'old > API_Demo' 카테고리의 다른 글

Views_Lists_Transcript  (0) 2010.04.27
Views_Lists_Multiple choice list  (0) 2010.04.27
Views_Lists_Array(Overlay)  (0) 2010.04.27
Views_Lists_Photos  (0) 2010.04.27
Views_Lists_Cursor(Phones)  (0) 2010.04.27
Posted by jazzlife
,