배열에 hex값 저장하는 방법이 막막해서요....
부루
AVR만 다뤄보다가 이번에 갑자기 VB로 RFID통신을 다뤄야 할이 생겼는데 제가 VB는 건드려본적이 없어서 열심히 공부해서 하는 중인데 더 이상 진행이 않되서 이렇게 질문을 올려봅니다.
간단하게 RFID통신 구성을 통신포트를 열고, 시리얼 통신으로 (포트4를 이용하고 있습니다.) 16진수 값으로 40 00 60 FF을 전송하면 Response값으로 RFID카드를 대고 있으면 CE A2 21 24값을 받아와야 합니다. 그래서 아래와 같이 소스를 작성하였습니다.
Private Sub Command2_Click()
Dim txbuf(256) As Byte//송신값저장배열버퍼
Dim buff_read(256) As Byte //수신값 저장 배열 버퍼
Dim temp As String, row As Integer //저장 함수와 배열 길이 조정 함수
txbuf(0) = &H4//헥사 값 저장
txbuf(1) = &H0
txbuf(2) = &H60
txbuf(3) = &HFF
MSComm1.Output = txbuf //저장된 값 Output으로 출력
//수신값 저장 부분 제가 막히는 부분이 이 다음 부분입니다. 버퍼값이 0~3이니까 For문으로 3번 저장을 하여서 Input값을 첫번째 byte를 0배열에 두번째 byte를 1배열 이런식으로 하나씩 temp에 차곡차곡 저장하여서 Hex값으로 temp를 출력하여 저장하려고 합니다. 그런데 Input값이 당연히 저장이 않되는군요....MSComm1.Input을 어떤식으로 받아야지 buff_read()에 하나씩 차례대로 저장할 수 있을까요? Input값은 아마 한번에CE A2 21 24로 들어올 것입니다.
For row = 0 To 3
buff_read(row) = MSComm1.Input //0~3값을 저장하는 부분....
temp = temp & & Hex(buff_read(row)) //사실 제가 봐도 될리가 없는데
Next row//해결방법을 모르겠네요...
Text1.Text = UID = + temp //출력
End Sub
지금 소스를 아래 수신부분을 다 지우고
Data = MSComm1.Input
Text1.Text = UID = + Data
End Sub
이렇게만 하면수신값이 있긴 하는데 Hex값 출력도 아니고데이타를 전부 저장한것도 아닌것 같아서 그냥 쓰레기값처럼 표현되서 나오네요....도와주세요 ㅠ
-
싸리
고정 길이 바이트 배열을 (Dim buff_read(256) As Byte) 가변 길이 바이트 배열(Dim buff_read() As Byte)로 바꾸세요. variant에서 배열에 할당하려면 배열의 크기를 재조정해야 하니까 필요하네요.
그리고 값 전송 후에 수신 데이터를 읽어오려면 데이터가 도착했는지 확인해야 하는데 이런 절차가 없는거 같네요. InBufferCount 로 수신 데이터 크기를 체크하거나 OnComm 이벤트 처리문에서 CommEvent -
바르고
함수 선언에 문제가 있는것 같아서 buff_read를 string으로 해봤는데 이것도 아니고 뭐가 문제일까요???
-
참없다
그렇게 해봤는데 배열에 맞지 않는다는 오류가 나오네요...
-
푸른마을
buff_read(row) = MSComm1.Input 를 buff_read = MSComm1.Input 로 고치고 for 문 바로 위로 옮겨보세요
-
우수리
제가 비베를 제대로 배워본적은 없는데 같은 프로그램 언어라서 논리계산같은 부분은 쉽게 접근할 수 있겠지만 역시 내부 포트설정이나 타이머 카운터/인터럽트 등등의 레지스터 설정은 생소한 부분이라서 천천히 공부하셔야 할거에요. 그래도 천천히 공부하시다 비베나 C를 공부했던 것이 조금은 도움이 되지 않을까요?ㅎㅎ
-
차분
저로서는 AVR은 이제 어느정도 다루겠는데 갑자기 VB6을 하려니 죽을맛이네요 ㅎㅎ
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2699193 | 디자인 설정하면 | 두온 | 2025-06-23 |
2699136 | 수다님의 네이버 로그인 모듈을 사용하여 프로그램을 작성하고 있는데 텍스트박스 질문이 있습니다. | 얀새 | 2025-06-23 |
2699106 | 오류좀 봐주세요; (2) | 맞빨이 | 2025-06-23 |
2699079 | 파싱 질문입니다 (4) | 피네 | 2025-06-22 |
2699025 | 블루투스 시리얼통신으로 리스트뷰에 등록 | 목화 | 2025-06-22 |
2698995 | [사진有] 비밀번호 틀리면 다음 창으로 안넘어가지게 하는법없나요?? (3) | 슬현 | 2025-06-22 |
2698939 | 메세지박스 줄띄우는법 | 누리별 | 2025-06-21 |
2698910 | 런타임 424 질문 | 야미 | 2025-06-21 |
2698883 | 배열에 관련하여 (1) | 민트맛캔디 | 2025-06-21 |
2698856 | 빤짝거리는 내 툴의 재목 !? | 초롱꽃 | 2025-06-20 |
2698830 | 리스트 인덱스 질문 (2) | 말글 | 2025-06-20 |
2698803 | 리스트 뷰 질문이요. (2) | 딸기향 | 2025-06-20 |
2698750 | 헐 웹브앙대요 | 꺆잉 | 2025-06-19 |
2698694 | 모듈의 핸들 | 렁찬 | 2025-06-19 |
2698674 | VB 고수분들 봐주세요 (6) | 세이 | 2025-06-19 |
2698617 | 윈속.ocx다운받는곳좀여 | 안토니 | 2025-06-18 |
2698588 | 자 나를 즐겁게 해봐요 | 다흰 | 2025-06-18 |
2698529 | 이거 저작권 상,고,명인데 점부탇드림 (3) | 서향 | 2025-06-17 |
2698503 | 오늘도~윈속질문이요~ | 텐시 | 2025-06-17 |
2698478 | 비베6에서 exe파일만들때 자동링커되려면 | 달달한캔디 | 2025-06-17 |