2010-12-08 2 views
1

Bluetooth 펌웨어 (USB를 통해 연결된 BT)와 테스트 장비 (직렬 포트를 통해 연결됨)간에 데이터를 전송하기위한 Perl 스크립트를 개발 중입니다. Perl 모듈 Win32::SerialPort을 사용하고 있습니다. 장비에서 특수 ASCII 형식으로 데이터를 가져올 수 있습니다 (♥ Black Smiley .. ♥ Black heart ...). 16 진수로 다시 변환 할 때 내 펌웨어에서 처리 할 수있는 opcode를 얻습니다. 그 답례로 BT 펌웨어는 완전한 opcode 명령을 보냅니다.Perl Win32 :: SerialPort 모듈을 사용하는 직렬 포트와 장치 간의 데이터 전송

여기에서 시작하는 문제 ... $ PortObj-> 쓰기 (opcode (16 진수))를 사용하여 직렬 포트에 다시 쓰려고하면 테스트 장비가이를 인식하지 못합니다. 내가 여기서 뭘해야하지?

+0

오류는 42 번째 줄에 있습니다. 작성한 프로그램의 작은 샘플을 제공했다면 문제를 더 정확하게 지적 할 수 있습니다. 그것 없이는 학문적으로 문제를 일으킬 수있는 것에 대해서만 궁금해 할 수 있습니다. 내 생각 엔 네가 보낸다고 생각하는 것을 직렬 포트로 보내지 않는다는거야. – mfontani

+0

알 겠어. 펄 함수의 팩 기능이 나에게 맞는 것 같아. :) @ input = (0x04,0x0e, 0x04,0x01,0x03,0x0c, 0x00); $ ascii = pack ("C *", @input); "값은 $ ascii"입니다. $ PortObj-> write ($ ascii) || die "$ PortName에 쓸 수 없습니다 : $^E \ n";; – user2829

답변

2

괜찮아 나는

.. 펄 팩 기능 : 나를 위해 작동 추측 입력 @ = (0x04,0x0e, 0x04,0x01,0x03,0x0c, × 00);

$ ascii = pack ("C *", @input);

인쇄 "값은 $ ascii"입니다.

$ PortObj-> write ($ ascii) || die "$ PortObj에 쓸 수 없습니다 : $^E \ n";

관련 문제