2012-09-28 7 views
2

네이티브 직렬 포트 (UART RS-232)에 안드로이드 응용 프로그램/서비스 액세스 권한을 부여하려고합니다. 내가 네이티브라고 말하면, 진정한 UART는 USB에서 직렬 동글이 아니라는 뜻입니다. 터미널에서 볼 수 있습니다 (4 개의 네이티브 직렬 포트 중 하나에 연결됨). 커널이 이미 저수준을 처리하고 있음을 보여줍니다.안드로이드에서 네이티브 직렬 포트에 액세스

# ls -l /dev 
crw-rw-rw- system system 204, 67 2010-01-01 07:00 s3c2410_serial3 
crw-rw-rw- system system 204, 66 2010-01-01 07:00 s3c2410_serial2 
crw-rw-rw- system radio 204, 65 2010-01-01 07:00 s3c2410_serial1 
crw-rw-rw- system system 204, 64 2010-01-01 07:00 s3c2410_serial0 

나는 진저 브레드를 사용합니다. S5PV210 프로세서가 탑재 된 플랫폼에 안드로이드를 이식했습니다. 나는 커널과 권한에 대한 모든 권한을 가지고있다. 나는 이미 init.rc 파일을 포함하여 많은 것들 (셀룰러, 터치 스크린, LCD 패널 크기 등)을 수정했다.

Android APK에서 해당 기기와 어떻게 대화 할 수 있습니까? 당신이 볼 수 있듯이 "s3c2410_serial1"은 "radio"사용자로부터 온 것입니다. 왜냐하면 원래의 시스템에서 진저 브레드 소스 코드를 가져온 것은 GPRS 모듈을 직렬 포트에 가지고 있었기 때문입니다. init.rc.에서 쉽게 변경할 수 있습니다. 그러나 그것은 단지 우리가 안드로이드 시스템에서 기본 직렬 포트에 액세스 할 수 있다는 것을 증명합니다.

응용 프로그램 또는 서비스는 전송 속도 또는 고급 기능을 APK로 제어 할 필요가 없습니다. 나는 캐릭터를 보내고 받고 싶다. 커널은 기본 통신 속도를 설정할 수 있으며 그 점에 만족합니다. 나는 RTS/CTS에 대한 통제조차 필요가 없다.

어떤 힌트를 주시면 감사하겠습니다.

+0

파일 열기, 닫기 등으로 JAVA 파일로 취급하는 친구가 있습니다. Google에서 Github의 일부 소스 코드를 검색 한 것으로 나타났습니다. https://github.com/liquidware/android_serialmonitor 가까이에있는 것 같습니다. 내가하고 싶은 걸로 나는 그것을보고 좋은 해결책이라면 게시 할 것입니다. –

+0

액정 프로그램 코드에는 "com.liquidware.amberserial.app.R"을 가져와야합니다. 어디서나 찾을 수 없습니다. 그것은 안드로이드 플랫폼의 일부이지만 표준이 아닌 것 같습니다. 나는 그것을 어디에서 발견 할 수 없거나 나는 무엇인가 놓쳤다. –

답변

1

나는 길을 발견했다. 그것은 장치로 파일에 액세스하기 때문에 모든 종류의 장치에서 작동하는 것으로 보입니다. 링크 android-serialport-api을 참조하십시오. 모든 종류의/dev /에 대해 작동합니다. mhy의 경우 NDK를 설치하고 작동 시키려면 모든 문제를 해결해야했습니다. C에서 보봇 (Boe) 속도를 설정하는 코드가 있습니다. 사실, 열기 및 닫기는 C에서 구현되는 나머지는 모두 표준 안드로이드 자바입니다.

관련 문제