應用實例 - 基于線程局部存儲技術的多通道數控系統(tǒng)仿真

來源:本站整理 作者:葉子2011年12月13日 09:46
[導讀] 3 應用實例 一種基于Z-Buffer 的銑削實體加工仿真算法,華中數控HNC-32 數控系統(tǒng)HMI 的仿真系統(tǒng)繼承自該代碼,其主要結構如下: 可見,顯示緩存等核心數據
3 應用實例

  一種基于Z-Buffer 的銑削實體加工仿真算法,華中數控HNC-32 數控系統(tǒng)HMI 的仿真系統(tǒng)繼承自該代碼,其主要結構如下:

  

12.jpg

 

  可見,顯示緩存等核心數據結構設計為全局變量,但HNC-32 的設計目標是多通道數控系統(tǒng),每個通道都需要一個實體加工仿真組件的實例,由于全局緩存數據為所有實例共享,因此出現的所有通道顯示內容將完全一致,無法實現多通道仿真。為簡化改造工作,將原系統(tǒng)中約50 多個全局變量合并為一個結構,并將原全局變量作為其成員,即一個大的結構變量包括了50 個原全局變量。

  按照 TLS 要求該結構變量必須動態(tài)創(chuàng)建,如下代碼表明了它的聲明、創(chuàng)建過程,代碼還表明每個ActiveX 組件構造時即調用API 函數TlsAlloc 獲得一個線程索引,在局部堆申請到存儲空間后用API 函數TlsSetValue 將該存儲區(qū)地址與線程索引對應。

  

13.jpg

 

  

14.jpg

 

  在其他函數中,可以通過線程索dwTlsIndex 調用API函數TlsGetValue 引訪問到上述大結構變量,進而訪問到原全局變量,代碼如下:

  //被OpenPatg->hFile 調用讀刀位文件并顯示刀位軌跡

  int CSimuCtrlBCtrl : ShowPath(FILE *fp){

  GlobalValues *g=(GlobalValues *)TlsGetValue(dwTlsIndex);

  g->CtrlObj->GetClientRect(&rt);...

  

上一頁123下一頁

本文導航

相關閱讀

局部存儲相關文章

局部存儲相關下載

發(fā)表評論
技術交流、積極發(fā)言! 發(fā)表評請遵守相關規(guī)定。

0 條評論

推薦閱讀

每月人物

正面迎戰(zhàn)智慧家庭:從稱體重到“稱”健康,芯海智慧測量全包了!

正面迎戰(zhàn)智慧家庭:從稱體重到“稱”健康,芯海智慧測量全包
隨著科技的發(fā)展,人們對生活質量的追求越來越高,傳統(tǒng)的家庭生活方式已經無法滿足現代人的家居生活,智慧家庭的新型生活理念成為很多人夢寐以求的...

依托AI平臺,涂鴉智能開啟全屋智能2.0時代!

依托AI平臺,涂鴉智能開啟全屋智能2.0時代!
隨著物聯網技術的突飛猛進,生活中越來越多的家庭設備將會聯上網絡,變得“智慧”起來,智慧家庭的概念成了這幾年媒體、企業(yè)、用戶關注的焦點,而...

每周排行

  • 型 號
  • 產品描述