C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[53267] Re:수정좀 부탁드릴꼐요~
지나가는人 [] 1283 읽음    2008-04-25 09:21
선언이 FormCreate에 되어 있네요...
  int COMILed1[4];
  int iIndex;


초보자 님이 쓰신 글 :
: : : :

버튼에 Led가 달려있어서 신호를 주면 불이 들어오게 하는 프로그램을 작성하려 합니다 원래 있던 소스에 추가를 하려고 하는데 
 
 조건은 버튼을 누르면 1초후에 불이 들어왔다 1초후 불이 꺼지고 다시 1초후 불이 들어오고 다음 1초후에는 
 
불이 완전히 꺼지는 형식입니다...  굵게 써놓은 부분이 어떤분께서 소스좀 주셔서 추가한 부분이고

:

 빨간 부분에 에러가 걸리네요

:


 수정부탁드립니다


//---------------------------------------------------------------------------

#include
#pragma hdrstop

#include "UMain.h"
#include "CNETSDKDef.h"
#include "CNETSDK.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "COMILEDLib_OCX"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
    }
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    int COMILed1[4];
    int iIndex;

    COMILed1[0] = 1;
    COMILed1[1] = 0;
    COMILed1[2] = 1;
    COMILed1[3] = 0;
    iIndex = -1;


    if( CNETLoadDll())                           //응용프로그램의 메모리 공간으로 호출
        ShowMessage("CNet LoadDll Error!");       // 음수이면 CNet LoadDll Error! 메세지를 보여라
    if( cmnGnLoadDevice(0,  &iG_MasteNum) < 0 )   // 장치를 로드하고 장치를 초기화
        ShowMessage("CNet Device Load Error!");   // 음수이면  CNet Device Load Error! 메세지를 보여라
        ShowMessage(iG_MasteNum );
    if( cmnGnStartRingAll() < 0 )                 // 링에대한 모든 통신을 시작
        ShowMessage("모든 링들의 통신 시작 에러 발생!");  // 음수이면 모든 링들의 통신 시작 에러 발생! 메세지를 보여라
    //if( cmnGnStartRing( iG_MasteNum, 0, 0) < 0 )
    if( cmnGnStartRing( 0, 0, 0) < 0 )    // 선택된 링에 속한 모듈과 디바이스간의 통신을 시작
        ShowMessage("Ring Start Error!"); // 음수이면 Ring Start Error! 메세지를 보여라

    //링의 통신 설정
    //if( cmnGnSetComSpeed(iG_MasteNum, 0, SPEED_4X ) < 0 )
    if( cmnGnSetComSpeed(0, 0, SPEED_4X ) < 0 )     // 선택된 링에 속한 통신 속도를 20MPS로 설정
        ShowMessage("Set Speed Error!");            // 음수이면 Set Speed Error! 메세지를 보여라
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
    cmnGnUnloadDevice();  // 설치된 장치를 해제하고 초기화
    CNETUnloadDll();      // 응용 프로그램의 메모리 공간에서 해제
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
    if( cmnGnGetComStatus( 0, 0, &iG_RingState ) < 0) // 선택된 링의 통신 상태를 확인
    {
        COMILed2->State = 0;                          // 두번째 Led에 통신상태가 음수이면
        Label1->Caption = "링 통신 불가능";           //  첫번쨰 리벨에 링통신 불가능
    }
    else
    {
        COMILed2->State = 1;                          // 두번째Led 통신 상태가 사실이면
        //RING_DISCONNECTED   0x0
        //RING_CONNECTED      0x1
        //SLAVE_ERROR         0x2
        //RING_STOP           0x3
        if(  iG_RingState == RING_DISCONNECTED )
        {
            Label1->Caption = "링 통신 단절";         // 음수이면 링통신 단절
        }
        else if(  iG_RingState == RING_CONNECTED )
        {
            Label1->Caption = "링 통신 연결";         // 사실이면 링 통신 연결
        }
        else if(  iG_RingState == SLAVE_ERROR )
        {
            Label1->Caption = "슬레이브 모듈과의 통신 에러";  // 음수이면 슬레이브 모듈과의 통신에러
        }
        else if(  iG_RingState == RING_STOP )
        {
            Label1->Caption = "링의 통신 중단";      // 음수이면 통신 중단
        }
        else
        {
            Label1->Caption = "경우가 없구만...";    // 모두 음수이면 경우가 없구만
        }
    }
    cmnDiGetOne(2, &iG_InState);                     // 단일 디지털 입력 채널에 대한 입력 상태 확인
    COMILed1->State = iG_InState;
    if( iG_InState )
        cmnDoPutOne(2, 1);                           // 단일 디지털 출력 상태를 설정  채널2, 출력 1
    else
        cmnDoPutOne(2, 0);                           // 단일 디지털 출력 상태를 설정  채널2, 츨력 0

    if(iIndex > -1)
    {
    else if(COMILed1[iIndex] == 1)
    {
      COMILed1On();
    }
    else if(COMILed1[iIndex] == 0){
      COMILed1Off();
    }
    iIndex++;
    if(iIndex == 4) iIndex = -1;

}

//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
    cmnDoGetOne(2, &iG_OutState);                     // 단일 디지털 출력 상태를 확인
    if( iG_OutState )
        cmnDoPutOne(2, 0);                             // 단일 디지털 출력 상태를 설정  채널2, 츨력 0
    else
        cmnDoPutOne(2, 1);                            // 단일 디지털 출력 상태를 설정  채널2, 츨력 0
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   iIndex = 0;
}
//---------------------------------------------------------------------------


+ -

관련 글 리스트
53266 수정좀 부탁드릴꼐요~ 초보자 1167 2008/04/25
53267     Re:수정좀 부탁드릴꼐요~ 지나가는人 1283 2008/04/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.