'My major/SensorNetwork'에 해당되는 글 12건

  1. 2007/01/10 tinyviz 라디오 모델 거리 수정하기 (21)
  2. 2006/08/04 moteIF (3)
  3. 2006/08/02 tython을 이용하여 모트 이동 시키기 (39)
  4. 2006/08/02 tython (tinyviz 실행시키기) (3)
  5. 2006/03/02 Eclipse - tinyOS plugin (20)
2007/01/10 15:37 My major/SensorNetwork
Tinyviz 라이오 모델에 보면 통신 거리 선택에 10, 100, 1000만 선택할수 있게 되어있습니다.
이부분을 자기가 원하는 거리를 넣으려면
/opt/timyos/tools/java/net/tinyos/sim/plugins/RadioModelPlugin.java
파일에 보면 수정하지 않았다면 379번째 라인에

DiscModel dm;
dm = new DiscModel(10.0)
models.put("disc10", dm);
dm = new DiscModel(100.0)
models.put("disc100", dm);
dm = new DiscModel(1000.0)
models.put("disc1000", dm);

이 있습니다 여기에

dm = new DiscModel(15.0)
models.put("disc15", dm);

이렇게 자기가 원하는 거리 넣어서 추가시키고 컴팔 시켜 주면 됩니다.
posted by joyoungtae
2006/08/04 02:43 My major/SensorNetwork
tython의 moteIF.......
0번 노드에게는 메세지를 전송하면서 다른 노드에게는 죽어도 메세지를 전송하지 않는다.
원인을 모르겠다.
완전 열받는다...-_-^
몇시간을 삽질해서...얻어낸 결론은...실패......ㅠㅡㅠ
아....결국 전체 구조를 바꿔야 하는건가...OTL
posted by joyoungtae
2006/08/02 23:39 My major/SensorNetwork
이번에는 tython을 일정 간격으로 모트를 이동 시키는 것을 해보겠다.
우선 다음과 같은 test.py 소스를 작성한다.
from simcore import *
from simutil import *
from simtime import *

try:
  sim.exec("./apps/Blink/build/pc/main.exe", 1)
except:
  print "\nerror running Blink"
  sim.exit()

motes[0].moveTo(5, 50)

def MoveMote(event):
  motes[0].move(1,0)

Periodic(onesec*0.1, MoveMote)

이 소스는 Blink의 소스를 이용하여 0번 모트를 5,50 위치로 초기화 시킨후 0.1 초마다 모트를 오른쪽으로 1만큼 이동 시키는 소스이다.
이 소스는 우선 Blink 소스를 이용하여 TOSSIM과 tinyviz를 실행 시킨다.
motes[0].moveTo(5,50)은 0번 모트를 5,50 위치로 위치시키라는 명령어 이다.
이런 명령어가 가능한것은 simcore에 motes 객체가 있기 때문이다. tython에는 여러 클래스와 명령어 들이 있다. 이것은 메뉴얼을 찾아 보면 될 것이다.
def MoveMote(event): 는 MoveMote라는 함수를 정의한 것이다.
함수 안에는 motes[0].move(1,0)이 있는데 이것은 0번 모트를 x축으로 1칸
이동 시키라는 명령어 이다.
Periodic(onesec*0.1, MoveMote)가 나오는데 Periodic은 주기적으로 함수를 실행 시킬때 사용하는 함수이다. 첫번째 파라미터로 받아진 시간 마다 두번째 파라미터로 들어온 함수를 주기적으로 실행 시키는 것이다. 즉 MoveMote를 0.1초 마다 실행 시키라는 명령어가 된다.

tinyviz -script test.py
위 명령어로 실행을 시키면 모트 0번이 오른쪽으로 이동하는 걸 볼 수 있다.
posted by joyoungtae
2006/08/02 22:50 My major/SensorNetwork
이 글은 내가 간단하게 tython을 이용하면서 얻은 지식을 공유하기 위해 작성하는 글이다.
TOSSIM은 tinyos용 시뮬레이터 인데 이 시뮬레이터의 내용을 비주얼 하게 보여주는 툴이 tinyviz라는 툴이다.  tython은 tinyviz에서 사용되는 스크립트 언어이다. 이 tinyviz는 python과 java로 이루어진 스크립트 파일을 사용할 수있는데 그것이 tython이라 불리고 있다.
tython은 python과 java를 합처 놓은 언어라고 생각하면 된다. java의 클래스를 import 하여 사용할 수도 있고 그냥 python 클래스를 사용할 수 도 있다.
우선 tinyviz 실행하는 법 부터 보겠다.
tinyviz는 /opt/tinyos-1.x/tools/java/net/tinyos/sim 디렉토리에 위치하고 있다. 우선 실행하기 편하게 tinyviz를 /bin 디렉토리로 복사를 해놓는다.(어디에서든 실행 시킬수 있게)
그런후 tinyviz를 실행시키면 다음과 같은 두개의 화면을 만날 수 있다.

다음과 같이 실행이 되었다면 잘 실행이 된 것이다.
하지만 이것은 아직 시뮬레이터인 TOSSIM과 연결되지 않았기 때문에 완전한 상태가 아니다.
TOSSIM과 연결 시키기 위해서는 많은 방법이 있지만 여기선 python 파일을 tinyviz와 같이 실행시키면서 TOSSIM을 실행시키는 법만 말을 하겠다.

우선 test.py 파일을 /opt/tinyos-1.x 에 생성한다. 그런후 다음과 같이 타이핑 한다.

from simcore import *
import simtime, simutil

try:
  sim.exec("./apps/Blink/build/pc/main.exe", 20);
except:
  print "\nerror running Blink"
  sim.exit()

이 소스는 tinyos의 예제중 Blink 예제를 20개의 모트로 실행 시키는 소스이다.
tinyviz -script test.py

이것을 위와 같은 명령어로 실행 시키면 다음과 같이 20개의 모트와 함께 TOSSIM과 tinyviz가 실행 될 것이다. 위와 같은 명령어를 실행시키기 전에 Blink 폴더에서
make pc

위의 명령을 이용해서 TOSSIM용으로 컴파일을 해 놓아야 한다.(반드시!!)

이렇게 실행이 됐다면 잘 된것이다.
다음 글에서는 이제 tython을 활용하는 법을 알아 보기로 하자.

혹시나 모르지만 simutil이나 simtime이 import 가 되지 않을 수 있을 것이다.
이것은 PATH가 잡혀 있지 않아 그런 것 같은데 아무리 PATH를 잡아 주어도 해결되지 않아 난 다음과 같이 해결했다.
/opt/tinyos-1.x/tools/java/net/tinyos/sim/pyscripts 에 있는 파일을 전부 test.py가 있는 디렉토리로 복사하면 해결이 된다.
posted by joyoungtae
2006/03/02 21:04 My major/SensorNetwork
Installation:
1. In Eclispse, click on Help -> Software Update -> Find and Install...

2. Choose the Search for new features to install option, and click Next
3. Click New Remote Site

Update :    Enter the following:
   Name: TinyOS Plugin
    URL: http://dcg.ethz.ch/~rschuler/update

    and click OK

4. Click through the installation (next, next, I accept, install, ..)
5. The plugin should now work without restarting, but for certainity click Yes to make Eclipse restart itself

posted by joyoungtae