enuSpace for Mars를 이용한 2D, 3D Data Visualization 작업
실행 결과 동영상
샘플 Task 생성 및 등록.
* enuSpace for Mars는 뛰어난 Timing Scheduling 기능을 제공합니다. C++, Fortran 을 이용하여 생성한 dll을 정확한 타이밍 스케쥴러를 통하여 Task 연산이 가능하도록 적용하였습니다.
* 연산된 결과는 메모리 기반의 데이터베이스와 연계되어 빠른 인터페이스가 가능하도록 적용하였습니다.
* 생성된 모델을 스케쥴링 타임 설정값을 지정합니다.
DB 등록.
간단하게 작성된 모델 변수를 DB에 등록합니다.
샘플 모델을 0~1사이의 값으로 값을 생성하여 타이밍 스케쥴러에 따라서 연산을 수행합니다.
화면 픽쳐 객체 생성.
페이지 로딩시 2D 객체를 루아 스크립트를 이용하여 동적으로 생성합니다. 생성된 객체에 데이터 바인딩을 수행할 스크립트도 같이 등록하여 줍니다.
function _onload() local tx = 300 local ty = 200 local i = 1 local j = 1 local k = 1 local id_text
for i=1,24,1 do for j=1,15,1 do id_text = string.format("ID_%d_1_%d_H", j,i) CreateRect(id_text, 0, 0, 15, 15, 20*j+tx, 20*i+ty) end end local strScript for i=1,24,1 do for j=1,15,1 do id_text = string.format("ID_%d_1_%d_H", j, i) strScript = string.format("function _ontaskview()\nfill=GetValueColor(@CORE.flux_%d_1_%d)\nend", j, i) RegisterLuaScriptById(id_text, "_ontaskview", strScript) end end local tx = 800 local ty = 300 local k = 2 for i=1,15,1 do for j = 1,15,1 do id_text = string.format("ID_%d_%d_%d", i, j, k) CreateRect(id_text, 0, 0, 15, 15, i*20+tx, j*20+ty) end end
for i=1,15,1 do for j = 1,15,1 do id_text = string.format("ID_%d_%d_%d", i, j, k) strScript = string.format("function _ontaskview()\nfill=GetValueColor(@CORE.flux_%d_%d_%d)\nend", i, j, k) RegisterLuaScriptById(id_text, "_ontaskview", strScript) end end end |
페이지 로딩시 3D 객체를 루아 스크립트를 이용하여 동적으로 생성합니다. 생성된 객체에 데이터 바인딩을 수행할 스크립트도 같이 등록하여 줍니다.
function _onload() local tx = 75 local ty = 75 local tz = 150 local i = 1 local j = 1 local k = 1 local id_text for i=1,15,1 do for j = 1,15,1 do for k = 1,24,1 do id_text = string.format("ID_%d_%d_%d", i, j, k) Create3DBox(id_text, 7, i*10-tx,j*10-ty,tz-k*10) end end end local strScript for i=1,15,1 do for j = 1,15,1 do for k = 1,24,1 do id_text = string.format("ID_%d_%d_%d", i, j, k) strScript = string.format("function _ontaskview()\ndiffuseColor=GetValueColor(@CORE.flux_%d_%d_%d)\nend", i, j, k) RegisterLuaScriptById(id_text, "_ontaskview", strScript) end end end end |
function GetValueColor(fValue) fValue = fValue * 50 local color if fValue<0 then color = string.format("rgb(0,0,0)") elseif fValue>0 and fValue <=5 then color = string.format("rgb(15,75,165)") elseif fValue>5 and fValue <=10 then color = string.format("rgb(30,110,200)") elseif fValue>10 and fValue <=15 then color = string.format("rgb(60,160,240)") elseif fValue>15 and fValue <=20 then color = string.format("rgb(80,180,250)") elseif fValue>20 and fValue <=25 then color = string.format("rgb(130,210,255)") elseif fValue>25 and fValue <=30 then color = string.format("rgb(160,240,255)") elseif fValue>30 and fValue <=35 then color = string.format("rgb(200,250,255)") elseif fValue>35 and fValue <=40 then color = string.format("rgb(230,255,255)") elseif fValue>40 and fValue <=45 then color = string.format("rgb(255,250,220)") elseif fValue>45 and fValue <=50 then color = string.format("rgb(255,232,120)") elseif fValue>50 and fValue <=55 then color = string.format("rgb(255,192,60)") elseif fValue>55 and fValue <=60 then color = string.format("rgb(255,160,0)") elseif fValue>60 and fValue <=65 then color = string.format("rgb(255,96,0)") elseif fValue>65 and fValue <=70 then color = string.format("rgb(255,50,0)") elseif fValue>70 and fValue <=75 then color = string.format("rgb(225,20,0)") elseif fValue>75 and fValue <=80 then color = string.format("rgb(192,0,0)") elseif fValue > 80 then color = string.format("rgb(150,0,0)") end
return color end |
'enuSpace for mars(2017) > Work note(mars)' 카테고리의 다른 글
Windows 10 IoT Core Remote Server 사용 Tip (0) | 2016.10.06 |
---|---|
Windows 10 IoT Core에서 WinRT C#용 Chart 그리기 (0) | 2016.10.06 |
Windows 10 IoT Core, Raspberry PI, Arduino and enuSpace Platform (0) | 2016.10.05 |
자바스크립트와 엔유스페이스를 이용한 Web Data Visualization (Big data 처리) (0) | 2016.09.20 |
enuSpace for Mars Terrain 객체의 데이터 가시화 작업 (0) | 2016.08.11 |