| | |
| | | sum_region6_2 = 0, |
| | | sum_region7_2 = 0, |
| | | sum_region8_2 = 0, |
| | | sum_region9_2 = 0 //每个区域的总值 |
| | | sum_region9_2 = 0, //每个区域的总值 |
| | | sum_9_region = [[],[],[],[],[],[],[],[],[]], |
| | | sum_9_region2 = [[],[],[],[],[],[],[],[],[]], |
| | | persens_arr = [], |
| | | persens_arr2 = [] |
| | | var region_length = [] |
| | | var region_length2 = [] //鞋垫分区的个数 |
| | | var left_port = "/dev/tty.usbserial-14110" |
| | | var right_port = "/dev/tty.usbserial-14130"//左右脚对应的串口号 |
| | | var read_file = true |
| | | var heatmapInstance = h337.create({ |
| | | container: document.querySelector('.left_map') |
| | | }); |
| | | var heatmapInstance2 = h337.create({ |
| | | container: document.querySelector('.right_map') |
| | | }); |
| | | |
| | | // var dom = document.getElementById('chart-container'); |
| | | // var myChart = echarts.init(dom, 'dark', { |
| | | // renderer: 'canvas', |
| | | // useDirtyRect: false |
| | | // }); |
| | | // myChart.setOption( |
| | | // // (option = { |
| | | // // visualMap: { |
| | | // // show: false, |
| | | // // min: 0, |
| | | // // max: 3000, |
| | | // // inRange: { |
| | | // // color: [ |
| | | // // '#313695', |
| | | // // '#4575b4', |
| | | // // '#74add1', |
| | | // // '#abd9e9', |
| | | // // '#e0f3f8', |
| | | // // '#ffffbf', |
| | | // // '#fee090', |
| | | // // '#fdae61', |
| | | // // '#f46d43', |
| | | // // '#d73027', |
| | | // // '#a50026' |
| | | // // ] |
| | | // // } |
| | | // // }, |
| | | // // xAxis3D: { |
| | | // // type: 'value' |
| | | // // }, |
| | | // // yAxis3D: { |
| | | // // type: 'value' |
| | | // // }, |
| | | // // zAxis3D: { |
| | | // // type: 'value', |
| | | // // max: 3000, |
| | | // // min: 0 |
| | | // // }, |
| | | // // grid3D: { |
| | | // // axisLine: { |
| | | // // lineStyle: { color: '#fff' } |
| | | // // }, |
| | | // // axisPointer: { |
| | | // // lineStyle: { color: '#fff' } |
| | | // // }, |
| | | // // viewControl: { |
| | | // // // autoRotate: true |
| | | // // }, |
| | | // // light: { |
| | | // // main: { |
| | | // // shadow: true, |
| | | // // quality: 'ultra', |
| | | // // intensity: 1.5 |
| | | // // } |
| | | // // } |
| | | // // }, |
| | | // // series: [ |
| | | // // { |
| | | // // type: 'bar3D', |
| | | // // data: new_3d_data, |
| | | // // shading: 'lambert', |
| | | // // label: { |
| | | // // formatter: function (param) { |
| | | // // return param.value[2].toFixed(1); |
| | | // // } |
| | | // // } |
| | | // // } |
| | | // // ] |
| | | // // }) |
| | | // (option = { |
| | | // tooltip: {}, |
| | | // backgroundColor: '#fff', |
| | | // visualMap: { |
| | | // show: false, |
| | | // dimension: 2, |
| | | // min: -1, |
| | | // max: 1, |
| | | // inRange: { |
| | | // color: ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026'] |
| | | // } |
| | | // }, |
| | | // xAxis3D: { |
| | | // type: 'value' |
| | | // }, |
| | | // yAxis3D: { |
| | | // type: 'value' |
| | | // }, |
| | | // zAxis3D: { |
| | | // type: 'value', |
| | | // max: 3000, |
| | | // min: 0 |
| | | // }, |
| | | // grid3D: { |
| | | // viewControl: { |
| | | // // projection: 'orthographic' |
| | | // } |
| | | // }, |
| | | // series: [{ |
| | | // type: 'surface', |
| | | // wireframe: { |
| | | // // show: false |
| | | // }, |
| | | // equation: { |
| | | |
| | | // z: function (x, y) { |
| | | // if (Math.abs(x) < 0.1 && Math.abs(y) < 0.1) { |
| | | // return '-'; |
| | | // } |
| | | // return x*x*(1/y); |
| | | // } |
| | | // } |
| | | // }] |
| | | // } |
| | | // ) |
| | | // ); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | // 一维数组转多维 |
| | | function fun(fromArr,mountOfEachLine) { |
| | | // let newArr = []; |
| | | // let len = fromArr.length; |
| | | // let lineNum = len % mountOfEachLine == 0 ? len / mountOfEachLine : Math.ceil(len / mountOfEachLine); |
| | | // for (let i = 0; i < lineNum; i++) { |
| | | // let tempElement = fromArr.slice(i*mountOfEachLine,(i+1)*mountOfEachLine); |
| | | // newArr.push(tempElement); |
| | | // } |
| | | // return newArr; |
| | | var arr2 = []; |
| | | let len = fromArr.length; |
| | | for (let i = 0, j = 0; i < len; i += mountOfEachLine, j++) { |
| | | arr2[j] = fromArr.splice(0, mountOfEachLine); |
| | | } |
| | | return arr2; |
| | | } |
| | | |
| | | //小数转化百分比 |
| | | function toPercent(point){ |
| | |
| | | let str = ``; |
| | | //增加\t为了不让表格显示科学计数法或者其他格式 |
| | | for(let i = 0 ; i < data.length ; i++ ){ |
| | | str+=`${data[i].data.join(',') + '\t'},`; |
| | | str+='\n'; |
| | | if(i == data.length-1){ |
| | | str+=`${data[i].data.join(',')}`; |
| | | }else{ |
| | | str+=`${data[i].data.join(',') + '\t'},`; |
| | | str+='\n'; |
| | | } |
| | | |
| | | } |
| | | //encodeURIComponent解决中文乱码 |
| | | let uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(str); |
| | |
| | | console.log("清空了") |
| | | arr_arr = [] |
| | | arr_arr2 = [] //清除上一次数据 |
| | | sum_9_region = [[],[],[],[],[],[],[],[],[]] |
| | | sum_9_region2 = [[],[],[],[],[],[],[],[],[]] |
| | | persens_arr = [] |
| | | persens_arr2 = [] |
| | | } |
| | | clear = true |
| | | clearInterval(timer) |
| | |
| | | |
| | | if(data1.serialport == right_port){ |
| | | let data = data1.data |
| | | let data_end = data1.data.flat() |
| | | let data_end = data1.data.flat(Infinity) |
| | | for(let i=0;i<data_map.data.length;i++){ |
| | | data_map.data[i].value = data_end[i] |
| | | data_map.data[i].radius = data_end[i]<10?0:30 |
| | | data_map2.data[i].value = data_end[i] |
| | | data_map2.data[i].radius = data_end[i]<10?0:50 |
| | | } |
| | | |
| | | heatmapInstance2.setData(data_map); |
| | | heatmapInstance2.setData(data_map2); |
| | | arr_arr.push(data1) |
| | | for(let i=0;i<data.length;i++){ |
| | | for(let x=0;x<data[i].length;x++){ |
| | |
| | | } |
| | | if(i==data.length-1&&x==data[i].length-1){ |
| | | sum_99 = sum_region1+sum_region2+sum_region3+sum_region4+sum_region5+sum_region6+sum_region7+sum_region8+sum_region9 |
| | | sum_9_region[0].push(sum_region1) |
| | | sum_9_region[1].push(sum_region2) |
| | | sum_9_region[2].push(sum_region3) |
| | | sum_9_region[3].push(sum_region4) |
| | | sum_9_region[4].push(sum_region5) |
| | | sum_9_region[5].push(sum_region6) |
| | | sum_9_region[6].push(sum_region7) |
| | | sum_9_region[7].push(sum_region8) |
| | | sum_9_region[8].push(sum_region9) |
| | | $('.dataRight .region1 .ave').text((sum_region1/region_length[0]).toFixed(5)); |
| | | $('.dataRight .region1 .pr').text(toPercent((sum_region1/sum_99).toFixed(5))); |
| | | $('.dataRight .region2 .ave').text((sum_region2/region_length[1]).toFixed(5)); |
| | |
| | | addData(lineChart, 7, 'time3',(sum_region8/region_length[7]).toFixed(5)) |
| | | addData(lineChart, 8, 'time3',(sum_region9/region_length[8]).toFixed(5)) |
| | | |
| | | |
| | | } |
| | | } |
| | | } |
| | | sum_99 = 0;sum_region1 = 0;sum_region2 = 0;sum_region3 = 0;sum_region4 = 0;sum_region5 = 0;sum_region6 = 0;sum_region7 = 0;sum_region8 = 0;sum_region9 = 0 |
| | | }else if(data1.serialport == left_port){ |
| | | let data = data1.data |
| | | let data_end = data1.data.flat() |
| | | let data_end = data1.data.flat(Infinity) |
| | | for(let i=0;i<data_map.data.length;i++){ |
| | | data_map.data[i].value = data_end[i] |
| | | data_map.data[i].radius = data_end[i]<10?0:50 |
| | |
| | | addData(lineChart2, 6, 'time3',(sum_region7_2/region_length2[6]).toFixed(5)) |
| | | addData(lineChart2, 7, 'time3',(sum_region8_2/region_length2[7]).toFixed(5)) |
| | | addData(lineChart2, 8, 'time3',(sum_region9_2/region_length2[8]).toFixed(5)) |
| | | sum_9_region2[0].push(sum_region1_2) |
| | | sum_9_region2[1].push(sum_region2_2) |
| | | sum_9_region2[2].push(sum_region3_2) |
| | | sum_9_region2[3].push(sum_region4_2) |
| | | sum_9_region2[4].push(sum_region5_2) |
| | | sum_9_region2[5].push(sum_region6_2) |
| | | sum_9_region2[6].push(sum_region7_2) |
| | | sum_9_region2[7].push(sum_region8_2) |
| | | sum_9_region2[8].push(sum_region9_2) |
| | | } |
| | | } |
| | | } |
| | |
| | | //结束按钮 |
| | | $('.end').click(function(){ |
| | | // var socket = io('http://127.0.0.1:3001'); |
| | | console.log(arr_arr,arr_arr2) |
| | | clear = false |
| | | socket.destroy(); |
| | | // socket.disconnect(true) |
| | | // socket.close(false) //关闭socket不再接收传回的数据 |
| | | clearInterval(timer) |
| | | $('.start').attr('disabled',false) |
| | | $('.last').attr('disabled',false) |
| | | $('.next').attr('disabled',false) |
| | | $('.back').attr('disabled',false) //开启回放功能 |
| | | $('.download').attr('disabled',false) |
| | | // console.log(sum_9_region,sum_9_region2) |
| | | if(arr_arr.length == 0&&arr_arr2.length == 0){ |
| | | alert("暂无数据") |
| | | $('.start').attr('disabled',false) |
| | | }else{ |
| | | for(let i=0;i<sum_9_region.length;i++){ |
| | | let data_end_region = eval(sum_9_region[i].join('+')) |
| | | persens_arr.push(data_end_region) |
| | | } |
| | | clear = false |
| | | socket.destroy(); |
| | | // socket.disconnect(true) |
| | | // socket.close(false) //关闭socket不再接收传回的数据 |
| | | clearInterval(timer) |
| | | $('.start').attr('disabled',false) |
| | | $('.last').attr('disabled',false) |
| | | $('.next').attr('disabled',false) |
| | | $('.back').attr('disabled',false) //开启回放功能 |
| | | $('.download').attr('disabled',false) |
| | | } |
| | | |
| | | }) |
| | | |
| | | //回放功能 |
| | |
| | | }else{ |
| | | clear = false |
| | | timer = setInterval(function(){ |
| | | |
| | | let data_end_left = arr_arr2[step2]?.data.flat(Infinity) |
| | | let data_end_right = arr_arr[step]?.data.flat(Infinity) |
| | | |
| | | if(arr_arr.length!=0&&arr_arr2.length!=0){ |
| | | step == arr_arr.length-1?arr_arr.length-1:step++ |
| | | step2 == arr_arr2.length-1?arr_arr2.length-1:step2++ |
| | | for(let i=0;i<data_map.data?.length;i++){ |
| | | data_map.data[i].value = data_end_left[i] |
| | | data_map.data[i].radius = data_end_left[i]<10?0:50 |
| | | } |
| | | for(let i=0;i<data_map2.data?.length;i++){ |
| | | data_map2.data[i].value = parseInt(data_end_right[i]) |
| | | data_map2.data[i].radius = parseInt(data_end_right[i])<10?0:50 |
| | | } |
| | | heatmapInstance.setData(data_map); |
| | | heatmapInstance2.setData(data_map2); |
| | | }else if(arr_arr.length == 0&&arr_arr2.length!=0){ |
| | | step = 0 |
| | | step2 == arr_arr2.length-1?arr_arr2.length-1:step2++ |
| | | for(let i=0;i<data_map.data?.length;i++){ |
| | | data_map.data[i].value = data_end_left[i] |
| | | data_map.data[i].radius = data_end_left[i]<10?0:50 |
| | | } |
| | | heatmapInstance.setData(data_map); |
| | | }else if(arr_arr2.length == 0&&arr_arr.length!=0){ |
| | | step2 = 0 |
| | | step == arr_arr.length-1?arr_arr.length-1:step++ |
| | | for(let i=0;i<data_map2.data?.length;i++){ |
| | | data_map2.data[i].value = data_end_right[i] |
| | | data_map2.data[i].radius = data_end_right[i]<10?0:50 |
| | | heatmapInstance2.setData(data_map2); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | for(let i=0;i<arr_arr[step]?.data.length;i++){ |
| | | for(let x=0;x<arr_arr[step].data[i].length;x++){ |
| | | let id_end = trueID(i) |
| | |
| | | } |
| | | } |
| | | } |
| | | console.log(step,step2,arr_arr.length-1,arr_arr2.length-1) |
| | | heatmapInstance.setData(data_map); |
| | | heatmapInstance2.setData(data_map2); |
| | | if(arr_arr.length!=0&&arr_arr2.length!=0){ |
| | | if(step == arr_arr.length-1&&step2 == arr_arr2.length-1){ |
| | | clearInterval(timer) |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | sum_99 = 0;sum_region1 = 0;sum_region2 = 0;sum_region3 = 0;sum_region4 = 0;sum_region5 = 0;sum_region6 = 0;sum_region7 = 0;sum_region8 = 0;sum_region9 = 0 |
| | | sum_99_2 = 0;sum_region1_2 = 0;sum_region2_2 = 0;sum_region3_2 = 0;sum_region4_2 = 0;sum_region5_2 = 0;sum_region6_2 = 0;sum_region7_2 = 0;sum_region8_2 = 0;sum_region9_2 = 0 |
| | | sum_99 = 0;sum_region1 = 0;sum_region2 = 0;sum_region3 = 0;sum_region4 = 0;sum_region5 = 0;sum_region6 = 0;sum_region7 = 0;sum_region8 = 0;sum_region9 = 0 |
| | | sum_99_2 = 0;sum_region1_2 = 0;sum_region2_2 = 0;sum_region3_2 = 0;sum_region4_2 = 0;sum_region5_2 = 0;sum_region6_2 = 0;sum_region7_2 = 0;sum_region8_2 = 0;sum_region9_2 = 0 |
| | | |
| | | },40) |
| | | } |
| | |
| | | clear = false |
| | | step ==0?0:step-- |
| | | step2 ==0?0:step2-- |
| | | let data_end_left = arr_arr2[step2]?.data.flat(Infinity) |
| | | let data_end_right = arr_arr[step]?.data.flat(Infinity) |
| | | if(arr_arr.length!=0&&arr_arr2.length!=0){ |
| | | for(let i=0;i<data_map.data?.length;i++){ |
| | | data_map.data[i].value = data_end_left[i] |
| | | data_map.data[i].radius = data_end_left[i]<10?0:50 |
| | | } |
| | | for(let i=0;i<data_map2.data?.length;i++){ |
| | | data_map2.data[i].value = data_end_right[i] |
| | | data_map2.data[i].radius = data_end_right[i]<10?0:50 |
| | | } |
| | | heatmapInstance.setData(data_map); |
| | | heatmapInstance2.setData(data_map2); |
| | | }else if(arr_arr.length == 0&&arr_arr2.length!=0){ |
| | | for(let i=0;i<data_map.data?.length;i++){ |
| | | data_map.data[i].value = data_end_left[i] |
| | | data_map.data[i].radius = data_end_left[i]<10?0:50 |
| | | } |
| | | heatmapInstance.setData(data_map); |
| | | }else if(arr_arr2.length == 0&&arr_arr.length!=0){ |
| | | for(let i=0;i<data_map2.data?.length;i++){ |
| | | data_map2.data[i].value = data_end_right[i] |
| | | data_map2.data[i].radius = data_end_right[i]<10?0:50 |
| | | heatmapInstance2.setData(data_map2); |
| | | } |
| | | } |
| | | for(let i=0;i<arr_arr[step]?.data.length;i++){ |
| | | for(let x=0;x<arr_arr[step].data[i].length;x++){ |
| | | let id_end = trueID(i) |
| | |
| | | } |
| | | } |
| | | } |
| | | console.log(step,step2,arr_arr.length-1,arr_arr2.length-1) |
| | | sum_99 = 0;sum_region1 = 0;sum_region2 = 0;sum_region3 = 0;sum_region4 = 0;sum_region5 = 0;sum_region6 = 0;sum_region7 = 0;sum_region8 = 0;sum_region9 = 0 |
| | | sum_99_2 = 0;sum_region1_2 = 0;sum_region2_2 = 0;sum_region3_2 = 0;sum_region4_2 = 0;sum_region5_2 = 0;sum_region6_2 = 0;sum_region7_2 = 0;sum_region8_2 = 0;sum_region9_2 = 0 |
| | | |
| | |
| | | $('.next').click(function(){ |
| | | clearInterval(timer) |
| | | clear = false |
| | | let data_end_left = arr_arr2[step2]?.data.flat(Infinity) |
| | | let data_end_right = arr_arr[step]?.data.flat(Infinity) |
| | | if(arr_arr.length!=0&&arr_arr2.length!=0){ |
| | | step == arr_arr.length-1?arr_arr.length-1:step++ |
| | | step2 == arr_arr2.length-1?arr_arr2.length-1:step2++ |
| | | for(let i=0;i<data_map.data?.length;i++){ |
| | | data_map.data[i].value = data_end_left[i] |
| | | data_map.data[i].radius = data_end_left[i]<10?0:50 |
| | | } |
| | | for(let i=0;i<data_map2.data?.length;i++){ |
| | | data_map2.data[i].value = data_end_right[i] |
| | | data_map2.data[i].radius = data_end_right[i]<10?0:50 |
| | | } |
| | | heatmapInstance.setData(data_map); |
| | | heatmapInstance2.setData(data_map2); |
| | | }else if(arr_arr.length == 0&&arr_arr2.length!=0){ |
| | | step = 0 |
| | | step2 == arr_arr2.length-1?arr_arr2.length-1:step2++ |
| | | for(let i=0;i<data_map.data?.length;i++){ |
| | | data_map.data[i].value = data_end_left[i] |
| | | data_map.data[i].radius = data_end_left[i]<10?0:50 |
| | | } |
| | | heatmapInstance.setData(data_map); |
| | | }else if(arr_arr2.length == 0&&arr_arr.length!=0){ |
| | | step2 = 0 |
| | | step == arr_arr.length-1?arr_arr.length-1:step++ |
| | | for(let i=0;i<data_map2.data?.length;i++){ |
| | | data_map2.data[i].value = data_end_right[i] |
| | | data_map2.data[i].radius = data_end_right[i]<10?0:50 |
| | | heatmapInstance2.setData(data_map2); |
| | | } |
| | | } |
| | | for(let i=0;i<arr_arr[step]?.data.length;i++){ |
| | | for(let x=0;x<arr_arr[step].data[i].length;x++){ |
| | |
| | | } |
| | | } |
| | | } |
| | | console.log(step,step2,arr_arr.length-1,arr_arr2.length-1) |
| | | sum_99 = 0;sum_region1 = 0;sum_region2 = 0;sum_region3 = 0;sum_region4 = 0;sum_region5 = 0;sum_region6 = 0;sum_region7 = 0;sum_region8 = 0;sum_region9 = 0 |
| | | sum_99_2 = 0;sum_region1_2 = 0;sum_region2_2 = 0;sum_region3_2 = 0;sum_region4_2 = 0;sum_region5_2 = 0;sum_region6_2 = 0;sum_region7_2 = 0;sum_region8_2 = 0;sum_region9_2 = 0 |
| | | |
| | |
| | | |
| | | //下载文件 |
| | | $('.download').click(function(){ |
| | | console.log(arr_arr,arr_arr2) |
| | | let time = getNowTime() |
| | | if(arr_arr.length == 0&&arr_arr2.length>0){ |
| | | tableToExcel(arr_arr2,`左脚${time}.csv`) |
| | |
| | | |
| | | //给input标签绑定change事件,一上传选中的.xls文件就会触发该函数 |
| | | $('#excel-file').change(function(e) { |
| | | read_file = false |
| | | arr_arr = [] |
| | | var files = e.target.files; |
| | | var fileReader = new FileReader(); |
| | | fileReader.onload = function(ev) { |
| | |
| | | }) // 以二进制流方式读取得到整份excel表格对象 |
| | | var persons = []; // 存储获取到的数据 |
| | | } catch (e) { |
| | | console.log('文件类型不正确'); |
| | | console.log('文件类型不正确',e); |
| | | return; |
| | | } |
| | | |
| | |
| | | for (var sheet in workbook.Sheets) { |
| | | if (workbook.Sheets.hasOwnProperty(sheet)) { |
| | | fromTo = workbook.Sheets[sheet]['!ref'];//读取的全部数据 A1:AN203 |
| | | console.log(fromTo); |
| | | persons = persons.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet], {header:1,defval:''}));//合并数据 |
| | | break; // 如果只取第一张表,就取消注释这行 |
| | | // break; // 如果只取第一张表,就取消注释这行 |
| | | } |
| | | } |
| | | //在控制台打印出来表格中的数据 |
| | | console.log(persons); |
| | | for(let i=0;i<persons.length;i++){ |
| | | persons[i].length = 112 |
| | | let data_ee = fun(persons[i],28) |
| | | arr_arr.push({"data":data_ee}) |
| | | } |
| | | $('.last').attr('disabled',false) |
| | | $('.next').attr('disabled',false) |
| | | $('.back').attr('disabled',false) //开启回放功能 |
| | | $('.download').attr('disabled',true) |
| | | text=persons;//训练数据集text |
| | | // console.log(persons) |
| | | }; |
| | | // 以二进制方式打开文件 |
| | | fileReader.readAsBinaryString(files[0]); |