2011년 4월 30일 토요일

아이폰과 갤럭시 탭 블루투스 통신

결론

아이폰은 btstack 라이브러리를 이용해서 HID 방식으로 통신하면되고
갤럭시 탭은 SPP 방식으로 통신하면 된다.
HID방식도 지원한다.

물론 동글은 HID or SPP 프로파일을 지원하는 걸로 구매한다.
현재 진행 중인 시리얼 통신으로 로봇제어하기는 serial2bluetooth 모듈을 이용해서 원격으로 로봇을 제어 하는 방법이 있을 수 있겠다.

갤럭시 탭으로 로봇을 제어하기 위해서는 위 방법대로 serial2bluetooth 모듈을 이용해서 SPP 방식으로 원격에서 로봇을 제어할 수 있을 것 같다.

문제는 serial2bluetooth 전원 공급과 갤럭시 탭에 루팅이 필요하냐 이다.

2011년 4월 25일 월요일

buid ace for iphone

http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/ACE/ACE-INSTALL.html
공식 문서를 보면 iphone 관련 빌드 방법이 나온다.

1. ACE_ROOT 설정
2. IPHONE_TARGET 설정
3. config.h 설정
4. platform_macros.GNU 설정
5. configure 설정
6. make; make install

위와 같은 순서로 진행 하겠다.
1. ACE_ROOT 설정
export ACE_ROOT=~/path/ACE_wrappers/
2. IPHONE_TARGET 설정
export IPHONE_TARGET=HARDWARE
3. config.h 설정
vi ACE_wrappers/ace/config.h
#include "config-macosx-iphone-hardware.h"
4.platform_macros.GNU 설정
vi ACE_wrappers/include/makeinclude/platform_macros.GNU
include $(ACE_ROOT)/include/makeinclude/platform_macosx_iphone.GNU
5. configure 설정
cd ACE_wrappers
mkdir build
cd build
../configure --enable-static --disable-shared --disable-ssl --prefix=/path
6. make; make install
make
sudo make install

완성!!

2011년 4월 18일 월요일

ios cross compile done!!!

드디어 컴파일이 된다. 물론 C++ 관련 파일들도 같이 된다.
문제는 flag였다. 명시적으로 flag를 설정하니 된다.
처음부터 됐어야 하는데... 이것 때문에 많은 시간을 허비했다. 아니 많이 알았다.

내 방법을 설명하겠다.

참고 사항으로 첨부한 iphone_cmake.sh를 보기 바란다.
사용 방법은
기존의 cmakelist.txt가 있다면
mkdir build
cd build
../iphone_cmake.sh device ../ --> device arm
../iphone_cmake.sh simulator ../ --> simulator intel

물론 하위 폴더에 iphone_cmake.sh를 둬야 한다.
현재는 ios 4.2로 되어 있다.
4.3으로 하려면 파일에서 고치면 된다.

현재 포팅된 라이브러리는

boost 1.38.0
ace 6.0.1
opros 1.5.6
dlib
rcf

앞으로 계속 포팅할 것이다.
그때 까지 화이팅!!!

다음 할일은 UIKit를 Cmake로 빌드해서 크로스 컴파일 하는 것이다.

2011년 3월 12일 토요일

Building iphone , using The boost bjam

boost bjam을 이용해서 Iphone 어플 개발을 위한 포스트다.

한달동안 알아보고 해보고 알아보고 해보고.. 반복 했다.

거의 끝이 보이는 것 같다.

하지만 다른 끝이 또 있을지 의문이다.

우선 완성되지는 않았지만.. 지금 까지, 나름 노력한걸 기록 한다.

먼저
http://paulsolt.com/2010/04/c-logging-and-building-boost-for-iphoneipad-3-2-and-macosx/
위의 사이트르 보고 착안했다.
여기서 Iphone용으로 boost 빌드가 가능한다. (실행결과 아직 못봄)

분명 iostream 파일이 있는데 not found되지 않고 빌드 된다는 것이다.

지금가지 Build cmake for iphone을 이용해서 해봤지만 완벽 하게 c/c++을 빌드 하지 못했다.

결론 부터 말한다.

bjam을 이용해서 빌드 하려면

boost_1xx.tar 압축을 풀고

new project folder를 만든다.

boost_1xx에서 tools/build/v2 전체 path를 new project folder (이하 project)에 복사한다.

bjam을 만들고 bjam(maxosx용)과 boost-build.jam을 project에 복사한다.

user-config.jam(위의사이트에서 작성된)파일을 project-config.jam으로 변경한다.

jamroot.jam을 만들고 bjam tutorial에서 한것 처럼

exe hello : hello.cpp ;
을 입력한다.

bjam toolset=darwin ach...=arm tart...=iphone maxcver...=iphone-4.2 ... 실행한다.
..
..
..
에러가 분명히 있겠지............. 내일 해보자...........

2010년 8월 24일 화요일

mac porting(정리)

결론부터 말하자면

GTK+Player, stage(64)
Emss(64)
opros(64)
boost(64)
ace(64)
wxWidgets(64)

player stage는 아래문서를 보고 설치 했다.
http://www.doesnotunderstand.org/wikka.php?wakka=InstallingPlayerAndStageInMacOSX106

INSTALL_DIR는 /usr/local로 했다.


설치지 가장 문제가 되는 부분은
/usr/local/lib과 /opt/local/lib이 충돌이 난다는 것다.

arch 선택은 x86_64로 설정 했고
gtk는 gconvert.c 소스를 약간 수정해서 설치 했다. http://letsneverdie.net/blog/?p=75


그래야 player에 있는 Playerv를 쓸수 있다.

emss설치시에는 -lasound가 문제가 되는데 UNIX AND NOT APPLE 조건으로 설치를 배제했고

boost는 그냥 설치, opros는 semapore관련 소스만 간단히 수정해서 설치 했다.

wxWidgets는 opt에 있는 라이브러리를 wxWidgets이 참조하는 라이브리의 path를 ln -s 해서 설치 한게 가장 큰 이슈인것 같다.
install_name_tool 사용 방법에 관해서 http://web.archiveorange.com/archive/v/KtjmXNbcegyOnszBdOHm

ace는 보통 설치 하듯 했고

전반적으로 64bit에서 설치 했고, opt/local/lib은 모두 64bit이다. 반면 /usr/lib, /usr/local/lib은 i386, x86_64, ppc로 링크되어 있다.

여기서 한가지 배운점은 pkg_config_path를 원하는 path로 설치 전에 export해주고

cmake 작성시 pkg-config는 꼭 제작 해야 겠다.

mac은 gcc 4.2( 10.6.3 )로 되어 있어 그게 설정 해줄 것이다. 소스 변경은 없지만 라이브러리 path라던지 컴파일 옵션을 잘 알아야 헤매지 않겠다.

3rdparty관련 라이브러리 소스 수정은 기억이 안나 백업 해서 SVN에 올린다.

습득 툴로는

macports다

sudo port install xxx로 debian의 apt-get과 비슷한 툴이다.

참고로 cmake , pkg-config와 같은 개발툴은 다 설치 해줘야 한다.

우선 여기서 일달락 짖고 본격적으로 IPAD와 놀아 보자 .

2010년 8월 23일 월요일

mac for opros, convert modification context

/Users/bcc/build/emss_1.3/Core/GUI/MapObjectsView.cpp:81: error: cast from ‘MapObject*’ to ‘int’ loses precision


/Users/bcc/build/emss_1.3/Core/GUI/RemoteInterfaceView.cpp:96: error: cast from ‘RemoteInterfaceMessage*’ to ‘int’ loses precision

/Users/bcc/build/emss_1.3/Core/GUI/TaskEditor.cpp:134: error: cast from ‘Task*’ to ‘int’ loses precision



mrpt

GL/glut.h -> GLUT/glutl.h

GL/glext.h -> OpenGL/glext.h

2010년 8월 22일 일요일

opros for mac os x

player(not gtk), oce, cdl, RCF, ACE, boost is complete install
GTK
wxWidget
TAO
MRPT
emss