신호 수신부는 구현이 됐는데요
신호를 장비한테 보내는 부분이 아직 안되서요...
장비는 16진수 헥사값을 이용합니다..10바이트를 사용하구요
제가 사용할려고하는 방법은 텍스트박스에 16진수(02 30 30 49 30 30 30 32 6d 03) 를 입력하면
그값을 그대로 장비한테 보내주는 그런 구현을 하고싶은데요 사용한 코딩은.
var
Str: String;
begin
Str := Edit1.Text;
Str := #13 + str + #10;
Com1.WriteStr(Str);<----이부분에서 데이터형이 일치하지않다고 그러네요 출력하게되면 데이터 값이 아닌 일반
end; string형으로 입력됩니다..
com1.write(str,count)를 쓰면 edit1에서 입력되는 값이랑 데이터형식이 다르다고나오고요
write(a<-자료형식이 pchar이라고나옵니다),count)
또 edit에서 입력받은 str을 pchar로 바꾸면( pchar(str) 로 바꾸려고하면
[Pascal Error] xc1000Unit1.pas(189): E2014 Statement expected, but expression of type 'PAnsiChar' found
이 오류가 뜨고요..........
알아보고 해본방법만 10가지정도되는데요 제가 기초가 매우 약하다보니까 머가 잘못된건지.......전부 오류가뜨거나 그냥 단순히 텍스트값만 입력이 되네요........
이리저리 검색해서 배열도 써보고 다른분이 해놓신 코드도 따보고 했는데요 어디서 머가 잘못된건지 의도대로 안되서 이렇게 글남깁니다...
요약하자면 텍스트박스에 02 30 30 49 30 30 30 32 6d 03 이값을 입력하면 각byte당 한값씩 16진수로 전달되게끔 할려고 합니다...
다른코딩방식도 좋습니다.....제가 생각되는대로 코딩한거라 방식이 다를수도있구요......배열방식이 맞는거같은데...역시 형변환부분에서 문제가 생기고요....ㅜㅡㅜ
아시는분 있으면 답변좀......부탁드립니다..제발...
|