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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mexopc.cpp

?? 一個opc服務(wù)器
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
         
         IConnectionPoint *pCallbackCP = 0;
         hr = pCPC->FindConnectionPoint(IID_IOPCShutdown, &pCallbackCP);
         pCPC->Release();
         if( SUCCEEDED(hr) )
         {
            hr = pCallbackCP->Advise(pDoc->shutdownCP, &pDoc->dwShutdownConnection);
            pCallbackCP->Release();
         }
      }
	}

   // Create a single group that will contain all the items
      FLOAT deadband = 0.0;
      DWORD rate;
      hr = pDoc->opcServer.AddGroup( L"Fred", TRUE, m_synctime,  // name, active, rate
                             1324, NULL, &deadband,  // handle, bias, band
                             0, &pDoc->groupHandle, &rate,
                             IID_IOPCGroupStateMgt,   // interface to return
                             pDoc->opcGroup );              // this holds the group ptr
   
      if( FAILED(hr) )
	  {
		  pDoc->ReportError( _T("AddGroup:%s "), hr);
		   z[0] = 2789561;
		   init =0;
          return ;
	  }

   // Test GetGroupByName and SetName
#ifdef FULL_TEST
      IOPCGroupStateMgt* pTest=NULL;
      hr = pDoc->opcServer.GetGroupByName( L"Fred", IID_IOPCGroupStateMgt, (LPUNKNOWN*)&pTest );
      if( SUCCEEDED(hr) )
	  {
         ASSERT( pTest == (IOPCGroupStateMgt*)opcGroup );   // should get the same
         hr = pTest->SetName( L"Group one" );               // set new name
         pTest->Release();
         if( FAILED(hr) )
		 {
            pDoc->ReportError( _T("IOPCGroupStateMgt::SetName:%s "), pErrors[0] );
		 }
         else
		 {
         // should now go by this new name
            hr = pDoc->opcServer.GetGroupByName( L"Group one", IID_IOPCGroupStateMgt, (LPUNKNOWN*)&pTest );
            if( SUCCEEDED(hr) )
			{
              ASSERT( pTest == (IOPCGroupStateMgt*)opcGroup );
              pTest->Release();
			}
		 }
	  }
#endif // FULL_TEST

   // OPC 2.0 ConnectionPoints
      IConnectionPointContainer *pCPC = 0;
      hr = pDoc->opcGroup.QueryInterface(IID_IConnectionPointContainer, (void**)&pCPC);
      if( SUCCEEDED(hr) )  // This server supports 2.0
	  {
	  
          pDoc->usingCP = TRUE;
          IConnectionPoint *pCallbackCP = 0;
          hr = pCPC->FindConnectionPoint(IID_IOPCDataCallback, &pCallbackCP);
          pCPC->Release();
          if( FAILED(hr) )
		  {
              pDoc->ReportError( _T("FindConnectionPoint:%s "), hr);
              pDoc->usingCP = FALSE;  // Try old style
		  }

          hr = pCallbackCP->Advise(pDoc->callbackCP, &pDoc->dwConnection1);
          pCallbackCP->Release();
          if( FAILED(hr) )
		  {
             pDoc->ReportError( _T("Advise ConnectionPoint:%s "), hr );
             pDoc->dwConnection1 = 0;
             pDoc->usingCP = FALSE;  // Try old style
		  }
	  }
      if( !pDoc->usingCP )
	  {
      // OPC 1.0 data advise format
          FORMATETC formatEtc ;
          formatEtc.tymed =  TYMED_HGLOBAL;
          formatEtc.ptd = NULL;
          formatEtc.dwAspect = DVASPECT_CONTENT;
          formatEtc.lindex = -1;

      // IAdviseSink is an interface on OUR object that is passed to
      // the server for callbacks
          IAdviseSink *pAdviseSink = NULL;
          hr = pDoc->testSink->QueryInterface(IID_IAdviseSink, (LPVOID *)&pAdviseSink);
          if( FAILED(hr) )
		  {
           pDoc->ReportError( _T("IAdviseSink:%s "), hr);
           pDoc->opcGroup.Detach();
           pDoc->opcServer.Detach();
		    z[0] = 2789561;
			init =0;
           return ;
		  }

      // Get an IDataObject interface on the group
          DataObject dataObject;
          hr = dataObject.Attach( pDoc->opcGroup );
          if(FAILED(hr) || !dataObject.IsOk() )
		  {
         //  some servers don't do this, so don't quit altogether
            MessageBox( 0, _T("IDataObject not supported by this server\nNo data notifications will take place"), _T("FactorySoft Client"), MB_OK );
             z[0] = 2789561;
			return ;
		  }

      // Register our IAdvise with the group
      // Need to register both formats: data change, and write complete
         formatEtc.cfFormat = OPCSTMFORMATWRITECOMPLETE ;
         hr = dataObject.DAdvise(&formatEtc,
                                ADVF_PRIMEFIRST,    // ADVF flag
                                pAdviseSink,
                                &pDoc->dwConnection2);
	  
         if( FAILED(hr) )
		 {
			pDoc->ReportError( _T("IDataObject::DAdvise:%s "), hr );
			 z[0] = 2789561;
			 init =0;
            return ;
		 }

#ifdef DATATIMEFORMAT
         formatEtc.cfFormat = OPCSTMFORMATDATATIME ;
#else
         formatEtc.cfFormat = OPCSTMFORMATDATA ;
#endif // DATATIMEFORMAT
         hr = dataObject.DAdvise(&formatEtc,
                                ADVF_PRIMEFIRST,    // ADVF flag
                                pAdviseSink,
                                &pDoc->dwConnection1);
         pAdviseSink->Release();
         if( FAILED(hr) )
		 {
         pDoc->ReportError( _T("IDataObject::DAdvise:%s "), hr );
		  z[0] = 2789561;
		  init =0;
         return ;
		 }
	  }
     }       
//**************************************注冊函數(shù)************************************************	
//************************WRITE寫函數(shù)************************************************************      
	
//**************************************關(guān)閉函數(shù)************************************************      
	if(para.Compare( "close" ) == 0||para.Compare( "Close" ) == 0||para.Compare( "CLOSE" ) == 0)
    {
		HRESULT hr = S_OK;
        if( pDoc->opcServer.IsOk() && pDoc->opcGroup.IsOk() )
		{
            if( pDoc->dwShutdownConnection )
			{
               IConnectionPointContainer *pCPC = 0;
               hr = pDoc->opcServer.QueryInterface(IID_IConnectionPointContainer, (void**)&pCPC);
               if( SUCCEEDED(hr) )
			   {
                   IConnectionPoint *pCallbackCP = 0;
                   hr = pCPC->FindConnectionPoint(IID_IOPCShutdown, &pCallbackCP);
                   if( SUCCEEDED(hr) )
				   {
                       hr = pCallbackCP->Unadvise(pDoc->dwShutdownConnection);
                       pCallbackCP->Release();
				   }
                pCPC->Release();
			   } 
			}
            if( pDoc->usingCP )
			{
         // OPC 2.0 ConnectionPoints
            IConnectionPointContainer *pCPC = 0;
            hr = pDoc->opcGroup.QueryInterface(IID_IConnectionPointContainer, (void**)&pCPC);
            if( SUCCEEDED(hr) && pDoc->dwConnection1 )  // This server supports 2.0
			{
            IConnectionPoint *pCallbackCP = 0;
            hr = pCPC->FindConnectionPoint(IID_IOPCDataCallback, &pCallbackCP);
            if( SUCCEEDED(hr) )
            {
               hr = pCallbackCP->Unadvise(pDoc->dwConnection1);
               pCallbackCP->Release();
            }
            pCPC->Release();
			}
			}
            else
      // call IDataObject::DUnadvise to turn off data notification
			{
          DataObject dataObject;
          HRESULT hr = dataObject.Attach( pDoc->opcGroup );
          if( SUCCEEDED(hr) )
          {
             if( pDoc->dwConnection1 )
                hr = dataObject.DUnadvise(pDoc->dwConnection1);
             if( pDoc->dwConnection2 )
                hr = dataObject.DUnadvise(pDoc->dwConnection2);
             dataObject.Detach();
          }
			}
       // test RemoveItems (RemoveGroup cleans up anyway.)
#ifdef FULL_TEST
       
       hr = itemMgt.Attach( opcGroup );
       if( SUCCEEDED(hr) && items.GetCount()>0 )
       {
          HRESULT *pErrors=0;
          OPCHANDLE* handles = new OPCHANDLE[items.GetCount()];
          POSITION pos = items.GetHeadPosition();
          for( int index=0; pos; index++ )
          {
             Item* pItem = items.GetNext( pos );
             handles[index] = pItem->hServerHandle;
          }
          hr = itemMgt.RemoveItems( items.GetCount(), handles, &pErrors );
          if( SUCCEEDED(hr) )
             CoTaskMemFree( pErrors );
          delete [] handles;
       }
#endif // FULL_TEST

       pDoc->opcServer.RemoveGroup(pDoc->groupHandle, FALSE);

   }
       pDoc->opcGroup.Detach();
       pDoc->opcServer.Detach();
   // now that the group is released and unadvised, no more data will
   // be sent from the server. It is safe to delete the items
   while( !pDoc->items.IsEmpty() )
      delete pDoc->items.RemoveTail();
   pDoc->pCurrentItem = NULL;
    init =0;
	}
	//***********************wait***********************************
	    if(para.Compare( "wait" ) == 0)
		{
           
           lock.Lock(m_synctime);
		   if (lock.IsLocked())  
		   lock.Unlock();
	       event->ResetEvent();
		}
   
    z[0]=0;
//************************************************************************************
}
void mexFunction( int nlhs,mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
		//*****************************************//參數(shù)的初始化
	CString para=("");
	CString NAME=("");
	CString data=("");
    //************************************//輸入,輸出矩陣
	input = mxCreateDoubleMatrix(10,1,mxREAL);
	
	//*******************************************//三個輸入?yún)?shù)的轉(zhuǎn)化
	int n,n1;
	char *input_buf;
	char *input_buf2;
	char *input_buf3;
	int buflen,status,buflen1,status1,buflen2,status2;
	buflen1 = (mxGetM(prhs[0])*mxGetN(prhs[0]))+1;
    input_buf2 = (char*)mxCalloc(buflen1,sizeof(char));
	sleeptime = mxCreateDoubleMatrix(1,1,mxREAL);
	status1 = mxGetString(prhs[0],input_buf2,buflen1);
	for (int  i = 0 ;i<buflen1-1;i++)
	{
		n1 = para.Insert(i,input_buf2[i]);
        ASSERT(n1 == para.GetLength());
    }
	
	//**************************************///調(diào)用動態(tài)函數(shù)
	if(!init)
           if(para.Compare("Open")==0||para.Compare("open")==0||para.Compare("PARA")==0)
			      init=1;
	       else
		   {
					  AfxMessageBox("請先連接服務(wù)器");
					  plhs[0] =mxCreateDoubleMatrix(1,1,mxREAL);
	                  double *z;
	                  z =mxGetPr(plhs[0]);
					  z[0] = 2789561;
					  return;
			}
           if(para.Compare("directread")==0||para.Compare("Directread")==0||para.Compare("DirectRead")==0||para.Compare("DIAECTREAD")==0
		      ||para.Compare("write")==0||para.Compare("Write")==0||para.Compare("WRITE")==0
		      ||para.Compare("read")==0||para.Compare("Read")==0||para.Compare("READ")==0
			  ||para.Compare("directwrite")==0||para.Compare("DirectWrite")==0||para.Compare("DIRECTWRITE")==0)
			{
		      buflen = (mxGetM(prhs[1])*mxGetN(prhs[1]))+1;
	          input_buf = (char*)mxCalloc(buflen,sizeof(char));
	          status = mxGetString(prhs[1],input_buf,buflen);
	          plhs[0] = mxCreateDoubleMatrix(100,1,mxREAL);
	          buflen2 = (mxGetM(prhs[2])*mxGetN(prhs[2]))+1;
              input_buf3 = (char*)mxCalloc(buflen2,sizeof(char));
	          status2 = mxGetString(prhs[2],input_buf3,buflen2);
	          for( i=0;i<buflen-1;i++)
			  {
	              n = NAME.Insert(i, input_buf[i]);
                  ASSERT(n == NAME.GetLength());
			  }
	          for( i=0;i<buflen2-1;i++)
			  {
	              n = data.Insert(i, input_buf3[i]);
                 ASSERT(n == data.GetLength());
			  }
		      if(para=="write"||para =="Write"||para =="WRITE"||para.Compare("directwrite")==0||para.Compare("DirectWrite")==0||para.Compare("DIRECTWRITE")==0)
			  {
		         inth =mxCreateDoubleMatrix(1,1,mxREAL);
		         inth =prhs[2];
			  }
		      if(data=="CString"||data=="cstring"||data=="CSTRING")
			  {
			     plhs[0]=mxCreateString(input_buf4);
	             double *z;
	             z =mxGetPr(plhs[0]);
                 gill(para,NAME,data,z);//這里可以改進(jìn),我想,也可以不改進(jìn)    
			  }
		     else
			 {
	             plhs[0] =mxCreateDoubleMatrix(1,1,mxREAL);
	             double *z;
	             z = mxGetPr(plhs[0]);
	             gill(para,NAME,data,z);
			 }
			  }
	        else
			{
				/*if(para.Compare("wait")==0||para.Compare("sleep")==0)
				{
					 buflen = (mxGetM(prhs[1])*mxGetN(prhs[1]))+1;
	                 input_buf = (char*)mxCalloc(buflen,sizeof(char));
	                 status = mxGetString(prhs[1],input_buf,buflen);
					 for( i=0;i<buflen-1;i++)
					 {
	                     n = NAME.Insert(i, input_buf[i]);
                         ASSERT(n == NAME.GetLength());
					 }
                     inth =mxCreateDoubleMatrix(1,1,mxREAL);
		             inth =prhs[2];
					 plhs[0] =mxCreateDoubleMatrix(1,1,mxREAL);
				     double *z;
				     z = mxGetPr(plhs[0]);
					 dill(para,NAME,z);
				}
				else
				{*/
				plhs[0] =mxCreateDoubleMatrix(1,1,mxREAL);
				double *z;
				z = mxGetPr(plhs[0]);
                fill(para,z);
				//}
			}  
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久―日本道色综合久久| 亚洲美腿欧美偷拍| 色综合一区二区| 经典三级在线一区| 亚洲自拍欧美精品| 国产视频一区不卡| 欧美一区二区三区影视| 99久久99久久综合| 国产精品原创巨作av| 午夜成人免费电影| 亚洲欧美日韩国产综合| 国产亚洲va综合人人澡精品| 欧美午夜精品电影| 99久久伊人网影院| 国产精品一区二区在线看| 日韩av高清在线观看| 亚洲美女视频在线| 中文字幕免费观看一区| 日韩一区二区在线观看| 欧美片网站yy| 欧美三级电影在线看| 色伊人久久综合中文字幕| 成人免费不卡视频| 国产成a人无v码亚洲福利| 国产乱子轮精品视频| 美国十次了思思久久精品导航| 玉米视频成人免费看| 最新国产成人在线观看| 中日韩av电影| 国产亚洲一区字幕| 国产欧美一区二区精品忘忧草 | 一本色道久久综合精品竹菊| 国产一区亚洲一区| 狠狠狠色丁香婷婷综合激情| 日本大胆欧美人术艺术动态| 天涯成人国产亚洲精品一区av| 亚洲靠逼com| 亚洲夂夂婷婷色拍ww47| 依依成人综合视频| 一区二区三区四区国产精品| 亚洲少妇30p| 亚洲美腿欧美偷拍| 亚洲午夜三级在线| 日韩激情在线观看| 精品一区二区三区久久| 狠狠狠色丁香婷婷综合久久五月| 久久99久久精品| 国产在线观看一区二区| 国产激情一区二区三区四区| 成人中文字幕电影| 91国模大尺度私拍在线视频 | 久久先锋影音av| 欧美成人一区二区| 久久久久久电影| 中文av一区二区| 亚洲精品国产精华液| 亚洲午夜免费视频| 美洲天堂一区二卡三卡四卡视频| 日本va欧美va精品发布| 九色综合狠狠综合久久| 国产91在线观看| 91年精品国产| 欧美美女一区二区三区| 欧美电影免费观看完整版| 国产午夜精品理论片a级大结局| 国产精品狼人久久影院观看方式| 亚洲精品中文在线观看| 蜜桃视频一区二区三区 | 欧美军同video69gay| 日韩一区二区免费视频| 国产女同性恋一区二区| 亚洲麻豆国产自偷在线| 肉色丝袜一区二区| 国产成人精品网址| 在线观看一区日韩| 精品少妇一区二区三区免费观看| 国产精品午夜在线观看| 亚洲1区2区3区视频| 国产传媒日韩欧美成人| 在线观看一区日韩| 国产网红主播福利一区二区| 亚洲一区二区视频在线观看| 久久99精品久久久久久国产越南| 99久久99精品久久久久久| 91精品国产免费久久综合| 久久精品一级爱片| 亚洲va中文字幕| 不卡在线视频中文字幕| 欧美一区二区三区小说| 亚洲私人黄色宅男| 黄色资源网久久资源365| 色天天综合色天天久久| 亚洲精品在线免费观看视频| 亚洲免费在线电影| 国产另类ts人妖一区二区| 欧美人牲a欧美精品| 中文字幕一区在线观看视频| 老司机精品视频一区二区三区| 91啪亚洲精品| 中文字幕乱码亚洲精品一区| 久久国产精品99精品国产| 在线免费视频一区二区| 国产亚洲一区二区在线观看| 日韩高清中文字幕一区| 色综合久久久久久久久| 国产欧美日韩在线观看| 久久精品国产久精国产| 欧美裸体一区二区三区| 亚洲精品免费电影| 成人午夜激情影院| 精品国产一区二区三区久久影院| 亚洲国产成人91porn| 91麻豆视频网站| 亚洲国产高清在线观看视频| 狂野欧美性猛交blacked| 欧美日韩日日骚| 一区二区成人在线视频| 不卡一区二区在线| 日本一区二区三区国色天香 | 国产亚洲精品资源在线26u| 日本在线观看不卡视频| 欧美日韩中文字幕精品| 亚洲一区二区三区四区在线| 91美女片黄在线观看91美女| 国产精品天天摸av网| 国产夫妻精品视频| 精品久久久久久久久久久久包黑料| 午夜精品久久久| 欧美高清激情brazzers| 日韩国产精品久久| 6080国产精品一区二区| 亚洲va韩国va欧美va| 欧美唯美清纯偷拍| 亚洲综合成人在线| 欧美性色黄大片| 亚洲电影在线播放| 欧美人牲a欧美精品| 日日摸夜夜添夜夜添精品视频| 欧美精品18+| 男女男精品视频网| 精品久久久久久久久久久久包黑料 | 欧美电影免费观看高清完整版在线| 免费日本视频一区| 91精品中文字幕一区二区三区 | 91网站黄www| 一区二区三区四区在线免费观看| 91网站在线观看视频| 亚洲精品免费视频| 欧美日韩aaaaaa| 秋霞av亚洲一区二区三| 欧美成人高清电影在线| 精品一二三四在线| 国产婷婷色一区二区三区 | a在线播放不卡| 亚洲人成精品久久久久| 色成人在线视频| 亚洲国产精品久久艾草纯爱| 日韩一区二区三区电影| 国产米奇在线777精品观看| 久久精品人人做人人爽人人| 不卡高清视频专区| 亚洲一区二区三区四区在线免费观看| 欧美日韩二区三区| 精品写真视频在线观看| 国产欧美精品区一区二区三区| 波多野结衣中文字幕一区| 亚洲激情第一区| 日韩一区二区精品在线观看| 国产精品一区二区久久精品爱涩| 国产肉丝袜一区二区| 在线视频国内一区二区| 美女视频一区二区三区| 国产精品乱码一区二区三区软件| 91久久精品一区二区三区| 日日噜噜夜夜狠狠视频欧美人 | 色婷婷av一区二区三区软件| 日韩电影在线观看网站| 日本一区二区视频在线观看| 欧洲另类一二三四区| 美女视频网站黄色亚洲| 亚洲欧美自拍偷拍色图| 欧美日韩亚州综合| 国产成人欧美日韩在线电影| 一区二区免费看| 久久久影视传媒| 在线观看日韩电影| 国产自产高清不卡| 亚洲综合在线视频| 国产亚洲综合在线| 91精品黄色片免费大全| 国产69精品久久99不卡| 丝袜亚洲另类欧美| 国产精品国产自产拍高清av| 欧美电影免费观看完整版| 在线视频中文字幕一区二区| 国模大尺度一区二区三区| 一区二区三区免费网站| 欧美国产日韩亚洲一区| 日韩视频在线你懂得| 在线看一区二区|