Q&A

  • async pro사용해보신분 좀 도와주세요..
언제쯤 답변할 수 있는 내공이 생길런지..ㅋㅋ
장비로 부터 9바이트의 데이타가 날라 옵니다.
(명령경우에 따라 길이는 틀리지만 지금은 9바이트만 테스트하고 있는데..ㅠㅠ)
다음은 데이타를 받는 부분인데...

procedure TfrmMdiForm.asPortTriggerAvail(CP: TObject; Count: Word);
var
  btDatas : array of byte;
  tmp:integer;
begin
  SetLength(btDatas, Count);
  asPort.GetBlock(btDatas[0], Count);
  UD_CommProtocol(btDatas);
end;

함수를 이렇게 하면 Count=9가 되구 GetBlock함수를 실행시키면
9바이트가읽혀져야 될것 같은데
Count=8, Count=1이렇게 두번의 이벤트가 발생합니다.
제가 뭘 잘못한건지..ㅠㅠ
도와주세요..
난 그냥 들어오는대로 한번에 읽고 싶은데 데이타가 끝에 한바이트 짤려서 오네요..
4  COMMENTS
  • Profile
    이정표 2004.04.11 20:30
    읽다보니 아래 STX, ETX에관한 내용이 있어 추가 답변 드립니다.

    제가 사용하는 예입니다.

    DEL STX .............0x03..................DEL ETX

    이런경우 중간에 0x03(ETX)가 포함되여있는데.. 앞의 데이타가 DEL 인지를 검사하는겁니다, 다시말해..  스타트는 DEL STX 이고  종료는 DEL ETX가 되는거져..    한가지더.. 중요한거는 TEXT중에 DEL이  Pattern이 발생되면 송신측에서는 바로앞에 DEL   추가하여야 합니다.

    DEL STX ...... DEL DEL ...........  DEL ETX

    위와 같은 형식이되겠지여  

    방법은 여러가지 있습니다 .  그럼 도움이되길 바랍니다.

  • Profile
    이정표 2004.04.11 20:04
    저두 장비쪽하고 통신을 하는데  저녁변수를 설정해서 쓰고있고여..

    통신 속도에 따라서 읽혀지는 바이트수가 들릴겁니다.

    예를 들면 통신속도가 빠른겨우는 더많은 바이트가 읽혀지는것 같더라구요.

    그래서 보통 장비하고 통신 할때는 STX 나 ETX를 시작 부분과 끝부문에 붙혀 사용합니다.

    이상 허접 답변입니다... 경험담이여... ㅎㅎ 그럼 ㅂㅂ2



    >언제쯤 답변할 수 있는 내공이 생길런지..ㅋㅋ
    >장비로 부터 9바이트의 데이타가 날라 옵니다.
    >(명령경우에 따라 길이는 틀리지만 지금은 9바이트만 테스트하고 있는데..ㅠㅠ)
    >다음은 데이타를 받는 부분인데...
    >
    >procedure TfrmMdiForm.asPortTriggerAvail(CP: TObject; Count: Word);
    >var
    >  btDatas : array of byte;
    >  tmp:integer;
    >begin
    >  SetLength(btDatas, Count);
    >  asPort.GetBlock(btDatas[0], Count);
    >  UD_CommProtocol(btDatas);
    >end;
    >
    >함수를 이렇게 하면 Count=9가 되구 GetBlock함수를 실행시키면
    >9바이트가읽혀져야 될것 같은데
    >Count=8, Count=1이렇게 두번의 이벤트가 발생합니다.
    >제가 뭘 잘못한건지..ㅠㅠ
    >도와주세요..
    >난 그냥 들어오는대로 한번에 읽고 싶은데 데이타가 끝에 한바이트 짤려서 오네요..


  • Profile
    최여옥 2004.04.11 09:35
    도움이 될런지는 모르겠지만
    전역변수를 써서 btDatas에 계속저장을 시킨후 원하는 바이트가 되면
    사용하고 Clear시키세요.
    Count는 우리가 원하는데로 시작부터 끝까지 이렇게 일률적으로
    오지 않더라구요...
    저도 전역변수로 사용하고있는데 잘된답니다.

  • Profile
    김만수 2004.04.11 17:11
    감사^^
    님말씀이 맞는것 같아요..
    AsnycPro도움말을 자세히 읽어봤는데..
    tcp/ip같은 경우에는 8바이트가 아니구 좀 더 크지만
    serial통신의 경우 윈도우에서 8바이트씩 짤라서 데이타를 받아오는것 같네요..
    원래 tcp/ip도 보내는 만큼 한꺼번에 오는게 아니잖아요..^^
    제가 해석한게 긴가민가 했는데
    님 답변보니깐 확실한거 같네요..ㅋㅋ
    • 최민호
    • 2004.04.11 21:07
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박수영
      2004.04.12 18:20
         table1.Insert;    dbgrid1.Columns[0].Field.AsString := '1111'; 이런...
    • 이중철
      2004.04.11 20:03
      Procedure TForm1.BtnBtn1Click(Sender : TObject); var   A : array[0..100] of char; &nbs...
    • 김만수
    • 2004.04.11 03:25
    • 4 COMMENTS
    • /
    • 1 LIKES
    • 이정표
      2004.04.11 20:30
      읽다보니 아래 STX, ETX에관한 내용이 있어 추가 답변 드립니다. 제가 사용하는 예입니다. DEL STX ....
    • 이정표
      2004.04.11 20:04
      저두 장비쪽하고 통신을 하는데  저녁변수를 설정해서 쓰고있고여.. 통신 속도에 따라서 읽혀...
    • 최여옥
      2004.04.11 09:35
      도움이 될런지는 모르겠지만 전역변수를 써서 btDatas에 계속저장을 시킨후 원하는 바이트가 되면 사용하...
    • 김만수
      2004.04.11 17:11
      감사^^ 님말씀이 맞는것 같아요.. AsnycPro도움말을 자세히 읽어봤는데.. tcp/ip같은 경우에는 8바이트...
    • bbizim
    • 2004.04.10 19:36
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 너구리
      2004.04.11 04:32
      없습니다. 그런상황 때문에 트리거가 필요한것이겠죠.. 아니면 트랜잭션을 걸고 작업을 하셔야 합니...
    • 이중철
      2004.04.11 20:25
      RDB는 관계형 데이타베이스 라고 하죠 각 테이블의 관계를 정하고 그 원칙에 의해 관리합니다. 외부키를 ...
    • Galaxy
      2004.04.11 18:36
    • 최인권
    • 2004.04.10 18:50
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2004.04.11 09:38
      안녕하세요 하얀까마귀 입니다. 이미지를 가로또는 세로로 회전시키는 콤포넌트가 있는지는 모르겠습니...
    • 김길현
      2004.04.10 21:39
      제가 클래스를 잘못 넣었네요.  TEdit 를 상속받으려 했는데. 그것이 문제가 아니였고, TE...
    • 김진태
    • 2004.04.10 05:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • [勳]후니
      2004.04.10 06:12
      델파이에선 지원 안하는 걸로 알고 있습니다. PDA os용 sdk 가 C, C++ 용으로 되어 있으며 이걸 델파...
    • 사나이
    • 2004.04.10 03:44
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 고진중
    • 2004.04.10 02:45
    • 4 COMMENTS
    • /
    • 0 LIKES
    • [勳]후니
      2004.04.10 03:07
      어떤 오류 메시지가 발생하는지요? 메모리 문제가 대부분일껀데... 2501이던가... 어떤 오류 메시지...
    • 고진중
      2004.04.10 04:07
      답변 보구 바로 확인해봤는데.. 메모리 문제가 맞는것 같습니다.. 엑셀파일 두개 띠어놓고 프로그램 ...
    • [勳]후니
      2004.04.10 05:57
      저도 전에 그 에러때문에.. 해결책을 찾아봤지만... 메모리에 BDE를 올릴수 있는 용량 초과나, 충돌로 ...
    • 고진중
      2004.04.12 18:13
      이곳저곳 다 돌아다닌 결과 해결했읍니다.. 레지스트리에서 BDE Administrator에서 [Configuration] 탭...
    • 미소^^
    • 2004.04.10 02:13
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김진용
      2004.04.10 20:27
    • 너구리
      2004.04.10 02:41
      급조해서 이게 맞게 짠건지 모르겠습니다. 한가지 의심 되는건 array[0..255] of TMyPanel 이부분...
    • 김현수
      2004.04.10 01:49
      원하는 답변이 될지는 모르겠습니다만.. unit u_form1; interface uses   Windo...
    • 엄문용
      2004.04.10 18:52
      열심히 해보겠습니다... ^^;
    • 김지훈
    • 2004.04.10 01:18
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 초보임당
      2004.04.10 01:30
      오라클 쓰시면 ROWNUM 쓰시면 될것 같은데요 select rownum as num,a, b, c from 테이블 ;
    • nilriri™
      2004.04.10 05:10
      샬롬~ vidle라는 컴포넌튼데.. 님께서 원하시는 그런 용도로 사용하기위해서 제가 약간 변경해서 사...
    • 박수영
      2004.04.10 01:45
      Mouse, Key Event 와 Timer를 연결해서 하면 될것 같은디요....
    • [勳]후니
      2004.04.10 03:19
      좀더 자세하게 설명하면.. mouse move, down 이벤트와 key down 이벤트에 time 설정을 해줍니다. ...
    • 초보임당
      2004.04.10 01:41
      음..이러면 되지 않을까요.. select rownum as num,mcode,dcode,1 as gubun from 테이블 A union all ...
    • 김지훈
      2004.04.10 19:00
      음...쿼리문이 이해가 잘 안가는군여..님....설명점.. 쿼리을 세번 써야되는건가여 ....?? 하나에 쿼리...
    • 김만수
    • 2004.04.09 20:00
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2004.04.09 20:15
      동적배열의 문제 같거든요 GetBlock의 파라메터가 어떤식인지 몰라서 제가 정확히 답변을 못드리지만 v...
    • 김만수
      2004.04.09 20:30
      도움말에 나와있는 GetBlock의 함수설명입니다. 지금 보니깐 Char배열이네요..쩝.. 근데 Char로 해도 안되...
    • 이중철
      2004.04.09 20:44
      var btDatas : array of byte; begin   SetLength(btDatas,Count);   asPort.GetBl...
    • 김정은
    • 2004.04.09 19:27
    • 2 COMMENTS
    • /
    • 0 LIKES
    • ^ㅡ^
      2004.04.10 05:53
      답변이 될지 모르겠네요 전 꽁수로 이렇게 해도 될꺼같은데요 temp1 := copy(edit1.text + '&n...
    • 이중철
      2004.04.09 20:58
      위의 방법은 권장사항이 아니네요 ^^(그것도 엄청나게) temp1 을 SetLength 해서 바꾸면 temp1 := 'ABCD...
    • 정효원
    • 2004.04.09 19:05
    • 0 COMMENTS
    • /
    • 0 LIKES