We will be creating a couple of macros – called AppendCase and PopulateIoTChart which we will be using in the smart farming app.
Creating the macros will take us only a few minutes – we have the code all waiting and ready.
It will be as simple as clicking Macro, and then New, naming the macro, copy-pasting the code, and saving when done.
AppendCase
Here is the code:
1 2 3 |
var arr=[]; arr[1] = state.getObject("{![CaseMock]}"); state.setArray("{![CaseMockLists]}",arr); |
PopulateIoTChart
Here is the code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
var arr=[]; var src = state.getArray("{![Root]}"); var srcEnv = state.getArray("{![Root(Env)]}"); var avgLums=0,avgTemp=0,avgHum=0; for (i=0;i<src.length;i++) { if (i>14) break; state.setObject("{![tempWave]}",src[i]); // state.setStringValue("{![tempChart].[Data]}", state.getStringValue("{![tempWave].[Lux]}")); // var chartObj=state.getObject("{![tempChart]}"); // chartObj.setPropertyStringValue("e4606544-448d-4fc6-872f-7cea57154598", state.getObject("{![tempWave]}").getPropertyStringValue("3dfe5694-331b-4c41-a8ee-b2507dfd87e0")); // chartObj.setPropertyStringValue("e4606544-448d-4fc6-872f-7cea57154598", state.getStringValue("{![tempWave].[DateTimeF]}")); // chartObj.setStringValue("e4606544-448d-4fc6-872f-7cea57154598", state.getObject("{![tempWave]}").getPropertyStringValue("3dfe5694-331b-4c41-a8ee-b2507dfd87e0")); state.setStringValue("{![tempChart].[Label]}", state.getStringValue("{![tempWave].[DateTimeF]}")); //chartObj.setPropertyStringValue("0208b6d3-4523-46ad-a822-5320c260b904", state.getStringValue("{![tempWave].[Lux]}")); //avgLums=Number(state.getStringValue("{![tempWave].[Lux]}"))+avgLums; avgLums=Number(state.getStringValue("{![tempWave].[Lux]}"))+avgLums; state.setStringValue("{![tempChart].[Data]}", state.getStringValue("{![tempWave].[Lux]}")); //chartObj.setPropertyStringValue("9df1c062-c3a5-43ca-954b-388b4f10be2d","White"); // state.setObject("{![tempChart]}",chartObj); arr[i]=state.getObject("{![tempChart]}"); } avgLums=avgLums/src.length; state.setNumberValue("{![avgLums]}",avgLums.toPrecision(2)); state.setArray("{![Chart Data 1]}",arr); arr=[]; arrHum=[]; for (i=0;i<srcEnv.length;i++) { if (i>14) break; state.setObject("{![tempWave(Env)]}",srcEnv[i]); state.setStringValue("{![tempChart].[Label]}", state.getStringValue("{![tempWave(Env)].[DateTimeF]}")); state.setStringValue("{![tempChart].[Data]}", state.getStringValue("{![tempWave(Env)].[Temp]}")); avgTemp=Number(state.getStringValue("{![tempWave(Env)].[Temp]}"))+avgTemp; arr[i]=state.getObject("{![tempChart]}"); state.setStringValue("{![tempChart].[Data]}", state.getStringValue("{![tempWave(Env)].[Humidity]}")); avgHum=Number(state.getStringValue("{![tempWave(Env)].[Humidity]}"))+avgHum; arrHum[i]=state.getObject("{![tempChart]}"); } avgTemp=avgTemp/(srcEnv.length); avgHum=avgHum/(srcEnv.length); state.setArray("{![ChartTemp]}",arr); state.setArray("{![ChartHumid]}",arrHum); state.setNumberValue("{![avgTemp]}",avgTemp.toPrecision(2)); state.setNumberValue("{![avgHum]}",avgHum.toPrecision(2)); |