본문내용
////////////////////////////////////////////식물 구조체에 넣기
else if(strcmp(opcode,\"OK111\")==0){
sscanf(temp,\"%s %s\",messdata1,messdata2);
int num = atoi(messdata2);
sscanf(temp,\"%s %d %s %d %d %d\",messdata1,&plantarr[num].num, plantarr[num].name,&plantarr[num].curr[0],&plantarr[num].curr[1],&plantarr[num].curr[2]);
redrowpersonsub(); //컨트롤 리스트에 출력
}
//////////////////////////////////////////////////////////////////////////AUTO모드 회신
else if(strcmp(opcode,\"OK211\")==0){
sscanf(temp,\"%s %s\",opcode,messdata1);
int i = atoi(messdata1);
State1.Format(\"자동모드로 동작합니다. [%s]\",plantarr[i].name);
m_pMainWnd->Invalidate();
}
//////////////////////////////////////////////////////////////////////////수동 회신
else if(strcmp(opcode,\"OK411\")==0){
sscanf(temp,\"%s %s\",opcode,messdata1);
int i = atoi(messdata1);
State1.Format(\"수동모드로 동작합니다. [%s]\",plantarr[i].name);
m_pMainWnd->Invalidate();
m_pClient->Send((LPCSTR)\"STATE \",511);
}
//////////////////////////////////////////////////////////////////////////STATE상태보기
else if(strcmp(opcode,\"OK711\")==0){
sscanf(temp,\"%s %s\",opcode,messdata1);
int i[5];
CString test;
sscanf(temp,\"%s %d %d %d %d %d\",opcode,&i[0],&i[1],&i[2],&i[3],&i[4]);
test=\"\";
for(int j=0 ; j<5 ; j++){
if(i[j])test+=\"■ \";
else test+=\"□ \";
}
Stateled=test;
m_pMainWnd->Invalidate();
m_pClient->Send((LPCSTR)\"INFORMATION \",511);
}
//////////////////////////////////////////////////////////////////////////정보얻기 상태보기
else if(strcmp(opcode,\"OK511\")==0){
sscanf(temp,\"%s %s\",opcode,messdata1);
int i[3];
CString test;
sscanf(temp,\"%s %d %d %d\",opcode,&i[0],&i[1],&i[2]);
test.Format(\"온실 종합정보: 온도 %d 습도 %d 풍속 %d\",i[0],i[1],i[2]);
State3=test;
m_pMainWnd->Invalidate();
}
//////////////////////////////////////////////////////////////////////////예외경우처리
else{
//((CListBox*)m_pMainWnd->GetDlgItem(IDC_LIST1))->InsertString(-1,temp);
}
}
void CplclientApp::CleanUp()
{
if(m_pClient)
delete m_pClient;
}
void CplclientApp::CloseChild()
{
AfxMessageBox(\"상대방 소켓 닫힘\");
m_pMainWnd->GetDlgItem(IDC_CONNECT)->EnableWindow(TRUE);
}
void CplclientApp::redrowperson()
{
CString strText;
char temp[100];
int i;
strText = \"LISTPM\";
for(i= 0 ; i
{
Sleep(50);
sprintf(temp,\"%s %d \",\"LISTP\",i);
m_pClient->Send((LPCSTR)temp,strlen(temp));
}
}
void CplclientApp::redrowpersonsub()
{
int i;
CString strText;
((CListCtrl*)m_pMainWnd->GetDlgItem(IDC_PERINFO))->DeleteAllItems(); //기존항목제거
for(i= 0 ; i
strText.Format(\"%d\",plantarr[i].num);
((CListCtrl*)m_pMainWnd->GetDlgItem(IDC_PERINFO))->InsertItem(i,strText,0);
strText.Format(\"%s\",plantarr[i].name);
((CListCtrl*)m_pMainWnd->GetDlgItem(IDC_PERINFO))->SetItemText(i,1,strText);
strText.Format(\"%d\",plantarr[i].curr[0]);
((CListCtrl*)m_pMainWnd->GetDlgItem(IDC_PERINFO))->SetItemText(i,2,strText);
strText.Format(\"%d\",plantarr[i].curr[1]);
((CListCtrl*)m_pMainWnd->GetDlgItem(IDC_PERINFO))->SetItemText(i,3,strText);
strText.Format(\"%d\",plantarr[i].curr[2]);
((CListCtrl*)m_pMainWnd->GetDlgItem(IDC_PERINFO))->SetItemText(i,4,strText);}}
else if(strcmp(opcode,\"OK111\")==0){
sscanf(temp,\"%s %s\",messdata1,messdata2);
int num = atoi(messdata2);
sscanf(temp,\"%s %d %s %d %d %d\",messdata1,&plantarr[num].num, plantarr[num].name,&plantarr[num].curr[0],&plantarr[num].curr[1],&plantarr[num].curr[2]);
redrowpersonsub(); //컨트롤 리스트에 출력
}
//////////////////////////////////////////////////////////////////////////AUTO모드 회신
else if(strcmp(opcode,\"OK211\")==0){
sscanf(temp,\"%s %s\",opcode,messdata1);
int i = atoi(messdata1);
State1.Format(\"자동모드로 동작합니다. [%s]\",plantarr[i].name);
m_pMainWnd->Invalidate();
}
//////////////////////////////////////////////////////////////////////////수동 회신
else if(strcmp(opcode,\"OK411\")==0){
sscanf(temp,\"%s %s\",opcode,messdata1);
int i = atoi(messdata1);
State1.Format(\"수동모드로 동작합니다. [%s]\",plantarr[i].name);
m_pMainWnd->Invalidate();
m_pClient->Send((LPCSTR)\"STATE \",511);
}
//////////////////////////////////////////////////////////////////////////STATE상태보기
else if(strcmp(opcode,\"OK711\")==0){
sscanf(temp,\"%s %s\",opcode,messdata1);
int i[5];
CString test;
sscanf(temp,\"%s %d %d %d %d %d\",opcode,&i[0],&i[1],&i[2],&i[3],&i[4]);
test=\"\";
for(int j=0 ; j<5 ; j++){
if(i[j])test+=\"■ \";
else test+=\"□ \";
}
Stateled=test;
m_pMainWnd->Invalidate();
m_pClient->Send((LPCSTR)\"INFORMATION \",511);
}
//////////////////////////////////////////////////////////////////////////정보얻기 상태보기
else if(strcmp(opcode,\"OK511\")==0){
sscanf(temp,\"%s %s\",opcode,messdata1);
int i[3];
CString test;
sscanf(temp,\"%s %d %d %d\",opcode,&i[0],&i[1],&i[2]);
test.Format(\"온실 종합정보: 온도 %d 습도 %d 풍속 %d\",i[0],i[1],i[2]);
State3=test;
m_pMainWnd->Invalidate();
}
//////////////////////////////////////////////////////////////////////////예외경우처리
else{
//((CListBox*)m_pMainWnd->GetDlgItem(IDC_LIST1))->InsertString(-1,temp);
}
}
void CplclientApp::CleanUp()
{
if(m_pClient)
delete m_pClient;
}
void CplclientApp::CloseChild()
{
AfxMessageBox(\"상대방 소켓 닫힘\");
m_pMainWnd->GetDlgItem(IDC_CONNECT)->EnableWindow(TRUE);
}
void CplclientApp::redrowperson()
{
CString strText;
char temp[100];
int i;
strText = \"LISTPM\";
for(i= 0 ; i
Sleep(50);
sprintf(temp,\"%s %d \",\"LISTP\",i);
m_pClient->Send((LPCSTR)temp,strlen(temp));
}
}
void CplclientApp::redrowpersonsub()
{
int i;
CString strText;
((CListCtrl*)m_pMainWnd->GetDlgItem(IDC_PERINFO))->DeleteAllItems(); //기존항목제거
for(i= 0 ; i
((CListCtrl*)m_pMainWnd->GetDlgItem(IDC_PERINFO))->InsertItem(i,strText,0);
strText.Format(\"%s\",plantarr[i].name);
((CListCtrl*)m_pMainWnd->GetDlgItem(IDC_PERINFO))->SetItemText(i,1,strText);
strText.Format(\"%d\",plantarr[i].curr[0]);
((CListCtrl*)m_pMainWnd->GetDlgItem(IDC_PERINFO))->SetItemText(i,2,strText);
strText.Format(\"%d\",plantarr[i].curr[1]);
((CListCtrl*)m_pMainWnd->GetDlgItem(IDC_PERINFO))->SetItemText(i,3,strText);
strText.Format(\"%d\",plantarr[i].curr[2]);
((CListCtrl*)m_pMainWnd->GetDlgItem(IDC_PERINFO))->SetItemText(i,4,strText);}}
소개글