IOx IOS + Linux 김형수 부장 Solution SE 2014년 9월 25일 Application Development Guide IOS 와 GOS 연결하기 응용프로그램 패키징 및 배포 GOS 구성하기 (yocto linux) Smart Citizen Kit으로 부터 데이터 읽기 Sample Application 소개 © 2013-2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 2 IOS와 GOS 연결하기 Serial © 2013-2014 Cisco and/or its affiliates. All rights reserved. Serial Cisco Confidential 3 Codefest 환경 및 프로그래밍 영역 시스코제공 응용프로그램을 거친 데이터 WiFi Serial Embedded Linux CGR1K 센서 데이터 Smart Citizen Kit(sensor) DB/Web © 2013-2014 Cisco and/or its affiliates. All rights reserved. IOx 응용프로그램 배포 Cisco Confidential 4 응용프로그램 패키징 (1/2) CGR GOS용 응용프로그램은 아래 규칙에 맞게 패키징 되어야 한다. app-<name>-ver-<version>.zip (예 app-sensorbot-ver-1.0.zip) 응용프로그램은 GOS의 /software/downloads 폴더에 위치되어야 한다. 응용프로그램의 구조는 아래와 같다 © 2013-2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 5 응용프로그램 패키징 (2/2) 파일이름(대소문자구분) 설명 필수사항 connector.ini 응용프로그램의 meta정보를 기술함 sensorbot 응용프로그램의 바이너리 파일로 실제 Linux VM에서 실행되는 파일임 선택사항 sensorbot.c 응용프로그램의 소스코드 start_script 응용프로그램을 실행 시킬수 있고 필요시 사전 처리을 수행할 수 있음 stop_script 응용프로그램을 종료 시킬수 있고 필요시 사후 처리를 수행할 수 있음 notify_script IOS로 부터의 수신하게 되는 notification을 처리하는 로직을 수행 함 statistics_script IOS로 부터 app statistics CLI 요청시 수행 됨 config_script IOS로부터 app config CLI 요청시 수행 됨 © 2013-2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 6 응용프로그램 배포 응용프로그램은 GOS의 /software/downloads 폴더로 복사가 되어야 하며, SFTP/SCP 와 같은 툴로 app-<name>-ver-<version>.zip 을 복사하면 됨 응용프로그램의 설치/시작/종료/삭제는 전부 IOS에서 수행 함 새로운 응용프로그램을 upgrade하는 경우 응용프로그램 이전 버전 종료, 이전 버전 삭제, 신규 버전 설치, 신규 버전 시작 순서로 진행됨 응용프로그램의 디버깅(log 출력)도 IOS 명령어를 통해서 수행됨 참고 자료 : https://communities.cisco.com/docs/DOC-53050 © 2013-2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 7 GOS(yocto linux) 구성하기 CGR1K용으로 구성된 GOS 이미지 다운로드 개발자 사이트에서 cgr1k-ref-gos-1.20.vmdk 다운로드 VirtualBox를 통해서 VM 생성하기 Python pip 및 library 설치하기 pip 및 setuptools 설치시 context.py 파일 필요 pip 설치 이후 pip install pySerial 설치 Python에 필요한 기본 package 설치된 OVA파일 다운로드 Codefest 사이트에 관련 문서 업로드 예정 © 2013-2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 8 Smart Citizen Kit 설정 및 데이터 읽기 http://arduino.cc/en/Main/Software#toc 2 에서 Arduino 1.0.6 IDE 설치 Serial 설정: carriage return, 115200 baud rate SmartCitizenKit 에서 제공하는 명령어 확인 (WiFi 설정) https://github.com/fablabbcn/SmartCitizen-Kit/blob/master/sckcommands.md Arduino IDE Serial Monitor 실행화면 © 2013-2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 9 Sample Application - connector.ini (1/2) [connector:info] #This section captures general information about connector, connector developer etc name:XivelyApp description:Periodically collects sensor data and writes it into Xively version:1.0 author-name:Cisco Systems author-link:http://www.cisco.com/ default-id:XivelyApp [connector:toolkit] #This section captures connector's dependency on the toolkit (version, services used etc) toolkit-version:1.0 services-needed: © 2013-2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 10 Sample Application - connector.ini (2/2) [connector:runtime] #This section captures connector's language runtime (python, java etc) details runtime:generic-linux [connector:process:main] #This section captures connector's main process information runner:start_script stop:stop_script notification:notify_script [connector:global_logging] #Controls global logging level level:ERROR © 2013-2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 11 Sample Application – start_script #!/bin/bash ######################################################### # # start_script # Author: [email protected] # Copyright (c) 2010-2013 by cisco Systems, Inc. # All rights reserved. # ######################################################### # # This is the 'Start' Script for starting the application echo "Starting the application" #IMPORTANT : Start should always block #The infra passes the APP Path, use it to run your binary exec python $CAF_APP_PATH/xively-app.py © 2013-2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 12 Sample Application – stop_script #!/bin/bash # Environment variable APP_PID , CHILDREN_PIDS will be passed along to the script echo "Environment APP_PID: " $APP_PID echo "Environment CHILDREN_PIDS: " $CHILDREN_PIDS if [[ ${APP_PID} == 0 ]]; then echo "Application $APP_PID is not running! " echo "Exiting.." exit fi echo "Killing all app children" for p in $CHILDREN_PIDS; do kill -9 $p done echo "Killing app process" kill -9 $APP_PID © 2013-2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 13 Sample Application – Sensor 데이터 수집/파싱 Sensor Data Temperature: 29.7 C Humidity: 30 % Light: 76.7 lx Battery: 100.0 % Solar Panel: 0 V Carbon Monxide: 33.693 kOhm Nitrogen Dioxide: 22.652 kOhm Noise: 29 mV Wifi Spots: 0 UTC: 2000-01-01 04:01:05 ******************* © 2013-2014 Cisco and/or its affiliates. All rights reserved. 파싱 후 데이터 전송 Cisco Confidential 14 Sample Application – 서버로 전송 © 2013-2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 15 참고할 만한 사이트 CGR 제품 정보 : http://www.cisco.com/go/cgr1000 시스코 개발자 사이트 : https://communities.cisco.com/community/developer/networking/i nternet-of-things/iox Smart Citizen Kit : http://www.smartcitizen.me/ Yocto project(GOS) : https://www.yoctoproject.org/ REST API: http://www.restapitutorial.com/ Arduino : http://www.arduino.cc/ © 2013-2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 16 Thank you.
© Copyright 2024 ExpyDoc