123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <title>Vue.js markdown editor example</title>
- <link rel="stylesheet" href="css/style.css">
- <script src="js/util.js"></script>
- <script src="js/moment.js"></script>
- <script src="js/vue.js"></script>
- </head>
- <body>
- <div id="app">
- <textarea v-model="input" cols="80" rows="20"></textarea>
- <div id='example-3'>
- <input type="checkbox" id="do1" value="1" v-model="doBits">
- <input type="checkbox" id="do2" value="2" v-model="doBits">
- <input type="checkbox" id="do3" value="3" v-model="doBits">
- <input type="checkbox" id="do4" value="4" v-model="doBits">
- <input type="checkbox" id="do5" value="5" v-model="doBits">
- <input type="checkbox" id="do6" value="6" v-model="doBits">
- <input type="checkbox" id="do7" value="7" v-model="doBits">
- <input type="checkbox" id="do8" value="8" v-model="doBits">
- <br>
- </div>
- <button v-on:click="send">send</button>
- <ul id="loglist">
- <li v-for="(item, index) in log.slice().reverse()">
- {{ ts2txt(item.ts) }} - {{ item.entry.message }} - <pre>{{ JSON.stringify(item.entry) }}</pre>
- </li>
- </ul>
- </div>
- <script type="application/javascript">
- new Vue({
- el: '#app',
- data: {
- input: '// rde.writeCmd("set_digital_out(2,True)");\n' +
- '// rde.writeCmd("movej([-1.95,-1.58,-1.16,-1.15,-1.55,1.25], a=1.0, v=0.1)");\n' +
- '//rde.writeCmd("freedrive_mode()");\n'+
- 'def asdf():\n' +
- ' set_digital_out(3, True) \n' +
- ' set_digital_out(4, True) \n' +
- 'end',
- log: [],
- lastID: -1,
- doBits: []
- },
- created: function() {
- setInterval(this.update, 200);
- },
- watch: {
- doBits: (newValue, oldValue) => {
- let diff1 = newValue.filter(x => !oldValue.includes(x));
- let diff2 = oldValue.filter(x => !newValue.includes(x));
- for(const x of diff1) {
- fetch('/digital/' + x, {method: "POST", body: 'True'})
- .then(function (response) {
- return response;
- });
- }
- for(const x of diff2) {
- fetch('/digital/' + x, {method: "POST", body: 'False'})
- .then(function (response) {
- return response;
- });
- }
- }
- },
- methods: {
- send: function (event) {
- fetch('/cmd', {method: "POST", body: this.input})
- .then(function(response) {
- return response;
- });
- },
- ts2txt: function (ts) {
- return moment(ts).format('YYYY-MM-DD hh:mm ss.SSS ')
- },
- handlePackage: function(package) {
- switch (package.type) {
- case 'Message':
- break;
- case 'MasterBoardData':
- let bits=package.entry.digitalOutputBits;
- for(let i=0;i<8;i++) {
- if(bits& (1<<i)) {
- this.doBits.push(''+(i+1));
- }
- }
- break;
- case 'ModeData':
- break;
- case 'ToolData':
- break;
- case 'ToolCommInfo':
- break;
- case 'JointDataList':
- break;
- case 'CartesianInfo':
- break;
- case 'ForceModeData':
- break;
- case 'AdditionalInfo':
- break;
- default:
- console.log('unknown package:' + package.type);
-
- }
-
- },
- update: function (event) {
- fetch('/log/'+this.lastID, {method: "GET"})
- .then(handleErrors)
- .then((response) => {
- return response.json();
- })
- .then((myJson) => {
- for(const entry of myJson.entries) {
- this.handlePackage(entry);
- }
- this.$data.log=this.$data.log.concat(myJson.entries);
- this.$data.lastID=myJson.lastID;
- let len=this.$data.log.length;
- this.$data.log.splice(0, len-200);
- })
- .catch(error => {
- this.$data.lastID=0;
- this.$data.log=[];
- console.log(error)
- } );
- }
- }
- })
- </script>
- </body>
- </html>
|