728x90

Error: Program type already present: android.support.v4.app.BackStackRecord$Op


컴파일 하니까 에러가 발생하면서 컴파일이 안된다.


implementation fileTree(dir: 'libs', include: ['*.jar'])

하고 중복이 발생하는 부분이 있나 싶어서


dependencies {
    //implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:support-v4:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation files('libs/d2xx.jar')
}

로 하고 컴파일을 하니까 에러가 발생하지 않고 잘 된다.





블로그 이미지

Link2Me

,
728x90

맥북에서 기본 부팅 순서를 변경하는 방법이다.


시스템 환경설정에서 시동디스크를 선택한다.


자물쇠를 눌러서 비밀번호를 입력하고 나면 선택을 변경할 수 있다.


블로그 이미지

Link2Me

,
728x90

해외 구매한 메모리를 16G로 증설을 시도했으나, 실패했다.


그래서 국내에서 4G 메모리 2개를 구입했다.

맥북이 지원하는 속도는 PC3-8500 인데 한단계 더 높은 메모리를 장착해도 문제가 없다는 얘기를 들어서 한단계 높은 메모리를 구입했다.

메모리를 꼽으니까 정상적으로 잘 동작된다.



지침에는 최대 8G로 나와있다.


최대 메모리를 초과하는 건 이 맥북 프로 2010에서는 안되나 보다.

블로그 이미지

Link2Me

,
728x90

Serial 통신 구현 검토을 위해 관련 지식을 찾아서 정리차 적어둔다.


UART(Universal Asynchronous Receiver/Transmitter) : 비동기통신
- UART는 디지털 데이터 0과 1을 어떻게 통신할 것인지에 대한 통신 규격을 정해 놓은 것

- UART에서 나오는 신호는 보통 TTL 신호레벨을 갖기 때문에 노이즈에 약하고 통신거리에 제약이 있다.

- 하드웨어가 간단해서 거의 모든 장치에서 UART를 지원하기 때문에 (9개의 핀이 연결되거나, USB가 있는 장치라면) 편리하다.

- 1:1 통신만 지원한다. 동일한 속도를 맞추고 시작해야 한다. 그렇지 않으면 데이터가 깨질 것이다. Voltage level 이 동일해야 한다.

- 시리얼 통신의 기본 통신 규격은 1바이트 단위로 반복 전송되는 형식이며 바이트들 사이의 데이터 속성 구분 정보는 UART 기본 규격에서는 정의되어 있지 않다.

- UART로 연결된 두 디바이스 간 공유 클럭이 없으므로, 데이터를 올바르게 디코딩하기 위한 동일한 Baud Rate를 구성하고 일치시켜야 한다.

- 프로토콜에 9600 Baud Rate라고 나오는 경우 클럭이 9600 Hz로 작동한다는 뜻이다.

  (Serial 포트는 9600 Hz로 데이터 라인을 샘플링, 초 당 9600 Bit 전송)

  데이터 프레임의 Over Head (Start Bit, Stop 및 Parity Bit)가 포함되므로 유효 데이터 전송 속도는 약간 낮아지고, 구성한 프레임 Bit 수에 따라 달라진다.



USRT(Universal Synchronous Receiver/Transmitter) : 동기통신


대표적인 직렬통신 방식으로는 LAN , RS232 , X.25 등이 있다.


RS-232는 UART라는 통신 방식으로 데이터를 주고 받을 수 있게 정한 통신 장비(하드웨어)에 대한 규격이다.
- RS-232는 1969년 미국의 EIA(Electric Industries Association)에 의해 정해진 표준 인터페이스
- RS : Recommended Standard
- UART 통신을 할 수 있게 PC의 통신 하드웨어 규격을 표준으로 정해 놓은 것
- RS-232C는 한 번에 한 비트씩 전송되는 방식이고 통신 거리는 일반적으로 15 m(50ft)

- 최고 통신속도 20kb/s

- 지원 전송방식 : Full Duplex

- 최대 출력전압 : ± 25V

- 3V 이상의 신호 논리적으로 0을 나타내며 –3V이하의 전기적 신호가 들어오면 논리적으로 1을 나타내게 된다.



DCD(Data Carrier Detect) :

모뎀이 상대편 모뎀과 전화선 등을 통해서 접속이 완료되었을 때 상대편 모뎀이 캐리어 신호를 보내오며 이 신호를 검출하였음을 컴퓨터 또는 터미널에 알려주는 신호선이다.


RXD(Receive Data)
외부 장치에서 들어오는 직렬통신 데이터를 입력 받는 신호선이다.


TXD(Transmit Data)
비동기식 직렬통신 장치가 외부 장치로 정보를 보낼 때 직렬통신 데이터가 나오는 신호선이다.


DTR(Data Terminal Ready)
컴퓨터 또는 터미널이 모뎀에게 자신이 송수신 가능한 상태임을 알리는 신호선이며 일반적으로 컴퓨터 등이 전원 인가 후 통신 포트를 초기화한 후 이 신호를 출력시킨다.


DSR(Data Set Ready)
모뎀이 컴퓨터 또는 터미널에게 자신이 송수신 가능한 상태임을 알려주는 신호선이며 일반적으로 모뎀에 전원 인가 후 모뎀이 자신의 상태를 파악 한 후 이상이 없을 때 이 신호를 출력시킨다. 


RTS(Ready To Send)
컴퓨터와 같은 DTE장치가 모뎀 또는 프린터와 같은 DCE장치에게 데이터를 받을 준비가 됐음을 나타내는 신호선이다.


CTS(Clear To Send)
모뎀 또는 프린터와 같은 DCE장치가 컴퓨터와 같은 DTE장치에게 데이터를 받을 준비가 됐음을 나타내는 신호선이다.


RI(Ring Indicator)
상대편 모뎀이 통신을 하기위해서 먼저 전화를 걸어오면 전화 벨이 울리게 된다. 이때 이 신호를 모뎀이 인식하여 컴퓨터 또는 터미널에 알려주는 신호선이며 일반적으로 컴퓨터가 이 신호를 받게 되면 전화벨 신호에 응답하는 프로그램을 인터럽터 등을 통해서 호출하게 된다.


참고하면 도움되는 게시글

http://www.hardcopyworld.com/ngine/aduino/index.php/archives/2080



PC에 꼽기만 하면 자동으로 Com Port를 할당해주는 케이블이다.


FTDI USB to UART COM Port Utility
This utility is for use with FTDI USB to UART devices. The utility provides a terminal emulation function for use on Android devices. The Android system must use Android OS version 3.2 or later and provide a USB host port.
Features
* The application will open automatically when you plug in supported FTDI device controller like FT232R, FT245R, FT232H, FT2232D, FT2232H, FT4232H and FT230X, FT231X...
* It supports FTDI USB TTL Serial, USB RS232 and USB Hi-Speed cables.
* Suitable for use on any Android platform with Android v3.2 and later versions.
* Provide general terminal UART utility; easily adaptable to a console function.
* Support CTS/RTS, DTR/DSR and XOFF/XON Flow controls.
* Support Baud from 300 to 921600.
* Save file and Send file functions support XModem, YModem and ZModem file transfer protocols.
* USB Plug and Play.
* USB 2.0 Full Speed compatible.


USB Host 기능을 이용한 시리얼 통신 방법
USB 장치가 OTG 케이블을 통해 연결되면 vendor-id와 product-id에 따라서 이 장치와 연결될 앱을 설정하는 부분이 있다.

SerialConnector 클래스에 initialize() 함수가 있다.
여기서 USB 장치가 연결되면 FTDI 모듈에 맞는 드라이버를 통해 통신할 준비를 한다.

블로그 이미지

Link2Me

,