2 * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
\r
4 * This program is licensed under the terms and conditions of the
\r
5 * Apache License, version 2.0. The full text of the Apache License is at
\r
6 * http://www.apache.org/licenses/LICENSE-2.0
\r
11 * Navigation Application(sample navi) Accessor Class
\r
14 var CarInfo = function(lat_val, lon_val) {
\r
15 this.lat_val = lat_val;
\r
16 this.lon_val = lon_val;
\r
19 var NativeAppAccessor = function() {
\r
20 var _socket; // WebSocket
\r
23 * Connection WebSocket
\r
26 this.connectWebSocket = function() {
\r
27 if ( navigator.userAgent.indexOf('Firefox') != -1 ) {
\r
28 _socket = new MozWebSocket('ws://' + IP_ADDR + ':' + WEBSOCKET_PORT + '/');
\r
31 _socket = new WebSocket('ws://' + IP_ADDR + ':' + WEBSOCKET_PORT + '/', 'http-only');
\r
35 _socket.onopen = function() {
\r
36 _socket.send('OPEN ' + EDJE_PATH + EDJE_CONF_NAME);
\r
39 _socket.onmessage = function(e) { recvMessage(e); };
\r
40 _socket.onerror = function(e) { };
\r
41 _socket.onclose = function() { };
\r
45 * Disconnection WebSocket
\r
48 this.disconnectWebSocket = function() {
\r
50 _socket.send('Close_Socket');
\r
56 * Request Navigation Start
\r
58 this.sendReqNaviStart = function() {
\r
60 $('#address').text('Send Req Navi Start.');
\r
61 _socket.send('CHG SEQ REQ_NAV');
\r
66 * Request Navigation End
\r
68 this.sendReqNaviEnd = function() {
\r
70 $('#address').text('Send Req Navi End.');
\r
71 _socket.send('CHG SEQ END_NAV');
\r
78 this.sendRoute = function( routeStr ) {
\r
80 _socket.send( routeStr );
\r
87 * @param event Receive Event
\r
90 function recvMessage(event) {
\r
91 var message = event.data;
\r
94 var messageType = getMessageType(message);
\r
95 if ( messageType == MSG_TYPE.CHG ) {
\r
96 // type is carinfo change message
\r
97 info = getCarInfo(message);
\r
99 $(document).trigger('recvCarInfo', info);
\r
104 $(document).trigger('recvSeqNxt', message);
\r
111 * @param message Receive message
\r
113 * @return message kind (MSG_TYPE)
\r
116 function getMessageType(message) {
\r
117 var cmd = message.slice(0, 7);
\r
120 if ( cmd == 'CHG VAL') {
\r
121 type = MSG_TYPE.CHG;
\r
122 } else if (cmd == 'CHG SEQ') {
\r
123 type = MSG_TYPE.SEQ;
\r
125 type = MSG_TYPE.ERR;
\r
134 * @param message Receive message
\r
136 * @return CarInfo data
\r
139 function getCarInfo(message) {
\r
140 var tmp = message.slice(17);
\r
146 lat_index = tmp.indexOf(KEY_LAT);
\r
147 lon_index = tmp.indexOf(KEY_LON);
\r
149 if ((lat_index != -1) && (lon_index != -1) ){
\r
150 info = new CarInfo();
\r
153 tmp_info = tmp.slice(lat_index + KEY_LAT.length + 1, lon_index);
\r
154 info.lat_val = parseFloat(tmp_info);
\r
157 tmp_info = tmp.slice(lon_index + KEY_LON.length + 1);
\r
158 info.lon_val = parseFloat(tmp_info);
\r
165 * Request DIST ONSCREEN
\r
167 this.sendReqDistOnScreen = function() {
\r
169 $('#address').text("SEND REQ DIST OnScreen.");
\r
171 _socket.send('OPEN ' + EDJE_PATH + EDJE_DIST_NAME);
\r
173 $('#address').text("SEND REQ DIST OnScreen Error. :" + e);
\r
178 * Request CLOSE ONSCREEN
\r
180 this.sendReqCloseOnScreen = function() {
\r
182 $('#address').text("SEND REQ Close OnScreen.");
\r
183 _socket.send('CLOSE');
\r