|
올챙이 님이 쓰신 글 :
: 답변 너무 고맙습니다.
: 제가 잘모르니. 나름 답답하고 급하고 막 그러네요 ㅠ.ㅠ
: 밑에 소스만. 델파이 소스로 변환 안될까요???
: 찐짜 이것땜쉬 ㅠ.ㅠ
: C++빌더소스중
: "DO 보내기" 버튼 클릭했을때.
: void __fastcall TForm1::DOSendbtnClick(TObject *Sender)
: {
: BYTE bSendBuf[30];
: char cTermID[5];
: String strTmp;
: int ret;
:
: memset(cTermID, 0x00, sizeof(cTermID));
:
: strTmp = m_term_id_edit->Text;
: if(strTmp.IsEmpty()){
: return;
: }
:
: sprintf(cTermID, "%03d", strTmp.ToInt());
:
: memset(bSendBuf, 0x00, sizeof(bSendBuf));
:
: bSendBuf[0] = STX;
: memcpy(&bSendBuf[1], "DO", 2); // Function Code
: memcpy(&bSendBuf[3], cTermID, 3); // Terminal ID
: memcpy(&bSendBuf[6], "00", 2); // Length
:
: make_BCC(&bSendBuf[1], 7);
:
: bSendBuf[9] = ETX;
:
: if (OK != CommSendData(bSendBuf, 10)) {
: MessageBox(0, "통신 포트로 자료를 보내지 못했습니다.", "Epic Comm Test", MB_ICONERROR|MB_OK);
: }
:
: return;
:
: }
:
: //----------- XOR 첵크하는 것같고요?
: void make_BCC(BYTE *dat, int sz)
: {
: int i;
: BYTE tmp_bcc = 0;
:
: for(i=0;i<sz;i++) tmp_bcc ^= dat[i];
:
: if (tmp_bcc <= 0x20) tmp_bcc = tmp_bcc + 0x20;
: dat[i] = tmp_bcc;
: }
: //-----------
:
: //---------- 소켓전송하는 부분인것같음??
: int __fastcall TForm1::CommSendData(BYTE *bSendData, int Cnt)
: {
: BOOL ret;
: //int i;
: int j;
: DWORD dwdTelayTime = 0;
:
: String strTmp = "";
:
: strTmp = m_send_delay_time_edit->Text;
: dwdTelayTime = strTmp.ToInt();
:
: Sleep(10);
:
: //if(CSocket->Connected == false) return 0;
: if(ClientSocket1->Socket->Connected == false) return 0;
:
: for(j=0;j<Cnt;j++) {
: //ret = CSocket->SendBuf(&bSendData[j], 1);
: ret = ClientSocket1->Socket->SendBuf(&bSendData[j], 1);
: Sleep(1);
: }
: Sleep(10);
:
: return 1;
: }
: //----------
:
:
:
: 정말 부탁드립니다.
: kissblade@lycos.co.kr 약간에 답례라도 하고싶습니다.
|