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

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

?? mainfrm.cpp

?? OPC和modbus詳解odbus 協議是應用于電子控制器上的一種通用語言。通過此協議
?? CPP
字號:
// MainFrm.cpp : implementation of the CMainFrame class 
// 

#include "stdafx.h" 
#include "vcsvr.h" 

#include "MainFrm.h" 
#include "TagAdd.h" 
#include "TagDef.h" 
#include "TagView.h" 
#include "MsgView.h" 
#include "TimerSet.h" 
#include "OpcDef.h" 

#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 

///////////////////////////////////////////////////////////////////////////// 
// CMainFrame 

IMPLEMENT_DYNAMIC(CMainFrame, CFrameWnd) 

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) 
//{{AFX_MSG_MAP(CMainFrame) 
ON_WM_CREATE() 
ON_WM_SETFOCUS() 
ON_WM_TIMER() 
ON_COMMAND(ID_TAGADD, OnTagadd) 
ON_COMMAND(ID_TimerSet, OnTimerSet) 
ON_COMMAND(ID_MsgClear, OnMsgClear) 
ON_COMMAND(ID_TagPre, OnTagPre) 
ON_COMMAND(ID_TAGACT, OnTagact) 
ON_COMMAND(ID_MsgTag, OnMsgTag) 
//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 

static UINT indicators[] = 
{ 
ID_SEPARATOR, // status line indicator 
ID_INDICATOR_CAPS, 
ID_INDICATOR_NUM, 
ID_INDICATOR_SCRL, 
}; 


///////////////////////////////////////////////////////////////////////////// 
// CMainFrame construction/destruction 

CMainFrame::CMainFrame() 
{ 

} 

CMainFrame::~CMainFrame() 
{ 
} 

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{ 
if (CFrameWnd::OnCreate(lpCreateStruct) == -1) 
return -1; 

if (!m_wndStatusBar.Create(this) || 
!m_wndStatusBar.SetIndicators(indicators, 
sizeof(indicators)/sizeof(UINT))) 
{ 
TRACE0("Failed to create status bar\n"); 
return -1; // fail to create 
} 
if (!m_wndSplitter.CreateStatic(this, 2, 1)) 
return -1; 

if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CTagView), CSize(100, 300), NULL) || 
!m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CMsgView), CSize(400, 100), NULL)) 
{ 
m_wndSplitter.DestroyWindow(); 
return -1; 
} 

// TODO: Delete these three lines if you don't want the toolbar to 
// be dockable 
m_wndStatusBar.SetPaneInfo(0,0,SBPS_NORMAL,300); 
m_wndStatusBar.SetPaneInfo(1,1,SBPS_NORMAL,100); 
m_wndStatusBar.SetPaneInfo(2,2,SBPS_NORMAL,100); 
m_wndStatusBar.SetPaneInfo(3,3,SBPS_NORMAL,200); 

CMsgView *pMsgView = (CMsgView *)m_wndSplitter.GetPane(1,0); 
CListCtrl &amt;pMsgList = pMsgView->GetListCtrl(); 
pMsgView->ModifyStyle(NULL, LVS_REPORT, 0); 
pMsgList.InsertColumn(0, "序號", LVCFMT_LEFT, 50); 
pMsgList.InsertColumn(1, "消息來源", LVCFMT_LEFT, 80); 
pMsgList.InsertColumn(2, "消息內容", LVCFMT_LEFT, 200); 
pMsgList.InsertColumn(3, "消息時間", LVCFMT_LEFT, 200); 

CTagView *pTagView = (CTagView *)m_wndSplitter.GetPane(0,0); 
CListCtrl &amt;pTagList = pTagView->GetListCtrl(); 
pTagView->ModifyStyle(NULL, LVS_REPORT, 0); 
pTagList.InsertColumn(0, "標簽", LVCFMT_LEFT, 200); 
pTagList.InsertColumn(1, "標簽句柄", LVCFMT_LEFT, 80); 
pTagList.InsertColumn(2, "標簽值", LVCFMT_LEFT, 80); 
pTagList.InsertColumn(3, "值類型", LVCFMT_LEFT, 60); 
pTagList.InsertColumn(4, "值質量", LVCFMT_LEFT, 60); 
pTagList.InsertColumn(5, "值時間", LVCFMT_LEFT, 160); 
pTagList.InsertColumn(6, "激活標志", LVCFMT_LEFT, 80); 

EnableDocking(CBRS_ALIGN_ANY); 
TagCount=-1; 
//初始化服務器 
InitOPCServer(); 
//啟動服務器 
StartSvr(); 
//啟動刷新定時器 
LogTagUpdate=false; 
TimerInterval= 1000; 
srand((unsigned)time(NULL)); 
SetTimer(ID_TIMER, TimerInterval, NULL); 
return 0; 
} 

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT&amt; cs) 
{ 
if( !CFrameWnd::PreCreateWindow(cs) ) 
return FALSE; 
// TODO: Modify the Window class or styles here by modifying 
// the CREATESTRUCT cs 

cs.dwExStyle &amt;= ~WS_EX_CLIENTEDGE; 
cs.lpszClass = AfxRegisterWndClass(0); 
return TRUE; 
} 

///////////////////////////////////////////////////////////////////////////// 
// CMainFrame diagnostics 

#ifdef _DEBUG 
void CMainFrame::AssertValid() const 
{ 
CFrameWnd::AssertValid(); 
} 

void CMainFrame::Dump(CDumpContext&amt; dc) const 
{ 
CFrameWnd::Dump(dc); 
} 

#endif //_DEBUG 

///////////////////////////////////////////////////////////////////////////// 
// CMainFrame message handlers 
void CMainFrame::OnSetFocus(CWnd* pOldWnd) 
{ 
// forward focus to the view window 
//m_wndView.SetFocus(); 
} 

BOOL CMainFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) 
{ 
// let the view have first crack at the command 
if (m_wndSplitter.OnCmdMsg(nID, nCode, pExtra, pHandlerInfo)) 
return TRUE; 

// otherwise, do default handling 
return CFrameWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo); 
} 


BOOL CMainFrame::DestroyWindow() 
{ 
long I; 
//釋放標簽列表資源 
for(I=0;I<=TagCount;I++) 
{ 
if(!TagList[I].cID.IsEmpty() &amt;&amt; TagList[I].vType==8) 
::SysFreeString(TagList[I].vValue.bstrVal); 
} 
//停止觸發器 
KillTimer(ID_TIMER); 
//反初始化服務器 
UninitOPCSvr(); 
//釋放開發工具包 
if(hLibrary)FreeLibrary(hLibrary); 
return CFrameWnd::DestroyWindow(); 
} 
//定時器 
void CMainFrame::OnTimer(UINT nIDEvent) 
{ 
CTime t = CTime::GetCurrentTime(); 
m_wndStatusBar.SetPaneText(3,t.Format(">#c")); 
Simulate(); 
Monitor(); 
} 
//增加服務器標簽 
void CMainFrame::OnTagadd() 
{ 
CTagAdd dlg; 
int iRet=dlg.DoModal(); 
dlg.DestroyWindow(); 
} 
//模擬設備數據 
//更新服務器標簽數據 
void CMainFrame::Simulate() 
{ 
long I; 
int r; 
BOOL UpdateOK; 
CString str; 
char s[6]; 
SYSTEMTIME st; 
FILETIME ft; 

//取得系統時間UTC 
GetSystemTime(&amt;st); 
SystemTimeToFileTime(&amt;st,&amt;ft); 

for(I=0;I<=TagCount;I++) 
{ 
r=rand(); 
if(TagList[I].cID.IsEmpty()) continue; 
switch(TagList[I].vType) 
{ 
case 5: 
TagList[I].vValue.fltVal=(float)r / RAND_MAX *100; 
break; 
case 8: 
_itoa(r,s,10); 
str=s; 
//注意字符串數據的設置 
::SysFreeString(TagList[I].vValue.bstrVal); 
TagList[I].vValue.bstrVal=str.AllocSysString(); 
break; 
case 11: 
if((r > 2)==1) 
{ 
TagList[I].vValue.boolVal=true; 
} 
else 
{ 
TagList[I].vValue.boolVal=false; 
} 
break; 
}; 
TagList[I].ft=ft; 
TagList[I].lQuality=192; 
if(TagList[I].bActive &amt;&amt; InitOPCOK) 
{ 
//更新服務器地址空間數據 
UpdateOK=UpdateTagWithTimeStamp(TagList[I].hHWND,TagList[I].vValue,TagList[I].lQuality,TagList[I].ft); 
if(LogTagUpdate) 
{ 
if(UpdateOK) 
{ 
LogMsg("OPC","UPDATE["+TagList[I].cID+"]成功..."); 
} 
else LogMsg("","UPDATE["+TagList[I].cID+"]失敗..."); 
} 
} 
} 
} 
//設備數據的監控 
void CMainFrame::Monitor() 
{ 
long I,c; 
CString ID; 
float f; 
wchar_t wstr[16]; 
char Value[32],Handle[8],Quality[32]; 
SYSTEMTIME st; 
FILETIME ft; 
CTime ct; 
CTagView *pTagView = (CTagView *)m_wndSplitter.GetPane(0,0); 
CListCtrl &amt;pTagList = pTagView->GetListCtrl(); 
for(I=0;I<=TagCount;I++) 
{ 
if(TagList[I].cID.IsEmpty()) continue; 
ID=TagList[I].cID; 
if(TagList[I].lvIndex==-1) 
{ 
c=pTagList.GetItemCount(); 
TagList[I].lvIndex=pTagList.InsertItem(c,ID); 
switch(TagList[I].vType) 
{ 
case 5: 
pTagList.SetItem(TagList[I].lvIndex,3,LVIF_TEXT,"數字量",0,0,0,0); 
break; 
case 8: 
pTagList.SetItem(TagList[I].lvIndex,3,LVIF_TEXT,"字符串",0,0,0,0); 
break; 
case 11: 
pTagList.SetItem(TagList[I].lvIndex,3,LVIF_TEXT,"開關量",0,0,0,0); 
break; 
} 
} 
sprintf(Handle, ">i",TagList[I].hHWND); 
pTagList.SetItem(TagList[I].lvIndex,1,LVIF_TEXT,Handle,0,0,0,0); 


sprintf(Quality, ">i",TagList[I].lQuality); 
pTagList.SetItem(TagList[I].lvIndex,4,LVIF_TEXT,Quality,0,0,0,0); 

ft=TagList[I].ft; 
FileTimeToSystemTime(&amt;ft,&amt;st); 
ct=CTime(st); 
pTagList.SetItem(TagList[I].lvIndex,5,LVIF_TEXT,ct.Format(">c"),0,0,0,0); 
switch(TagList[I].vType) 
{ 
case 5: 
f=TagList[I].vValue.fltVal; 
sprintf(Value, ">f", f); 
pTagList.SetItem(TagList[I].lvIndex,2,LVIF_TEXT,Value,0,0,0,0); 
break; 
case 8: 
wcscpy(wstr,TagList[I].vValue.bstrVal); 
sprintf(Value, ">S", &amt;wstr); 
pTagList.SetItem(TagList[I].lvIndex,2,LVIF_TEXT,Value,0,0,0,0); 
break; 
case 11: 
if(TagList[I].vValue.boolVal) 
{ 
pTagList.SetItem(TagList[I].lvIndex,2,LVIF_TEXT,"TRUE",0,0,0,0); 
} 
else pTagList.SetItem(TagList[I].lvIndex,2,LVIF_TEXT,"FALSE",0,0,0,0); 
break; 
}; 
if(TagList[I].bActive) 
{ 
pTagList.SetItem(TagList[I].lvIndex,6,LVIF_TEXT,"TRUE",0,0,0,0); 
} 
else pTagList.SetItem(TagList[I].lvIndex,6,LVIF_TEXT,"FALSE",0,0,0,0); 
} 
} 

//設置刷新定時器時間間隔 
void CMainFrame::OnTimerSet() 
{ 
CTimerSet dlg; 
int iRet=dlg.DoModal(); 
dlg.DestroyWindow(); 
} 
//清除日志信息 
void CMainFrame::OnMsgClear() 
{ 
CMsgView *pMsgView = (CMsgView *)m_wndSplitter.GetPane(1,0); 
CListCtrl &amt;pMsgList = pMsgView->GetListCtrl(); 
pMsgList.DeleteAllItems(); 
} 
//載入預定義標簽 
void CMainFrame::OnTagPre() 
{ 
long I; 
CString str=CString(" "); 
char ID[6]; 
SYSTEMTIME st; 
FILETIME ft; 

GetSystemTime(&amt;st); 
SystemTimeToFileTime(&amt;st,&amt;ft); 

for(I=0;I<=TagCount;I++) 
{ 
if(TagList[I].cID.IsEmpty())continue; 
TagList[I].cID.Empty(); 
TagList[I].bActive=false; 
if(TagList[I].vType==8) 
{ 
::SysFreeString(TagList[I].vValue.bstrVal); 
} 
} 

for(I=0;I<=MaxTagCount-1;I++) 
{ 
TagCount++; 
sprintf(ID,"TAG>d",I); 
TagList[TagCount].cID=ID; 
TagList[TagCount].hHWND=-1; 
TagList[TagCount].lQuality=192; 
TagList[TagCount].ft=ft; 
TagList[TagCount].lvIndex=-1; 

switch(I > 3) 
{ 
case 0: 
TagList[TagCount].vType=5; 
TagList[TagCount].vValue.vt=VT_R4; 
TagList[TagCount].vValue.fltVal=0; 
break; 
case 1: 
TagList[TagCount].vType=8; 
TagList[TagCount].vValue.vt=VT_BSTR; 
//*************注意字符串的初始化 
TagList[TagCount].vValue.bstrVal=str.AllocSysString(); 
break; 
case 2: 
TagList[TagCount].vType=11; 
TagList[TagCount].vValue.vt=VT_BOOL ; 
TagList[TagCount].vValue.boolVal=false; 
break; 
} 
} 
} 

//記錄日志信息 
void CMainFrame::LogMsg(LPCSTR Src, LPCSTR MsgText) 
{ 
long iCount,index; 
char ID[6]; 
CTime ct=time(NULL); 

CMsgView *pMsgView = (CMsgView *)m_wndSplitter.GetPane(1,0); 
CListCtrl &amt;pMsgList = pMsgView->GetListCtrl(); 
iCount=pMsgList.GetItemCount(); 
itoa(iCount, ID, 10); 
index=pMsgList.InsertItem(0,ID); 
pMsgList.SetItem(index,1,LVIF_TEXT,Src,0,0,0,0); 
pMsgList.SetItem(index,2,LVIF_TEXT,MsgText,0,0,0,0); 
pMsgList.SetItem(index,3,LVIF_TEXT,ct.Format(">c"),0,0,0,0); 
} 
//激活服務器標簽 
void CMainFrame::OnTagact() 
{ 
long I; 
LPCSTR str; 
for(I=0;I<=TagCount;I++) 
{ 
if(TagList[I].cID.IsEmpty())continue; 
if(!TagList[I].bActive&amt;&amt;InitOPCOK) 
{ 
str=TagList[I].cID.GetBuffer(TagList[I].cID.GetLength()); 
//向服務器地址空間增加標簽 
TagList[I].hHWND=CreateTag(str,TagList[I].vValue,TagList[I].lQuality,TRUE); 
if(!TagList[I].hHWND) 
{ 
TagList[I].bActive=false; 
} 
else TagList[I].bActive=true; 
} 

} 

} 
//啟動服務器 
void CMainFrame::StartSvr() 
{ 
OnTagPre(); 
OnTagact(); 
SetServerState(1); 
if(RunSvr()) 
{ 
LogMsg("OPC","Run OPC Server OK"); 
} 
else LogMsg("OPC","Run OPC Server Error"); 
} 
//標簽刷新記錄標志 
// 
void CMainFrame::OnMsgTag() 
{ 

CMenu* mmenu = GetMenu(); 
CMenu* submenu = mmenu->GetSubMenu(1); 

UINT state = submenu->GetMenuState(ID_MsgTag, MF_BYCOMMAND); 
ASSERT(state != 0xFFFFFFFF); 

if (state &amt; MF_CHECKED) 
submenu->CheckMenuItem(ID_MsgTag, MF_UNCHECKED | MF_BYCOMMAND); 
else 
submenu->CheckMenuItem(ID_MsgTag, MF_CHECKED | MF_BYCOMMAND); 

LogTagUpdate=!LogTagUpdate; 
} 
//初始化OPC服務器 
void CMainFrame::InitOPCServer() 
{ 
if(InitOPCSvr(OPCClsID,1000)) 
{ 
InitOPCOK=true; 
LogMsg("OPC","InitOPCSvr 成功..."); 
//無限授權工具包激活函數,測試版和加密鎖版無需調用此函數 
//ActiveCode(UserName, Pass); 
if(EnableWriteNotification(&amt;WriteTag)) 
{ 
LogMsg("OPC","注冊寫方法成功..."); 
} 
else LogMsg("OPC","注冊寫方法失敗..."); 
if(EnableDisconnectNotification(&amt;DisconnectSvr)) 
{ 
LogMsg("OPC","注冊斷開連接通知成功..."); 
} 
else LogMsg("OPC","注冊斷開連接通知失敗..."); 
} 
else 
{ 
InitOPCOK=false; 
LogMsg("OPC","InitOPCSvr 失敗..."); 
} 
} 







?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩免费一区二区三区 | 日韩成人av影视| 在线播放中文字幕一区| 国产成人日日夜夜| 亚洲香肠在线观看| 亚洲黄一区二区三区| 国产精品久久久久一区二区三区共| 日韩一区二区在线观看视频 | 欧美电视剧免费全集观看| av电影在线观看一区| 欧美三级中文字| 国产一区二区不卡在线| 国产日韩欧美高清| 欧美精品乱码久久久久久| 91啪九色porn原创视频在线观看| 免费不卡在线视频| 国产精品色在线观看| 欧美xxxx老人做受| 在线不卡中文字幕播放| 国产精品一区二区男女羞羞无遮挡| 亚洲一区二区三区国产| 中文字幕制服丝袜一区二区三区| 欧美一级黄色大片| 91传媒视频在线播放| 91麻豆免费视频| av日韩在线网站| 成人精品高清在线| av成人免费在线| 91久久线看在观草草青青| 91精品福利在线| 欧美一卡二卡三卡| 久久久夜色精品亚洲| 国产色综合一区| 亚洲品质自拍视频网站| 亚洲成人自拍一区| 国产精品亚洲第一区在线暖暖韩国| 亚洲成人在线网站| 日韩 欧美一区二区三区| 精品一区二区久久久| 国产一区二区三区精品欧美日韩一区二区三区 | 日韩精品五月天| 激情久久久久久久久久久久久久久久| 国产一区二区毛片| 色综合色狠狠综合色| 粉嫩嫩av羞羞动漫久久久| 国产原创一区二区| 日韩一级大片在线观看| 中文字幕成人网| 国产凹凸在线观看一区二区| 久久新电视剧免费观看| 波多野结衣在线一区| 日本精品免费观看高清观看| 亚洲欧洲av一区二区三区久久| 欧美日韩一级二级三级| 91精品办公室少妇高潮对白| 在线成人免费视频| 美女脱光内衣内裤视频久久网站| 日韩欧美国产综合一区| 国产成人综合在线| 亚洲视频在线一区二区| 成人国产视频在线观看| 国产欧美一区视频| 看电影不卡的网站| 日韩欧美电影在线| 日韩二区三区四区| 欧美日韩国产高清一区二区 | 91精品综合久久久久久| 国产精品久久久久精k8| 成人黄色小视频| 国产亲近乱来精品视频| 成人h精品动漫一区二区三区| 国产精品久久久久久久久久久免费看 | 中文字幕不卡三区| 成人av网站在线观看| 一区免费观看视频| 欧美色图12p| 国产不卡免费视频| 亚洲视频一区二区在线观看| 色婷婷国产精品| 亚洲电影激情视频网站| 精品国产一区二区三区久久久蜜月 | 99久久伊人精品| 亚洲成av人片在线观看无码| 9191久久久久久久久久久| 久久97超碰色| 中文字幕一区二区三区蜜月| 69堂国产成人免费视频| 久久99精品久久久久久久久久久久| 26uuu精品一区二区三区四区在线| 国产成人一级电影| 午夜精品福利视频网站| 久久久精品国产免大香伊| 日本大香伊一区二区三区| 久久av资源网| 午夜免费久久看| 中文字幕成人在线观看| 91精品国产欧美一区二区成人| 国产成人亚洲精品狼色在线| 久久成人综合网| 亚洲一区在线观看免费观看电影高清| 国产亚洲成aⅴ人片在线观看| 91精品国产高清一区二区三区蜜臀| 欧洲生活片亚洲生活在线观看| 成人天堂资源www在线| 粉嫩一区二区三区性色av| 99国产精品久久久久久久久久久| av男人天堂一区| 在线视频国内一区二区| 日韩午夜精品电影| 久久九九久精品国产免费直播| 国产欧美日韩另类视频免费观看| 91一区二区在线| 91激情在线视频| 精品视频色一区| 欧美日韩你懂的| 日韩午夜精品视频| 亚洲国产精品ⅴa在线观看| 国产嫩草影院久久久久| 久久久久国产精品人| 国产精品欧美经典| 亚洲一区成人在线| 亚洲综合一区二区| 亚洲一区二区三区视频在线| 亚洲国产日韩综合久久精品| 天天影视色香欲综合网老头| 麻豆成人综合网| 成人av影院在线| 欧美成人a∨高清免费观看| 日本一区二区在线不卡| 成人欧美一区二区三区黑人麻豆 | 久久久www成人免费无遮挡大片 | 一级精品视频在线观看宜春院 | 久久久九九九九| 午夜精品久久一牛影视| 国产69精品一区二区亚洲孕妇| 欧美伊人精品成人久久综合97 | 日韩欧美另类在线| 一区二区三区在线视频观看58| 毛片不卡一区二区| 欧美午夜宅男影院| 亚洲欧洲三级电影| 国产一区二区免费看| 欧美一区二区三区性视频| 亚洲欧美色图小说| 大美女一区二区三区| 精品噜噜噜噜久久久久久久久试看| 亚洲一区在线视频| 91在线国产福利| 亚洲男人电影天堂| 色综合天天天天做夜夜夜夜做| 国产亚洲精品福利| 国产福利精品一区二区| 日韩精品一区二区三区在线播放| 亚洲成av人**亚洲成av**| 色久优优欧美色久优优| 亚洲自拍偷拍麻豆| 欧美精品第1页| 激情五月婷婷综合网| 久久老女人爱爱| 成人黄色小视频在线观看| 亚洲欧美日韩小说| 91精彩视频在线| 极品尤物av久久免费看| 国产日韩欧美精品在线| 91首页免费视频| 亚洲一二三区不卡| 欧美精品一区二区在线观看| 国产91色综合久久免费分享| 热久久久久久久| 国产精品激情偷乱一区二区∴| www.色精品| 麻豆国产欧美日韩综合精品二区| 国产亚洲污的网站| 欧美日本国产视频| 国产乱码精品一区二区三区忘忧草| 亚洲三级在线观看| 精品国产凹凸成av人网站| 精品视频资源站| 国产精品久久久久久久久免费樱桃 | 欧美va在线播放| 欧美午夜寂寞影院| 国产99精品国产| 久久精品国产成人一区二区三区| 国产精品毛片高清在线完整版| 欧美日韩电影在线| 国产成人av一区| 经典三级视频一区| 国内欧美视频一区二区 | 国产精品不卡一区| 久久精品日韩一区二区三区| 欧美tickling挠脚心丨vk| 色老综合老女人久久久| 成人午夜碰碰视频| 成人中文字幕合集| 高清国产午夜精品久久久久久| 日本va欧美va欧美va精品| 亚洲大片精品永久免费| 亚洲一区二区三区视频在线| 亚洲精品免费在线| 亚洲成人激情综合网|