2011-04-28 1 views
1

serialport에 연결된 EFTPOS 터미널과 컴퓨터간에 직렬 포트 통신을 설정하려고합니다. EFTPOS 매뉴얼에는 테스트를위한 C# 코드가 있으며 포트에 직접 쓰고 포트에서 읽는 다음 줄이 있습니다. C#과 java write()의 차이점

port.WriteLine("@PL");
Console.WriteLine(port.ReadLine());

그러나 자바

난 내 응용 프로그램 중단에 들어가는 것을 사용하는 경우. 그래서 java에서 이벤트 핸들러를 사용하여 EFTPOS 터미널에서 응답을 읽습니다. 아직도 나는 그것을 얻을 수 없었다. 이제 C#의 WriteLine ("@ PL")과 java의 OutputStream.write (bytearray)에 의심의 여지가 있습니다. 이 2 개의 방법 어구는 항구에 쓰일 때 동일한 whay에있는 끈이다 ?? 왜냐하면 EFTPOS는 메시지가 "@PL"인 경우에만 응답하기 때문입니다. 이 문제에 대한 해결책은 나에게 큰 도움이 될 것입니다.

+0

포트 설정을 포함하여 Java 코드를 게시 한 경우 도움이됩니다. – joev

+0

@joev : http://stackoverflow.com/questions/5830177/problem-writing-to-serialport-in-java 여기 코드로 질문했습니다 – Deepak

답변

1

서로 다른 인코딩으로 작성하고있을 가능성이 있습니다. EFTPOS 터 L 널이 ASCII를 예상하고 Java가 UTF-16을 쓰고 있으면 작동하지 않습니다.

+0

터미널과 통신하는 데 사용되는 직렬 프로토콜은 일반 텍스트입니다 요청 및 응답 메시지를 기반으로 한 ASCII 프로토콜. 그래서 내가 자바에서 포트에 쓰는 동안 ASCII 형식을 설정해야합니까? – Deepak

+0

잘 Java의 OutputStream은 바이트를 쓰고 있기 때문에'String.getBytes'를 사용하여 변환하고 있습니까? 'String.getBytes ("US-ASCII")'를 사용하여 인코딩을 지정할 수 있습니다. – porges

+0

그래, 내가 그 행운을 시도 : ( – Deepak

관련 문제