mbed connector webapp quickstart

Committer:
group-NCTU-Programming-Maratho
Date:
Mon Mar 13 02:43:00 2017 +0000
Revision:
0:3ffbcdb3b8cd
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 1 <!DOCTYPE html>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 2 <html lang="en">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 3 <head>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 4 <meta charset="utf-8">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 5 <meta name="viewport" content="width=device-width, initial-scale=1">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 6
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 7 <title>mbed Device Connector Webapp Quickstart</title>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 8
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 9 <link rel="stylesheet" href="static/css/normalize.css">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 10 <link rel="stylesheet" href="static/css/foundation.min.css">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 11 <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 12 <link rel="stylesheet" href="static/css/styles.css">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 13
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 14 <!--[if lt IE 9]>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 15 <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 16 <![endif]-->
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 17 </head>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 18 <body>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 19 <div class="row margin">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 20 <div class="small-12 columns">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 21 <div><img src="static/img/ARMmbedLogo.png" alt="ARM mbed"></div>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 22 </div>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 23 </div>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 24 <div class="blueband">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 25 <div class="row">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 26 <div class="small-12 columns">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 27 <h1>Webapp Quickstart</h1>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 28 </div>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 29 </div>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 30 </div>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 31 <div id="endpoints">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 32 {{#each endpoints}}
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 33 <div class="row" id="{{name}}">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 34 <div class="small-12 columns">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 35 <div class="row">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 36 <div class="small-12 columns">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 37 <h2>{{name}}</h2>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 38 </div>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 39 </div>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 40 <div class="row">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 41 <div class="small-12 medium-6 columns">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 42 <h4>Presses: <span class="presses-value">Unknown</span></h4>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 43 <label><input type="checkbox" class="subscribe-presses"> Subscribe</label>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 44 <button class="get-presses">GET</button>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 45 </div>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 46 <div class="small-12 medium-6 columns">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 47 <h4>LED Blink Pattern</h4>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 48 <div>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 49 <input type="text" value="{{blinkPattern}}" class="blink-pattern">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 50 </div>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 51 <div class="row">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 52 <div class="small-6 columns">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 53 <button class="update-blink-pattern">Update (PUT)</button>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 54 </div>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 55 <div class="small-6 columns text-right">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 56 <button class="blink">Blink (POST)</button>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 57 </div>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 58 </div>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 59 </div>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 60 </div>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 61 </div>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 62 </div>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 63 {{/each}}
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 64 </div>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 65
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 66
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 67 <script type="text/javascript" src="/static/js/jquery-2.1.4.min.js"></script>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 68 <script type="text/javascript" src="/static/js/socket.io.js"></script>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 69 <script type="text/javascript">
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 70 $(function() {
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 71 var socket = io();
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 72
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 73 $('#endpoints').children().each(function(index, element) {
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 74 var _this = $(this);
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 75 _this.find('.subscribe-presses').change(function() {
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 76 if ($(this).is(":checked")) {
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 77 _this.find('.get-presses').prop('disabled', true);
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 78 socket.emit('subscribe_to_presses', {
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 79 endpointName: _this.attr('id')
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 80 });
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 81 } else {
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 82 _this.find('.get-presses').prop('disabled', false);
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 83 socket.emit('unsubscribe_to_presses', {
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 84 endpointName: _this.attr('id')
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 85 });
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 86 }
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 87 });
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 88
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 89 _this.find('.get-presses').on('click', function() {
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 90 socket.emit('get_presses', {
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 91 endpointName: _this.attr('id')
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 92 });
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 93 });
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 94
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 95 _this.find('.blink-pattern').bind('input', function() {
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 96 _this.find('.update-blink-pattern').addClass('active');
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 97 })
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 98
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 99 _this.find('.update-blink-pattern').on('click', function() {
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 100 socket.emit('update_blink_pattern', {
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 101 endpointName: _this.attr('id'),
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 102 blinkPattern: _this.find('.blink-pattern').val()
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 103 });
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 104
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 105 $(this).removeClass('active');
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 106 });
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 107
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 108 _this.find('.blink').on('click', function() {
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 109 socket.emit('blink', {
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 110 endpointName: _this.attr('id')
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 111 });
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 112 });
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 113 });
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 114
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 115
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 116 socket.on('presses', function (data) {
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 117 console.log('presses', data);
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 118 $('#' + data.endpointName + ' .presses-value').html(data.value);
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 119 });
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 120
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 121 socket.on('subscribed-to-presses', function (data) {
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 122 console.log('subscribed-to-presses', data);
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 123 });
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 124
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 125 socket.on('unsubscribed-to-presses', function (data) {
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 126 console.log('unsubscribed-to-presses', data);
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 127 });
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 128
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 129 });
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 130 </script>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 131 </body>
group-NCTU-Programming-Maratho 0:3ffbcdb3b8cd 132 </html>