본문내용
//////////////////////////////////////////식물 구조체에 넣기
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);}}
소개글