2013-07-19 이전 활용 예제
Retired DISLab
목차 |
Library 파일 Import 방법 설명
media: Library파일Import방법설명.pptx
1) Action Logger 예제
- 본 예제는 Blackboard에 값을 update하는 방식을 보여드리기 위한 예제입니다.
- 필요 프로그램 : Blackboard APK
- Blackboard APK가 실행중일 때만 Action Logger 예제가 동작 가능합니다.
- 필요 Library : Agent 작성 Library
- Library 등록 방법은 'Library 파일 Import 방법 설명' 에서 보실 수 있습니다.
- 주의 Library 등록 시 AndroidManifest.xml의 Application 항목에 android:name="mif.blackboard.monitor.BlackboardMonitorApplication" 을 추가해주셔야 합니다.
- 예제 프로그램
- Time, Latitude, Longitude, MovingFlag를 입력 가능한 EditText 4개가 존재합니다. 값을 입력하신 후 update를 누르면 Blackboard에 해당 값이 기록됩니다. clear 클릭 시엔 EditText가 모두 빈 칸으로 바뀝니다.
- 값 변경 시 Blackboard에서 Logcat에 값 변경 메시지를 띄웁니다. 이 때, 기존 값과 같은 값이면 Logcat에 메시지를 띄우지 않습니다.
- 2.0 미만의 Library를 사용했습니다. 2.0 이상의 Library 사용시 상수값을 BlackboardMonitor 객체가 아닌 BBTags 객체를 사용해주셔야 합니다.
- media: ActionLogger예제프로젝트.zip
- media: ActionLogger예제.apk
2) Sample Agent 예제 1, 2
- 본 예제는 Blackboard에 알림을 받고자 하는 값을 subscribe 하는 방식을 보여드리기 위한 예제입니다. 또한 '3) Card 예제'와 연동됩니다. '3) Card 예제'를 사용하지 않을 시 subscribe 하는 방식만을 확인해주시면 됩니다.
- 필요 프로그램 : Blackboard APK
- Blackboard APK가 실행중일 때만 Agent 예제 1,2가 동작 가능합니다.
- 필요 Library : Agent 작성 Library
- Library 등록 방법은 'Library 파일 Import 방법 설명' 에서 보실 수 있습니다.
- 주의 Library 등록 시 AndroidManifest.xml의 Application 항목에 android:name="mif.blackboard.monitor.BlackboardMonitorApplication" 을 추가해주셔야 합니다.
- 주의 Library 등록 시 AndroidManifest.xml의 Application 항목에 <receiver android:name="mif.blackboard.monitor.OnCreateCardListener"/> 와 <receiver android:name="mif.blackboard.monitor.OnBlackboardListener"/> 을 추가해주셔야 합니다. (카드 생성용 Agent는 전자만 추가해 주시면 되고, subscribe를 사용하는 Agent는 후자만 등록하시면 됩니다.)
- 예제 프로그램 1
- subscribe 기능 관련 내용
- Time, Latitude, Longitude, MovingFlag를 입력 가능한 EditText 4개가 존재합니다. 값을 입력하신 후 update를 누르면 Blackboard에 해당 값이 기록됩니다. clear 클릭 시엔 EditText가 모두 빈 칸으로 바뀝니다.
- subscribe Toggle 아래의 4개의 Toggle 버튼을 통해 각각 Time, Latitude, Longitude, MovingFlag에 대한 subscribe(ON) 혹은 unSubscribe(OFF)를 하실 수 있습니다.
- subscribe 한 값에 대해서는 해당 프로그램 혹은 다른 프로그램(예제 프로그램2 또는 Action Logger)으로 값을 update할 시 변경된 값에 대한 알림을 생성된 Agent객체의 'onNotify'함수를 통해 받으실 수 있습니다.(현재는 Logcat으로 출력하도록 되어 있습니다.)
- '3) Card 예제'과의 연동 관련 내용
- 본 예제의 Agent의 이름은 'testWeather' 로써 'testWeather'에 대한 CARD 생성 요청을 받아 'onRequestCard'에서 처리를 합니다. 본 예제는 단순히 "result from testWeather!" 라는 메시지를 CARD 생성 요청을 한 프로그램에게 결과로써 보냅니다.
- 2.0 미만의 Library를 사용했습니다. 2.0 이상의 Library 사용시 상수값을 BlackboardMonitor 객체가 아닌 BBTags 객체를 사용해주셔야 합니다.
- media: Agent예제1_프로젝트.zip
- media: Agent예제1_예제.apk
- subscribe 기능 관련 내용
- 예제 프로그램 2
- subscribe 기능 관련 내용
- 예제 프로그램 1과 동일합니다.
- '3) Card 예제'과의 연동 관련 내용
- 본 예제의 Agent의 이름은 'testBus' 로써 'testBus'에 대한 CARD 생성 요청을 받아 'onRequestCard'에서 처리를 합니다. 본 예제는 Blackboard에서 Time, Latitude, Longitude, MovingFlag를 받은 후 ServiceFactory에서 원하는 서비스를 얻어 requestURL 함수를 수행한 후 해당 결과를 'testBus' CARD 생성 요청을 한 프로그램에게 결과로써 보냅니다. 이 때 서비스 부분은 아직 구현되지 않았으며 이후 사용 가능할 예정입니다. 현재는 단순히 입력된 값을 리턴합니다.
- 2.0 미만의 Library를 사용했습니다. 2.0 이상의 Library 사용시 상수값을 BlackboardMonitor 객체가 아닌 BBTags 객체를 사용해주셔야 합니다.
- media: Agent예제2_프로젝트.zip
- media: Agent예제2_예제.apk
- subscribe 기능 관련 내용
3) Card 예제
- 본 예제는 Card 요청에 따라 Agent에서 데이터를 받는 방식을 보여드리기 위한 예제입니다.
- 필요 프로그램 : Blackboard APK, '2) Sample Agent 예제 1, 2'의 예제 중 하나 혹은 둘 다
- Blackboard APK가 실행중일 때만 Action Logger 예제가 동작 가능합니다.
- '2) Sample Agent 예제 1, 2' 중 적어도 하나가 있어야 CARD 생성에 대한 응답을 들을 수 있습니다.
- 필요 Library : card 사용 Library
- Library 등록 방법은 'Library 파일 Import 방법 설명' 에서 보실 수 있습니다.
- 주의 Library 등록 시 AndroidManifest.xml의 Application 항목에 android:name="mif.service.agent.monitor.AgentMonitorApplication" 을 추가해주셔야 합니다.
- 주의 Library 등록 시 AndroidManifest.xml의 Application 항목에 <receiver android:name="mif.service.agent.monitor.AgentMonitorReceiver"/> 을 추가해주셔야 합니다.
- 예제 프로그램
- 'testBus' Agent( '2)'의 예제1 )와 'testWeather Agent( '2)'의 예제1 )에게 Card 생성을 요청하는 2개의 버튼이 존재합니다.
- 생성된 CARD는 onReceiveCard 함수를 통해 받습니다. 현재는 Logcat을 통해 받은 메시지를 볼 수 있도록 되어 있습니다.
- 2.0 미만의 Library를 사용했습니다. 2.0 이상의 Library 사용시 상수값을 AgentMonitor 객체가 아닌 BBTags 객체를 사용해주셔야 합니다.
- media: Card예제프로젝트.zip
- media: Card예제.apk
4) Blackboard에서 데이터 읽기 예제
- 본 예제는 Blackboard에서 값을 읽는 방식을 보여드리기 위한 예제입니다.
- 필요 프로그램 : Blackboard APK
- Blackboard APK가 실행중일 때만 예제가 동작 가능합니다.
- 필요 Library : Agent 작성 Library
- Library 등록 방법은 'Library 파일 Import 방법 설명' 에서 보실 수 있습니다.
- 주의 Library 등록 시 AndroidManifest.xml의 Application 항목에 android:name="mif.blackboard.monitor.BlackboardMonitorApplication" 을 추가해주셔야 합니다.
- 예제 프로그램
- Time, Latitude, Longitude, MovingFlag에 해당하는 EditText 4개가 존재합니다. GET 버튼을 클릭하면 각각의 값을 Blackboard에서 읽어 EditText에 띄웁니다.
- 2.0 버전의 Agent Library를 사용했습니다.
- media: LoggerRead예제프로젝트.zip
- media: LoggerRead예제.apk
5) Blackboard에 새로운 Field를 만들거나 제거하는 예제
- 본 예제는 Blackboard에 새로운 Field를 만들거나 제거하는 방식을 보여드리기 위한 예제입니다.
- 필요 프로그램 : Blackboard APK
- Blackboard APK가 실행중일 때만 예제가 동작 가능합니다.
- 필요 Library : Agent 작성 Library
- Library 등록 방법은 'Library 파일 Import 방법 설명' 에서 보실 수 있습니다.
- 주의 Library 등록 시 AndroidManifest.xml의 Application 항목에 android:name="mif.blackboard.monitor.BlackboardMonitorApplication" 을 추가해주셔야 합니다.
- 예제 프로그램
- ObjName, FieldName, Value의세가지 EditText와 4개의 버튼이 존재합니다.
- ObjName과 FieldName에 값을 쓰시고 createField를 누르시면 BlackBoard에 해당 객체명과 필드명으로 새로운 필드가 생깁니다. (필드가 존재하지 않으면 update, get이 불가능합니다.)
- 역시 deleteField를 누르시면 해당 필드가 삭제됩니다.
- Value에 값을 쓰신 후 update를 누르면 ObjName, FieldName에 해당하는 필드에 Value에 쓴 값을 update하고, get을 누르면 값을 얻어옵니다.(Value EditText로 값을 얻어옵니다.)
- Field가 만들어지거나 삭제되었는지의 판단은 Logcat을 통해 확인하실 수 있습니다. ('mif'로 검색하시면 쉽게 찾아보실 수 있습니다.)
- deleteField는 해당 필드의 데이터가 없을 경우에만 작동합니다. (데이터가 "" 일 경우)
- 2.0 버전의 Agent Library를 사용했습니다.
- media: CreateField예제프로젝트.zip
- media: CreateField예제.apk