亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? querydecstate.cpp

?? 實時監控
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// QueryDecState.cpp : implementation file
//

#include "stdafx.h"
#include "../resource.h"
#include "../utils/common.h"
#include "UserChangeI.h"
#include "fileoperation.h"
#include "QueryDecState.h"

#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif

IMPLEMENT_DYNCREATE(CQueryDecState, CPropertyPage)
IMPLEMENT_DYNCREATE(CUpdateDecFile, CPropertyPage)


/////////////////////////////////////////////////////////////////////////////
// CQueryDecState property page
CQueryDecState* CQueryDecState::sel = NULL;
CQueryDecState* CQueryDecState::the_one() { return sel;}

extern CString m_login_client_name;
extern char m_remote_station_directory[50];
extern char m_inspect_date_query_directory[50];


CQueryDecState::CQueryDecState() : CPropertyPage(CQueryDecState::IDD)
{
	//{{AFX_DATA_INIT(CQueryDecState)
		// NOTE: the ClassWizard will add member initialization here
	Oninitdata();
	//}}AFX_DATA_INIT
	sel = this;
}

CQueryDecState::~CQueryDecState()
{
}

void CQueryDecState::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CQueryDecState)
	DDX_Control(pDX, IDC_TREE, m_tree);
	DDX_Text(pDX, IDC_SWITCH4, m_switch4);
	DDX_Text(pDX, IDC_SWITCH2, m_switch2);
	DDX_Text(pDX, IDC_SWITCH3, m_switch3);
	DDX_Text(pDX, IDC_SWITCH1, m_switch1);

	DDX_Text(pDX, IDC_NAME1_SHOW, m_name_show1);
	DDX_Text(pDX, IDC_NAME3_SHOW, m_name_show3);
	DDX_Text(pDX, IDC_NAME2_SHOW, m_name_show2);
	DDX_Text(pDX, IDC_NAME4_SHOW, m_name_show4);

	DDX_Text(pDX, IDC_NAME1_VALUE, m_name_value1);
	DDX_Text(pDX, IDC_NAME2_VALUE, m_name_value2);
	DDX_Text(pDX, IDC_NAME3_VALUE, m_name_value3);
	DDX_Text(pDX, IDC_NAME4_VALUE, m_name_value4);

	DDX_Text(pDX, IDC_SWITCH_NAME1, m_switch_name1);
	DDX_Text(pDX, IDC_SWITCH_NAME2, m_switch_name2);
	DDX_Text(pDX, IDC_SWITCH_NAME3, m_switch_name3);
	DDX_Text(pDX, IDC_SWITCH_NAME4, m_switch_name4);

	DDX_Text(pDX, IDC_TEMPERATURE, m_temperature);
	DDX_Text(pDX, IDC_HUMIDITY, m_humidity);
	DDX_Text(pDX, IDC_STATION_STATE, m_station_state);
	
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CQueryDecState, CPropertyPage)
	//{{AFX_MSG_MAP(CQueryDecState)
		// NOTE: the ClassWizard will add message map macros here
		ON_BN_CLICKED(ID_QUERY, OnQuery)
		ON_NOTIFY(NM_DBLCLK, IDC_TREE, OnDblclkTree)
	//}}AFX_MSG_MAP
		ON_MESSAGE(NTM_ZH_DECSTATE_GET_OK, get_decstate)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

void CQueryDecState::Oninitdata()
{
	m_temperature = _T("");
	m_humidity = _T("");
	
	m_switch1 = _T("");
	m_switch2 = _T("");
	m_switch3 = _T("");
	m_switch4 = _T("");
	
	m_name_value1 = _T("");
	m_name_value2 = _T("");
	m_name_value3 = _T("");
	m_name_value4 = _T("");

	CString m_str;
    m_str.Format(IDS_DIRECT_CURRENT_VALUE, 1);
	m_name_show1 = m_str;
	m_str.Format(IDS_DIRECT_CURRENT_VALUE, 2);
	m_name_show2 = m_str;
	m_str.Format(IDS_DIRECT_CURRENT_VALUE, 3);
	m_name_show3 = m_str;
	m_str.Format(IDS_DIRECT_CURRENT_VALUE, 4);
	m_name_show4 = m_str;

	m_str.Format(IDS_SWITCH_VALUE, 1);
	m_switch_name1 = m_str;
	m_str.Format(IDS_SWITCH_VALUE, 2);
	m_switch_name2 = m_str;
	m_str.Format(IDS_SWITCH_VALUE, 3);
	m_switch_name3 = m_str;
	m_str.Format(IDS_SWITCH_VALUE, 4);
	m_switch_name4 = m_str;
    
    m_str.Format(IDS_STATION_DECODE_STATE, "","", 0);
	m_station_state = m_str;
}

BOOL CQueryDecState::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CQueryDecState::OnDblclkTree(NMHDR* pNMHDR, LRESULT* pResult) 
{
	OnQuery() ;
	*pResult = 0;
}

BOOL CQueryDecState::OnSetActive() 
{
	on_list();
	return CPropertyPage::OnSetActive();
}

void CQueryDecState::on_list()
{
	if(m_tree.GetCount())
		m_tree.DeleteAllItems();
    Cfileoperation <inspect_date_query> *m_fileoperation;
    m_file_length = m_fileoperation->openfile(m_inspect_date_query_directory,"rb",m_station_data);

	HTREEITEM  htreem;

	for(int i=0; i<m_file_length; i++)
	{
		inspect_date_query *pk = &m_station_data[i];
		if(!strcmp(pk->name, m_login_client_name))
		{
			if(i ==0)
			{
				htreem = m_tree.InsertItem(pk->dvrname);
				m_tree.InsertItem(pk->decodename, htreem);
				continue;
			}

			inspect_date_query *p = &m_station_data[i-1];
			if(!strcmp(p->dvrname, pk->dvrname) && !strcmp(p->name, pk->name))
				m_tree.InsertItem(pk->decodename, htreem);
			else
			{
				htreem = m_tree.InsertItem(pk->dvrname);
				m_tree.InsertItem(pk->decodename, htreem);
			}
		}
	}

}

int CQueryDecState::get_sel_address(CString m_station, CString m_decname)
{
	for(int i=0; i<m_file_length; i++)
	{
		inspect_date_query *p = &m_station_data[i];
		if(!strcmp(p->name, m_login_client_name))
			if(!strcmp(p->dvrname, m_station) && !strcmp(p->decodename, m_decname))
				return p->address;
	}
	return -1;
}

BOOL CQueryDecState::Onget_query_info(CString & m_station, CString & m_decname, int & address)
{
	HTREEITEM  htree = m_tree.GetSelectedItem();
	if(!htree)	return FALSE;
	m_decname = m_tree.GetItemText(htree);
	htree = m_tree.GetParentItem(htree);
	if(!htree)	return FALSE;
	m_station = m_tree.GetItemText(htree);
	address = get_sel_address(m_station, m_decname);
	if(address == -1) return FALSE;
	return TRUE;
}

void CQueryDecState::OnQuery() 
{
	Oninitdata();
	UpdateData(FALSE);
	int m_address;
	CString m_station, m_decname;
	if(!Onget_query_info(m_station, m_decname, m_address))
		return ;

	bool m_status = get_station_state(m_station, m_address);
	if(!m_status)  AfxMessageBox(IDS_NOT_LOGIN_STATION);

	CString m_str;
	m_str.Format(IDS_STATION_DECODE_STATE, m_station, m_decname, m_address);
	m_station_state = m_str;
	UpdateData(FALSE);
}

void CQueryDecState::get_decstate(WPARAM w, LPARAM l)
{
	ZH_DECODE_STATE *p = (ZH_DECODE_STATE *)w;
	CString m_str = *(CString*) l;

	int m_address;
	CString m_station, m_decname;
	if(!Onget_query_info(m_station, m_decname, m_address))
		return ;
	if(m_str != m_station || m_address != p->address)
		return;

    update_th_value(p->sign1, p->temperature, p->humidity);
	update_all_value(m_station, m_decname, m_address, p->switch1, p->direct_value1, p->direct_value2, p->direct_value3, p->direct_value4);
}
void CQueryDecState::update_th_value(int sign, float m_temperature_sh, float m_humidity_sh)
{
	CString m_str;
	float m_temperature_value,m_humidity_value;
	if(sign == 0x32)
		 m_temperature_value = m_temperature_sh/100; 
    else 
		m_temperature_value = - (m_temperature_sh/100);
    m_str.Format("%.2f ℃", m_temperature_value);
    m_temperature = m_str;

	m_humidity_value = m_humidity_sh/100;
    m_str.Format("%.2f %%", m_humidity_value);
    m_humidity = m_str;
	UpdateData(FALSE);
}

void CQueryDecState::update_all_value(CString m_station, CString m_decname, int m_address, int state, USHORT m_value1, USHORT m_value2, USHORT m_value3, USHORT m_value4)
{
	for(int i=0; i<m_file_length; i++)
	{
		inspect_date_query *p = &m_station_data[i];
		if(!strcmp(p->dvrname, m_station) && !strcmp(p->name, m_login_client_name))
		if(!strcmp(p->decodename, m_decname) && (p->address == m_address))
		{
			update_switch_value(state, p->m_switch);
			update_direct_all_value(p->m_value, m_value1, m_value2, m_value3, m_value4);
			break;
		}
	}	
	UpdateData(FALSE);
}

void CQueryDecState::update_switch_value(int state, switch_value value[]) 
{
	BOOL m_bool;
	int m_temstate = state;
    m_bool = m_temstate & 1;
	m_switch1 = get_switch_value(m_bool, value[0].m_switch_type);

	m_temstate = state;
	m_bool = (m_temstate >> 1) & 1;
	m_switch2 = get_switch_value(m_bool, value[1].m_switch_type);

	m_temstate = state;
	m_bool = (m_temstate >> 2) & 1;
	m_switch3 = get_switch_value(m_bool, value[2].m_switch_type);

	m_temstate = state;
	m_bool = (m_temstate >> 3) & 1;
	m_switch4 = get_switch_value(m_bool, value[3].m_switch_type);

	m_switch_name1 = value[0].m_switch_name;
	m_switch_name2 = value[1].m_switch_name;
	m_switch_name3 = value[2].m_switch_name;
	m_switch_name4 = value[3].m_switch_name;
	UpdateData(FALSE);
}

CString CQueryDecState::get_switch_value(BOOL m_bool, int type)
{
	CString m_str;
	switch(type)
	{
		case 0:
			if(!m_bool) m_str.Format(IDS_SWITCH_OPENED);
			else m_str.Format(IDS_SWITCH_CLOSED);
			break;
		case 1:
			if(!m_bool) m_str.Format(IDS_SWITCH_CONNECTED);
			else m_str.Format(IDS_SWITCH_DISCONNECTED);
			break;
		case 2:
			if(!m_bool) m_str.Format(IDS_SWITCH_TOGETHERED);
			else m_str.Format(IDS_SWITCH_DISPARTED);
			break;
		case 3:
			if(!m_bool) m_str.Format(IDS_SWITCH_ACTED);
			else m_str.Format(IDS_SWITCH_REVERTED);
			break;
		default:
			break;
	}
	return m_str;
}


void CQueryDecState::update_direct_all_value(direct_current_value value[], USHORT m_value1, USHORT m_value2, USHORT m_value3, USHORT m_value4) 
{
	m_name_show1 = value[0].m_name;
	m_name_show2 = value[1].m_name;
	m_name_show3 = value[2].m_name;
	m_name_show4 = value[3].m_name;

	m_name_value1 = update_direct_value(m_value1, &value[0]) ;
	m_name_value2 = update_direct_value(m_value2, &value[1]) ;
	m_name_value3 = update_direct_value(m_value3, &value[2]) ;
	m_name_value4 = update_direct_value(m_value4, &value[3]) ;	
}

CString CQueryDecState::update_direct_value(USHORT m_value, direct_current_value *p) 
{
	CString m_str;
    float m_true_value;
    m_true_value = (m_value - p->m_zero_value) * p->quotiwty;
    m_str.Format(" %.2f %s", m_true_value, p->m_unit);
	return m_str;
}
			



/////////////////////////////////////////////////////////////////////////////








CUpdateDecFile::CUpdateDecFile() : CPropertyPage(CUpdateDecFile::IDD)
{
	//{{AFX_DATA_INIT(CUpdateDecFile)
	On_initidata();
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}

CUpdateDecFile::~CUpdateDecFile()
{
}

void CUpdateDecFile::On_initidata()
{
	m_zero_value1 = 0;
	m_zero_value2 = 0;
	m_zero_value3 = 0;
	m_zero_value4 = 0;

	m_nuit_str1 = _T("");
	m_nuit_str2 = _T("");
	m_nuit_str3 = _T("");
	m_nuit_str4 = _T("");

	m_quotiwty1 = 0.0f;
	m_quotiwty2 = 0.0f;
	m_quotiwty3 = 0.0f;
	m_quotiwty4 = 0.0f;

	m_name1 = _T("");
	m_name2 = _T("");
	m_name3 = _T("");
	m_name4 = _T("");
	
	m_switch_name1 = _T("");
	m_switch_name2 = _T("");
	m_switch_name3 = _T("");
	m_switch_name4 = _T("");
    m_comname = _T("");
	m_dec_add = _T("");
	m_dec_name = _T("");
	
	m_switch_type1 = 0;
	m_switch_type2 = 0;
	m_switch_type3 = 0;
	m_switch_type4 = 0;

	CString m_str;
	m_str.Format(IDS_STATION_DECODE_SET, "","");
	m_statoin_param = m_str;
}
void CUpdateDecFile::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CUpdateDecFile)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	DDX_Text(pDX, IDC_STATION_PARA_SET, m_statoin_param);
	DDX_Text(pDX, IDC_DECODE_NAME, m_dec_name);
	DDX_Text(pDX, IDC_DECODE_ADD, m_dec_add);

    DDX_Text(pDX, IDC_TEM_STATION, m_comname);
	DDX_Text(pDX, IDC_ZERO_VALUE1, m_zero_value1);
	DDV_MinMaxInt(pDX, m_zero_value1, 0, 4095);
	DDX_Text(pDX, IDC_ZERO_VALUE2, m_zero_value2);
	DDV_MinMaxInt(pDX, m_zero_value2, 0, 4095);
	DDX_Text(pDX, IDC_ZERO_VALUE3, m_zero_value3);
	DDV_MinMaxInt(pDX, m_zero_value3, 0, 4095);
	DDX_Text(pDX, IDC_ZERO_VALUE4, m_zero_value4);
	DDV_MinMaxInt(pDX, m_zero_value4, 0, 4095);

	DDX_Text(pDX, IDC_UNIT1, m_nuit_str1);
	DDX_Text(pDX, IDC_UNIT2, m_nuit_str2);
	DDX_Text(pDX, IDC_UNIT3, m_nuit_str3);
	DDX_Text(pDX, IDC_UNIT4, m_nuit_str4);

	DDX_Text(pDX, IDC_QUOTIWTY1, m_quotiwty1);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美电影免费观看完整版| 亚洲777理论| 亚洲欧美激情插| 亚洲精品视频在线| 久久不见久久见免费视频1| 国内精品写真在线观看| 色综合久久综合网97色综合 | 成人丝袜视频网| 欧美亚洲一区二区在线| 日韩一二三四区| 欧美日韩国产精品成人| 欧美日韩国产美| 欧美经典一区二区三区| 亚洲成人自拍偷拍| 国产精品一色哟哟哟| 欧美日韩卡一卡二| 亚洲同性gay激情无套| 国产成人精品一区二区三区四区| 欧美日韩综合不卡| 日韩理论片中文av| 国产成人aaa| 久久久精品日韩欧美| 18欧美乱大交hd1984| 一区二区三区高清不卡| 成人激情免费网站| 久久中文字幕电影| 久久国产精品露脸对白| 欧美老人xxxx18| 亚洲一区影音先锋| 日本韩国精品在线| 成人av网址在线| 欧美一区二区三区婷婷月色 | 最近中文字幕一区二区三区| 国产资源精品在线观看| 国产三级精品三级在线专区| 国产精品一区二区久久精品爱涩| 国产日韩精品一区| 色94色欧美sute亚洲线路一ni| 欧美激情在线看| 色婷婷激情综合| 免费看精品久久片| 色爱区综合激月婷婷| 久久久九九九九| 成人免费观看男女羞羞视频| 中文字幕第一页久久| 欧美三级三级三级| 麻豆精品在线播放| 一区二区三区色| 精品国产伦一区二区三区免费| 成人免费三级在线| 美女一区二区久久| 亚洲精品日日夜夜| 成人丝袜高跟foot| 亚洲18色成人| 亚洲精品视频在线看| 精品女同一区二区| 69堂国产成人免费视频| 成人av网在线| 国产a视频精品免费观看| 奇米一区二区三区| 婷婷久久综合九色综合绿巨人 | 在线播放欧美女士性生活| 国产电影一区二区三区| 国产乱人伦偷精品视频不卡| 日韩中文字幕亚洲一区二区va在线 | 久久久久久久免费视频了| 欧美一区国产二区| 欧美mv日韩mv| 久久综合精品国产一区二区三区| 日韩亚洲欧美综合| 久久香蕉国产线看观看99| 亚洲国产日韩综合久久精品| 制服丝袜一区二区三区| 亚洲三级电影全部在线观看高清| 不卡的电视剧免费网站有什么| 国产欧美一区二区在线| 亚洲成av人**亚洲成av**| 国产日产欧美精品一区二区三区| 色综合天天综合在线视频| 三级欧美韩日大片在线看| 中文一区在线播放| 欧美三电影在线| zzijzzij亚洲日本少妇熟睡| 天堂午夜影视日韩欧美一区二区| 精品国产亚洲在线| 91天堂素人约啪| 国产一区二三区| 免费观看日韩电影| 国产精品女主播在线观看| 在线看一区二区| 国产91丝袜在线18| 欧美v亚洲v综合ⅴ国产v| 国产欧美视频在线观看| 5858s免费视频成人| 欧美日韩免费电影| 国产欧美日韩麻豆91| 久久久精品国产免大香伊 | 日韩精品视频网站| 日韩欧美高清dvd碟片| 在线观看91视频| 欧美影院一区二区| 国产精品成人一区二区艾草| 国产精品一卡二卡在线观看| 国产高清不卡二三区| 欧美日韩精品系列| 欧美日韩国产一二三| 国产精品久久久久久久久图文区 | 国产色产综合色产在线视频| 一区二区三区四区不卡在线| 国产成人午夜片在线观看高清观看| 91福利国产成人精品照片| 日韩伦理电影网| 在线观看三级视频欧美| 国产在线播放一区| 午夜国产精品影院在线观看| 久久久午夜精品| 日韩 欧美一区二区三区| 成人avav影音| 欧美极品少妇xxxxⅹ高跟鞋 | 日韩高清不卡一区二区三区| 亚洲日穴在线视频| 亚洲欧洲另类国产综合| 色婷婷综合久久久中文一区二区 | 久久综合色婷婷| 欧美老肥妇做.爰bbww| 91精品国产综合久久精品| 91精品国产一区二区人妖| 欧美一区二区在线免费播放| 在线看国产一区| 日韩在线a电影| 中文字幕欧美激情一区| 99久久精品免费看国产免费软件| 亚洲久草在线视频| 久久综合狠狠综合| 99久久精品一区二区| 伊人性伊人情综合网| 欧美电影在哪看比较好| 麻豆91精品91久久久的内涵| 精品国产91九色蝌蚪| 色婷婷狠狠综合| 肉色丝袜一区二区| 亚洲欧美一区二区三区极速播放| 精品国产第一区二区三区观看体验| 91在线国产福利| 国内精品免费在线观看| 美日韩一级片在线观看| 青青青伊人色综合久久| 亚洲图片欧美色图| 亚洲一区二区欧美日韩| 亚洲黄色性网站| 视频一区二区不卡| 国产一区二区在线视频| 不卡av电影在线播放| 久久久99久久| 亚洲欧美另类久久久精品| 久久精品国产秦先生| 9191久久久久久久久久久| 亚洲日本一区二区| www.亚洲激情.com| 久久青草国产手机看片福利盒子 | 国产精品资源站在线| 在线不卡的av| 天天做天天摸天天爽国产一区 | 日韩午夜三级在线| 欧美日韩亚洲另类| 欧美精品一区二区三区蜜桃视频| 日韩欧美第一区| 亚洲一区二区精品视频| 麻豆高清免费国产一区| 一本色道久久综合狠狠躁的推荐| 日本丰满少妇一区二区三区| 精品蜜桃在线看| 亚洲精品中文字幕在线观看| 亚洲一区二区四区蜜桃| 岛国av在线一区| 91麻豆精品国产91久久久更新时间| 免费高清不卡av| 91精彩视频在线观看| 国产日本欧美一区二区| 捆绑紧缚一区二区三区视频| 欧美亚洲国产一区在线观看网站| 精品国产一区a| 国产精品自拍在线| 久久精品一级爱片| 国产成人精品午夜视频免费| 日韩精品一区二区三区swag| 亚洲va欧美va人人爽午夜| 日本韩国精品在线| 午夜精品在线看| 日韩欧美精品在线视频| 美女高潮久久久| 久久综合精品国产一区二区三区 | wwww国产精品欧美| 成人免费毛片片v| 一色桃子久久精品亚洲| 欧美精品国产精品| 韩国在线一区二区| 亚洲国产色一区| 欧美草草影院在线视频| caoporen国产精品视频|