--- /dev/null
+
+window.onload = function() {
+ // add eventListener for tizenhwkey
+ document.addEventListener('tizenhwkey', function(e) {
+ if (e.keyName === "back") {
+ try {
+ tizen.application.getCurrentApplication().exit();
+ } catch (ignore) {}
+ }
+ });
+
+ // Sample code
+ var mainPage = document.querySelector('#main');
+ var test1 = mainPage.querySelector('#test1-button');
+ var test2 = mainPage.querySelector('#test2-button');
+ var test3 = mainPage.querySelector('#test3-button');
+ var test4 = mainPage.querySelector('#test4-button');
+
+ var testData = function (data, result, resultText) {
+ for (var i in result) {
+ if (data[i] !== result[i]) {
+ resultText.innerHTML = "Failure:<br>Received data does not match input data:<br>";
+ for (var j in data) {
+ resultText.innerHTML += data[j] + " ";
+ }
+ resultText.innerHTML += "<br>vs. received:<br>";
+ for (var k in result) {
+ resultText.innerHTML += result[k] + " ";
+ }
+ return;
+ }
+ }
+
+ var outMsg = "Success:<br>Received data: ";
+ for (i in result) {
+ outMsg += result[i] + " ";
+ }
+ resultText.innerHTML = outMsg;
+ };
+
+ test1.addEventListener("click", function() {
+ var resultText = document.querySelector('#test1-text');
+ var globalSession = null;
+
+ function commandError(err) {
+ console.log("Failed command");
+ globalSession.close();
+ resultText.innerHTML = "Failure:<br>invokeCommand: " + err.name + ": " + err.message;
+ }
+ function commandSuccess(cmd, params) {
+ globalSession.close();
+ resultText.innerHTML = "Success:<br>Incremented param to " + params[0].a;
+ }
+
+ function sessionSuccess(session) {
+ //session opened, now we can communicate with TA
+ globalSession = session;
+
+ var p1 = new tizen.TeecValue(3, 2, 'INOUT');
+ session.invokeCommand(1, [p1], commandSuccess, commandError);
+ }
+ function sessionError(err) {
+ console.log("openSession: " + err.name + ": " + err.message);
+ resultText.innerHTML = "Failure:<br>openSession: " + err.name + ": " + err.message;
+ }
+
+ var ctx = tizen.libteec.getContext();
+ ctx.openSession("00000000-0000-0000-0000746374657374", 'PUBLIC', null, null, sessionSuccess, sessionError);
+ });
+
+ test2.addEventListener("click", function() {
+ var resultText = document.querySelector('#test2-text');
+ var ctx = tizen.libteec.getContext();
+ var globalSession = null;
+ var data = [1,2,3,4,45,6,7,7,7];
+
+ function commandError(err) {
+ console.log("Failed command");
+ globalSession.close();
+ resultText.innerHTML = "Failure:<br>invokeCommand: " + err.name + ": " + err.message;
+ }
+ function commandSuccess(cmd, params) {
+ globalSession.close();
+
+ var result = [0,0,0,0,0,0,0,0,0];
+ params[1].shm.getData(result, 0);
+ testData(data, result, resultText);
+ }
+
+ function sessionSuccess(session) {
+ //session opened, now can communicate with TA
+ globalSession = session;
+
+ var emptyData = [0,0,0,0, 0,0,0,0,0];
+ var shmem1 = ctx.allocateSharedMemory(data.length, 'INPUT');
+ shmem1.setData(data, 0);
+ var shmem2 = ctx.allocateSharedMemory(emptyData.length, 'OUTPUT');
+ shmem2.setData(emptyData);
+
+ var p1 = new tizen.TeecRegisteredMemory(shmem1, 0, data.length, 'WHOLE');
+ var p2 = new tizen.TeecRegisteredMemory(shmem2, 0, emptyData.length, 'WHOLE');
+ session.invokeCommand(2, [p1, p2], commandSuccess, commandError);
+ }
+ function sessionError(err) {
+ console.log("openSession: " + err.name + ": " + err.message);
+ resultText.innerHTML = "Failure:<br>openSession: " + err.name + ": " + err.message;
+ }
+
+ ctx.openSession("00000000000000000000746374657374", 'PUBLIC', null, null, sessionSuccess, sessionError);
+ });
+
+ test3.addEventListener("click", function() {
+ var resultText = document.querySelector('#test3-text');
+ var ctx = tizen.libteec.getContext();
+ var globalSession = null;
+ var data = [7,6,5,4,3,21,1,2,3];
+
+ function commandError(err) {
+ console.log("Failed command");
+ globalSession.close();
+ resultText.innerHTML = "Failure:<br>invokeCommand: " + err.name + ": " + err.message;
+ }
+ function commandSuccess(cmd, params) {
+ globalSession.close();
+ testData(data, params[1].mem, resultText);
+ }
+
+ function sessionSuccess(session) {
+ //session opened, now can communicate with TA
+ globalSession = session;
+
+ var emptyData = [0,0,0,0,0,0,0,0,0];
+ var p1 = new tizen.TeecTempMemory(data, 'INPUT');
+ var p2 = new tizen.TeecTempMemory(emptyData, 'OUTPUT');
+ session.invokeCommand(3, [p1, p2], commandSuccess, commandError);
+ }
+ function sessionError(err) {
+ console.log("openSession: " + err.name + ": " + err.message);
+ resultText.innerHTML = "Failure:<br>openSession: " + err.name + ": " + err.message;
+ }
+
+ ctx.openSession("00000000000000000000746374657374", 'PUBLIC', null, null, sessionSuccess, sessionError);
+ });
+
+ test4.addEventListener("click", function() {
+ var resultText = document.querySelector('#test4-text');
+ var ctx = tizen.libteec.getContext();
+ var globalSession = null;
+ var data = [0,1,2,3,4,35,2,1,0];
+
+ function commandError(err) {
+ console.log("Failed command");
+ globalSession.close();
+ resultText.innerHTML = "Failure:<br>invokeCommand: " + err.name + ": " + err.message;
+ }
+ function commandSuccess(cmd, params) {
+ globalSession.close();
+ var result = [0,0,0,0,0,0,0,0,0];
+ params[1].shm.getData(result, 0);
+ testData(data, result, resultText);
+ }
+
+ function sessionSuccess(session) {
+ //session opened, now can communicate with TA
+ globalSession = session;
+
+ var emptyData = [0,0,0,0,0,0,0,0,0];
+ var shmem = ctx.allocateSharedMemory(data.length * 2, 'INOUT');
+ shmem.setData(data, 0);
+ shmem.setData(emptyData, data.length);
+
+ var p1 = new tizen.TeecRegisteredMemory(shmem, 0, data.length, 'PARTIAL_INPUT');
+ var p2 = new tizen.TeecRegisteredMemory(shmem, data.length, data.length, 'PARTIAL_OUTPUT');
+ session.invokeCommand(4, [p1, p2], commandSuccess, commandError);
+ }
+ function sessionError(err) {
+ console.log("openSession: " + err.name + ": " + err.message);
+ resultText.innerHTML = "Failure:<br>openSession: " + err.name + ": " + err.message;
+ }
+
+ ctx.openSession("00000000000000000000746374657374", 'PUBLIC', null, null, sessionSuccess, sessionError);
+ });
+};