전체 소스
         WATSerialCom_20100629.zip


watSerialcom_RX2.gif  

  Binary 파일 보내기
       메뉴에서 [파일보내기]를 선택하여 파일을 보내게 하겠습니다.
       - 메뉴를 만드는 방법은 http://whiteat.com/zbxe/31871 를 참조하세요..

        MenuStrip을 이용해서 Name이 mnuMainMenu 인 메뉴를 추가합니다.
        [파일보내기] 메뉴를 추가하고 더블클릭해서 코드를 입력합니다.

        OpenFileDialog 컨트롤을 사용해서 Name을 ofdSendFileName 로 해서 OpenFileDialog를 하나 만듭니다.
         - Binary 파일 읽는 http://whiteat.com/zbxe/31824 를 참조하세요

 
private void 파일전송하기ToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
if (DialogResult.OK == ofdSendFileName.ShowDialog())
  {
System.IO.FileInfo infoFile = new System.IO.FileInfo(ofdSendFileName.FileName);
int iFileSize = Convert.ToInt32(infoFile.Length); // 파일 사이즈 얻기
byte[] byteSendData = new byte[iFileSize];
System.IO.BinaryReader objRead = new System.IO.BinaryReader(File.Open(ofdSendFileName.FileName, FileMode.Open));
byteSendData = objRead.ReadBytes(Convert.ToInt32(iFileSize));
objRead.Close();
m_sp1.Write(byteSendData, 0, iFileSize);
}      
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}


Binary 수신 후에 파일로 쓰기

        SaveFileDialog 컨트롤로 sfdSaveFileName 라는 파일저장컨트롤을 추가합니다.
            - Binary 파일 쓰는 http://whiteat.com/zbxe/31824 를 참조하세요

        수신된 데이터를 초기화 하는 [수신데이터 초기화]버튼과 
        수신된 데이터를 파일로 저장하는 [파일로 저장] 버튼을 만들겠습니다.

        byte[] m_byteRxData = new byte[100*1024]; // 약 100K 수신데이터를 저장할 변수
         int m_iRxDataCount = 0; // m_byteRxData 에서 유효한 실제 값

        [RX 초기화 버튼]의 Name 을 btnRxClear 로 하고,    

private void btnRxClear_Click(object sender, EventArgs e)
{
m_byteRxData.Initialize();
m_iRxDataCount = 0;
txtRxData.Text = "";


 

 RX 루틴에서 m_byteRxData 로 수신데이터를 넣어주는 부분을 추가해줍니다.               

Array.Copy(buff, 0, m_byteRxData, m_iRxDataCount, iRecSize);
                m_iRxDataCount += iRecSize;


 수신된 데이터를 파일로 저장하겠습니다.       

01.private void btnSaveToFile_Click(object sender, EventArgs e)
02.        {
03.            try
04.            {
05.                if (DialogResult.OK == sfdSaveFileName.ShowDialog())
06.                {
07.                    System.IO.BinaryWriter objWrite = new System.IO.BinaryWriter(File.Open(sfdSaveFileName.FileName, FileMode.Create));
08.                    objWrite.Write(m_byteRxData, 0, m_iRxDataCount);
09.                    objWrite.Close();
10.                }
11.            }
12.            catch (System.Exception ex)
13.            {
14.                MessageBox.Show(ex.Message);
15.            }
16.        }


        한쪽에서 a.gif 파일을 보내고, 한쪽에서 데이터를 받은후에 
        [파일로저장]버튼을 사용하여 파일을 저장합니다.

        저장된 파일을 열어보면, 보낸파일과 동일하다는 것을 알 수 있습니다.
  
      다음 장에는 포트열고 닫기를 메뉴로 이동하고
      포트 설정을 새로운 폼을 만들어 해보겠습니다.

                            

사업자 정보 표시
화이트앳 | 박원호 | 서울 용산 서계동 252-8 | 사업자 등록번호 : 106-11-55283 | TEL : 070-4412-5754 | 통신판매신고번호 : 2011-서울용산-01007호 | 사이버몰의 이용약관 바로가기
  1. 2011.12.27 16:13

    비밀댓글입니다

    • Favicon of http://pcsak3.com BlogIcon WhiteAT 2011.12.27 21:21 신고

      어떤 오류가 생기나요?
      오류 메세지라도 알려 주시면 도움을 드릴수 있을텐데요^^

      http://whiteat.com 에 좀더 자세한 내용을 올려 주시면 도움을 드릴 수 있을 겁니다.~

    • 2011.12.28 17:15

      비밀댓글입니다

    • Favicon of http://pcsak3.com BlogIcon WhiteAT 2011.12.28 18:03 신고

      오늘 홈페이지 셋팅에 문제가 생겨
      계속 작업중이었습니다. ㅠㅠ


      그런데, 시리얼통신하는데, WebClient 가 왜 필요한거죠? ㅡㅡ;
      시리얼통신은 SerialPort 가지고 처리할 수 있습니다.~

+ Recent posts

티스토리 툴바