안녕하세요. 시더입니다.


오늘은 저번에 만들었던 무선통신 예제를 응용해보려고 아이디어를 생각하던중 한가지 장벽을 만났습니다.


앱 개발을 해보신분이라면 아시겠지만 기어2네오 앱에서는 text 타입 input 상태에서 이모티콘이 뜹니다!!


입력은 어떻게 하라고!! 최소한 한글은 안되더라도 숫자도 아니고 영어도 아니고 이모티콘.. 당황스럽더군요. 


하지만 타이젠 웨어러블은 자바스크립트로 알고리즘을 구현한다고 생각하게 되고, 문뜩 계산기 앱이 떠오르


더군요. 계산기와 같은 원리로 임시적으로도 구현을 해보자..! 고 생각했는데 어휴 언제 이걸 구현해..


결국 인터넷을 열심히 찾다가 좋은 자료를 찾아서 이것저것 조금씩 고쳐가면서 테스트 해봤습니다.


사용한 소스의 출처는 다음과 같습니다.


http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=67970&sca=&sfl=wr_subject%7C%7Cwr_content&stx=%B1%DC%BE%EE&sop=and



일단은 시작화면 입니다. 썰렁하죠. input-text가 하나 보이는데.. readonly입니다. 안그러면 이모티콘 구경이죠.


저기서 키보드라고 써있는 버튼을 눌러줍니다.



그러면 요렇게 키보드가 활짝 펴지는데요. 어디한번 눌러보도록 하겠습니다.



아.. 눌르기 힘들어요. 그리고 PC에서 자바스크립 테스트할때는 문제가 없었으나 타이젠에서 할때 한글에 문제 발생


아마도 한글이 2바이트라서 그런가.. 미리 글자를 완성해서 눌러주면 되는걸로 봐선 그건 아닌것 같은데


하여간 일단은 계산기와 비슷한 요런 방식을 쓰면 영문과 숫자는 문제 없습니다. 문제점을 요약해보면...


1.한글이 완성되지 않는다.

2.누르기 너무 힘들다.


당장 떠오르는 해결 방안은 옛날 도스게임에서 적용한 방법을 써야겠군요. koei사에서 대항해시대2 같은 게임을 


한글화하면서 사용한 방법인데 초성 별로 항목을 만들어서 모든 글자를 만드는 방법을 써야겠네요.




Posted by 시더
,

안녕하세요 시더입니다.


오늘 게시글은 저번에 올린글에 이어 예제를 좀 고치고 개선해 봤습니다.


타이젠쪽은 html과 자바스크립트이어서 크게 어려움 없이 작성 하고 있습니다만 안드로이드쪽은


 다소 복잡하네요 배워놓고 안쓰면 이렇게 되나 봅니다 ㅜ.ㅜ 꾸준히 공부하는게 중요해요.


일단 기능을 좀 추가 해봤습니다. 가장 먼저 데이터 출력 부분을 손 봤는데요. (아.. 이거 정말 사진 잘 안찍힘 ㅜ.ㅜ)



기존의 예제는 새로운 데이터를 받으면 기존의 데이터에 뒤에 추가하는 방식이라 새로 들어온 값이 자꾸 화면 밑으로


배치되서 나중에는 스크롤 내리듯이 한참 내려야 하더군요. 그래서 최신값을 맨 위에 나오도록 해봤습니다.



딱히 코드는 별 차이 없지만 이게 더 유용한것 같아서 이렇게 손봤구요.


두번쨰는 계속 쌓여가는 출력결과를 지우는 기능도 필요한것 같아 Clear 버튼을 추가해서 기능을 넣어 봤습니다.



테스트용 어플을 만드는데 필요한 기능을 이것저것 만들어 넣고 보니.. 디스커넥트 에서 글자가 짤리네요 -_-^


19%퍼씩 5개면 100%에 도달하지 않는데 화면이 짤리는건 글자수 때문이네요. 이부분 한글로 대체하면 문제 해결!


그런데 이작업 하면서 재미있는게 Clear() 함수명을 만들 수 없습니다. 아니 만들 수는 있지만 사용할 수 없다가 


정확하네요. 아마 내장함수 때문으로 추측됩니다. 덕분에 함수 호출이 안되서 고민좀 했네요.


그리고 세번째가 리비스 버튼인데 값을 실시간으로 받아서 출력하는 기능인데 여기서 좀 고생하고 있습니다. 



그와중에 깨알 같은 오타 발견했네요. 일단 기능을 구현 했는데 제가 원하는 방식이 아니네요. 


원래는 스마트폰에서 send 함수를 통해서 값을 전달 받게 하려고 했는데 안드로이드의 서비스와 엑티비티간의 함수 


호출과 접근부분을 구현하는데 막혀서 임시적으로 꼼수를 부려봤습니다. 


기어2네오에서 지속적으로 빈값을 보내서 안드로이드가 가지고 있는 데이터를 가져 오는 구조로 해놨습니다. 


이부분은 자료좀 찾아가면서 고쳐야 겠네요. 그리고 여기까지 작성한 타이젠 프로젝트 소스파일을 공개 하겠습니다.


별로 한것도 없지만 타이젠 개발에 대한 자료가 워낙 없으니 누군가에겐 도움이 될거라 생각합니다.



HelloAccessoryConsumer.zip




p.s: 제가 쓰는 게시글과 자료들은 퍼가셔도 되고 링크하셔도 되구요. 상업적 용도로만 쓰지 않으면 상관하지 않습니다.





Posted by 시더
,

안녕하세요 시더입니다.


오늘 작성할 내용은 지난 게시글에 이어서 무선통신 예제를 활용하는 겁니다.


예제를 받아서 안드로이드에 설치하면 엑티비티가 없어서 눈에 보이는게 딱히 없습니다.


딱 서비스만 있어서 백그라운드에서 열심히 도는 중이죠. 그래서 엑티비티를 하나 만들고 런쳐 시켜 보았습니다.



처음에는 버튼 2개로 하나는 값을 받을때 확인용, 하나는 값을 보내는 버튼을 만들었는데 막상 만들고 보니


불편하더군요 그래서 받는 쪽은 스레드를 이용해서 1초 주기로 계속 값을 받아서 TextView에 출력시키게 해봤습니다.


처음에는 값을 어떻게 주고 받을까 인텐드를 사용할까 했는데.. 객체 생성하고  public 쓰면서 변수에 접근 시키는 


방법을 썼습니다.


막상 그렇게 해보니.. 이게 값이 새로이 받아 지는건지 의심이 가서 타이젠쪽 소스에 Fetch를 눌르면 카운트 하나씩


증가하게 수정해서 나온 화면이 위의 화면입니다. 이제 받는 쪽은 거의 실시간(최대 1초 딜레이)으로 화면에 출력되게


했습니다. 해당 예제는 앞으로도 계속 고쳐보도록 하겠습니다.


Posted by 시더
,
안녕하세요 시더입니다.

오늘은 기어2 네오와 갤럭시S3 간의 무선 통신을 해보도록 하겠습니다.

자.. 뭐 부터 해야 할지 난감 하신 분들은 일단 자료를 찾아봅니다. 

이것저것 찾다보면 기어2는 SAP 통신만 사용 가능하다는 내용의 글을 몇개 볼 수 있습니다.

SAP는 삼성 엑세서리 프로토콜의 약자로 생각 됩니다. 그러니까 삼성전용 독자 통신규약 같은거죠.

http://developer.samsung.com/samsung-gear

일단 기어2 네오를 사용하니 저 사이트에서 자료를 찾아봅니다.


쭈욱 내려오다보면 Samples에 예제 몇개가 있는데 이중에서 오늘 사용할 것은 Hello Acessory 입니다.

파일을 다운로드 해보면 다음과 같습니다.


안드로이드 APK파일 + 안드로이드 소스 + 타이젠 웨어러블 소스 이렇게 구성되 있습니다.

압축을 풀고 소스를 꺼내서 이클립스에 import 시켜줍니다.

타이젠쪽은 js 파일에 소스가 거의다 포함되 있고, 안드로이드는 java 파일에 들어 있습니다. 

http://www.javafind.net/gate.jsp?q=/library/324/Samsung_Mobile_SDK_1.5/Docs/API/com/samsung/android/sdk/accessory/SASocket.html

소스를 쭈욱 읽어보면 잘 감이 안오시면  위의 사이트에 들어가보시면 정리가 잘되 있습니다.(영어)

간단 요약하면 send는 전송할때 쓰는 함수, onReceive는 수신될때 쓰는 함수라고 생각하면 됩니다.

그러면 예제를 살짝 고쳐서 동작 시켜 보겠습니다. 참고로 안드로이드쪽은 런쳐 엑티비티가 없습니다. 

앱 화면 안뜬다고 설치 오류난거 아닙니다.


결과가 잘 나오네요. 생각보다 쉽고 간단합니다. 일단 먼저 연결을 해주고, fetch를 눌러준 화면인데요.


2번째 줄에 : ID:104 Test By Cider:Android send 라고 나와 있습니다. 


여기서 : ID:104 Test By Cider가 기어2네오 에서 갤럭시S3 으로 보낸 문자열이고 :Android send가 스마트폰에서 방


금전 받은 문자열과 함께 다시 보내온 겁니다.  즉 기어2네오와 갤럭시S3이 서로 문자를 주고 받은 상태이죠.


그래도 갤럭시S3 쪽도 데이터를 잘 받았는지 확인 해야하는데.. 엑티비티가 없으니 일단 로그를 찍어 봅니다.



네.. 이클립스의 로그켓 기능을 이용해서 해당 부분만 필터링 한 결과인데 2번째 줄에서  ID:104 Test By Cider 문자


열을 확인 할 수 있습니다. 기어2네오로 부터 받은 문자열이죠.


오늘 게시글은 여기까지 쓰겠습니다. 다음 게시글은 기어2와 아두이노 간의 데이터 통신을 해보려 합니다.


될려나 모르겠네요. 기어2네오 - 갤럭시S3 - 아두이노 방식은 당연히 될겁니다. 단 갤럭시S3을 중계기로 써야하죠





Posted by 시더
,

안녕하세요. 시더입니다.


오늘 작성하는 내용은 다름이 아니고 앱을 지우는 것을 해보려 합니다.


지우는게 뭐 그리 복잡하나요? 걍 클릭 몇번 하면 되는거 아님?(나도 처음에 그럴줄 알았지..) 라고 생각 하실겁니다.


자 기어2를 전원을 딱 킵니다. 지우고 싶은 앱 아이콘까지 띠워둔 상태.. 이제 뭘 어떻게 해야 할까요?


... 모르겠는데 걍 이것저것 눌러보다 보면 지우는 버튼 뜨지 않을까? 그리고 잠시 뒤.. 


그런거 없다.


네.. 없습니다. 그런거.. 그럼 어떻하나요? 타이젠 배운답시고 이것저것 설치한 예제들 한가득인데.. 이거 어떻함!


그래서 클래식한 방법으로 진행 해보도록 하겠습니다.


1. 먼저 타이젠 공식 사이트에 들어가서 포럼에 remove, delete, uninstall 을 입력해서 정보를 습득 합니다.

2. 그러다보면 sdk를 이용해서 지운다는 게시글 포착과 내용 이해

3. 그럼 지워봅시다.


cmd 창 띄우시고 sdk unintall 까지 입력!! 은 좋은데.. 내가 지워야할 앱 이름 적으면 되나?


아닙니다. 앱 고유 아이디가 있습니다. 어.. 난 예제로 올린거라서 모르겠는데? 


그러면 고유 아이디를 찾아야 겠죠.


sdk shell [엔터]

/usr/bin/pkginfo --listapp [엔터]


을 입력하면 설치되어 있는 앱 목록이 쭈루룩 나옵니다.

Appid 부분이 해당 앱의 고유 아이디 입니다.


고유 아이디를 얻었으니 basic 앱을 지워보도록 하죠


sdb uninstall tgYabBgSy1 [엔터]


그리고 깔끔하게 지워 졌는지 기어2 네오에서 확인해보면 지워진 것을 확인할 수 있습니다.


안드로이드 타겟보드에 올려진 앱지우던 방식과 거의 일치하네요.


-------------- 요약 ---------------


1.기어2 네오에 설치 된 앱을 지우려면 고유 아이디를 알아야 한다.

2.고유 아이디는 sdb shell 로 접속후 앱목록 보는 명령어로 확인한다.

3.sdb uninstall 고유아이디 를 입력하여 앱을 지운다.




Posted by 시더
,