커맨드 라인, Foundation Objective-C 프로그램을 작성하려고하는데 RS232 시리얼 장치와 통신해야합니다.Objective-C에서 RS232 장치와 어떻게 통신 할 수 있습니까?
방법에 대한 아이디어가 있으십니까?
수정 - 이것은 이 아닙니다. for iPhone! 이 응용 프로그램은 데스크탑 응용 프로그램입니다.
커맨드 라인, Foundation Objective-C 프로그램을 작성하려고하는데 RS232 시리얼 장치와 통신해야합니다.Objective-C에서 RS232 장치와 어떻게 통신 할 수 있습니까?
방법에 대한 아이디어가 있으십니까?
수정 - 이것은 이 아닙니다. for iPhone! 이 응용 프로그램은 데스크탑 응용 프로그램입니다.
RS-232/USB 어댑터를 사용 중이라고 가정합니다. 만약 내가하고 있었다면, 나는 어떤 장치가 나타나는지 파악하고, open ("/ dev/ttyS0", etc) 함수를 사용하여 열어 보았다. 그런 다음 파일 설명자와 액세스 함수를 객체로 마무리 할 수 있습니다. 여기
는 POSIX 환경에서 시리얼 포트와 함께 연주에 대한 페이지입니다 : 내가 뜸에서 "시리얼 디바이스 서버 소위"사용 http://www.easysw.com/~mike/serial/serial.html하고 그것이 마치 마법처럼 일했다. USB 직렬 변환기 위에
장점 :
디바이스 서버 인 네트워크 애플리케이션 측
소프트웨어 측면이 같은 아주 쉽게 네트워크/소켓 프로그래밍, 다음과 같습니다
이(GCDAsyncSocket 사용)
준비 데이터
static u_int8_t cmd1[] = { 0x1a, 0x73, 0x10 }; //defined by the serial device's protocol
static u_int8_t cmd2[] = { 0x1b, 0x51, 0x01 };
self.data = [NSMutableData dataWithBytes:&cmd1 length:sizeof(cmd1)];
[self.data appendData:[string dataUsingEncoding:NSUTF8StringEncoding]];
[self.data appendBytes:&cmd2 length:sizeof(cmd2)];
전송 데이터
-(IBAction)buttonAction:(id)sender
{
NSError *error = nil;
[self.socket connectToHost:@"192.168.1.9" onPort:1234 withTimeout:-1 error:&error];
if (error) {
NSLog(@"error: %@", error);
}
}
-(void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port
{
[self.socket writeData:self.data withTimeout:-1 tag:23];
}
을 어디서 것 이 기능에 대한 설명서를 찾으십니까? 죄송합니다.이 언어로 시작해야합니다. – eastydude5
또한 baud, tx/rx 차단 등을 구성하는 방법은 무엇입니까? – eastydude5
내가 링크 된 페이지는 그 정보와 몇 가지 예제 코드를 제공해야합니다. open() 시스템 호출은 터미널을 열고 "man 2 open"을 입력하십시오. –