| | |
| | | ,{field:'stationid', title:'机房ID', align:'center'}
|
| | | ,{field:'stationname', title:'机房名称', align:'center', width: 400}
|
| | | ,{field:'fbsid', title:'设备ID', align:'center'}
|
| | | ,{field:'fbsname', title:'设备名称', align:'center'}
|
| | | ,{field:'updatestatus', title:'升级状态', align:'center'}
|
| | | ,{field: 'version', title: '版本号', align: 'center'}
|
| | | ,{field:'filename', title:'升级文件名', align:'center'}
|
| | | ,{field:'status', title:'读写状态', align:'center'}
|
| | | ,{field:'progress', title:'上传进度', align: 'center', templet:'#upProgress'}
|
| | | ,{field:'progress', title:'读/写进度', align: 'center', templet:'#upProgress'}
|
| | | ,{field:'datapackage', title:'当前数据包', align:'center'}
|
| | | ,{fixed: 'right', title:'操作', align:'center', toolbar: '#barDemo', width:100}
|
| | | ]]
|
| | |
| | | var formaterData = formaterAddData(rs.data, allData); //解析数据
|
| | | if(formaterData.length) {
|
| | | // 遍历formaterData
|
| | | //console.log(formaterData);
|
| | | for(var i=0; i<formaterData.length; i++) {
|
| | | var _formaterData = formaterData[i];
|
| | | var tmp = {};
|
| | | tmp.stationid = _formaterData.StationId; // 机房id
|
| | | tmp.stationname = _formaterData.StationName; // 机房名称
|
| | | tmp.fbsid = _formaterData.FBSDeviceId; // 设备id
|
| | | tmp.fbsname = _formaterData.FBSDeviceName; // 设备名称
|
| | | tmp.filename = getFnameByVer(_formaterData.StationIp); // 升级文件名称
|
| | | tmp.updatestatusnum = 0; // 0 等待升级
|
| | | tmp.updatestatus = '等待升级'; // 升级状态
|
| | | tmp.status = '写'; // 读写状态
|
| | | tmp.datapackage = 1; // 当前数据包
|
| | | tmp.version = _formaterData.StationIp; // 版本号
|
| | | tmp.isNewAdd = true;
|
| | | //console.log(tmp);
|
| | | allData.push(tmp);
|
| | |
| | | status: [],
|
| | | datapackage: []
|
| | | };
|
| | | //console.log(rs);
|
| | | console.log(rs);
|
| | | if(rs.code == 1 && rs.data.length>0){
|
| | | var tblData = tOptions.data;
|
| | | for(var i=0; i<rs.data.length; i++) {
|
| | | var _data = rs.data[i];
|
| | | var num = -1;
|
| | | // 计算进度
|
| | | var currentPer = getStrPercent(_data.dfu_data_blocknum, _data.dfu_data_blocklen, _data.dfu_file_len, _data.dfu_wr_stat); |
| | | updateTblPorgress(_data.dev_id, currentPer);
|
| | | //console.log(currentPer);
|
| | | // 遍历现有的tblData/根据表格的设别id对获取到值进行排序以便对应表格内容
|
| | | for(var k=0; k<tblData.length;k++) {
|
| | | var _tblData = tblData[k];
|
| | |
| | | }
|
| | |
|
| | |
|
| | | //验证设备是否允许设备进行远程升级
|
| | | // 验证设备是否允许设备进行远程升级
|
| | | function checkStationState(temp, all){
|
| | | $.ajax({
|
| | | type: "post",
|
| | |
| | | if(rs.code == 1) {
|
| | | var data = rs.data;
|
| | | var updateData = checkUpdating(data, all);
|
| | | var errorUpdate = checkErrorUpdate(data, all);
|
| | | $('#updateIframeData').data('update', updateData); // 可更新的设备信息
|
| | | $('#updateIframeData').data('errorUpdate', errorUpdate); // 无法更新的设备信息 |
| | | $('#updateIframeData').data('update', updateData.good); // 可更新的设备信息
|
| | | $('#updateIframeData').data('errorUpdate', updateData.bad); // 无法更新的设备信息 |
| | |
|
| | | console.log(updateData);
|
| | | // 判断是否有升级的设备
|
| | | if(updateData.length == 0) {
|
| | | if(updateData.good.length == 0) {
|
| | | if(temp.length == 1) {
|
| | | layer.msg('当前设备无法升级!');
|
| | | }else {
|
| | |
| | | content: 'iframe/batt-station-update.html',
|
| | | btn: ['确认升级', '取消'],
|
| | | yes: function(index, layero) {
|
| | | var updateData = $('#updateIframeData').data('update'); // 获取可升级设备的信息
|
| | | var goodUpdateData = $('#updateIframeData').data('update'); // 获取可升级设备的信息
|
| | | // 根据可升级设备的信息构造查询条件
|
| | | var updateList = [];
|
| | | for(var i=0; i<updateData.length; i++) {
|
| | | for(var i=0; i<goodUpdateData.length; i++) {
|
| | | var _data = goodUpdateData[i];
|
| | | //var filename = getFnameByVer(_data.version);
|
| | | var _tmp = {
|
| | | dev_id: updateData[i].fbsid
|
| | | dev_id: _data.fbsid
|
| | | ,dfu_file: _data.filename
|
| | | };
|
| | | |
| | | console.log(_data);
|
| | | // 添加到设备升级列表中
|
| | | updateList.push(_tmp);
|
| | | if(_data.filename && _data.filename.length != 0) {
|
| | | updateList.push(_tmp);
|
| | | }
|
| | | |
| | | }
|
| | | |
| | | //console.log(updateList);
|
| | | // 关闭弹出面板
|
| | | layer.close(index);
|
| | |
|
| | |
| | |
|
| | | }
|
| | |
|
| | | // 从返回的可升级的设备中剔除正在升级的设备
|
| | | // 格式话升级的设备
|
| | | function checkUpdating(rsData, all) {
|
| | | var rs = [];
|
| | | // 遍历all
|
| | | for(var i=0; i<all.length; i++) {
|
| | | var _all = all[i];
|
| | | var isError = true;
|
| | | for(var k=0; k<rsData.length; k++) {
|
| | | var _rsData = rsData[k];
|
| | | |
| | | // 判断当前设备是否正在升级
|
| | | if(_all.updatestatusnum == 1) {
|
| | | isError = false;
|
| | | }
|
| | | }
|
| | | |
| | | // 根据isError判读是否是不可添加的机房
|
| | | if(isError) {
|
| | | rs.push(_all);
|
| | | }
|
| | | }
|
| | | |
| | | return rs;
|
| | | }
|
| | | |
| | | // 获取无法升级的设备
|
| | | function checkErrorUpdate(rsData, all) {
|
| | | var rs = [];
|
| | | var rs = {
|
| | | good: []
|
| | | ,bad: []
|
| | | };
|
| | | // 遍历all
|
| | | for(var i=0; i<all.length; i++) {
|
| | | var _all = all[i];
|
| | |
| | |
|
| | | // 根据isError判读是否是不可添加的机房
|
| | | if(isError) {
|
| | | rs.push(_all);
|
| | | rs.bad.push(_all);
|
| | | }else {
|
| | | rs.good.push(_all);
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | tmp.fbsid = _data.dev_id; // 设备id
|
| | | tmp.fbsname = _data.fBSDeviceName; // 设备名称
|
| | | tmp.updatestatusnum = 1; // 0 等待升级 1正在升级
|
| | | tmp.version = _data.note; // 版本号
|
| | | tmp.filename = _data.dfu_file; // 升级文件名称
|
| | | tmp.updatestatus = '升级中'; // 升级状态
|
| | | tmp.status = _data.dfu_wr_stat == 1?'写':_data.dfu_wr_stat == 2?'读':_data.dfu_wr_stat == 3?'完成':''; // 读写状态
|
| | | tmp.datapackage = _data.dfu_data_blocknum; // 当前数据包
|
| | |
| | |
|
| | | // 更新表格
|
| | | table.render(tOptions);
|
| | | renderTblPorgess(allData);
|
| | | }
|
| | | }
|
| | | });
|
| | | }
|
| | | |
| | |
|
| | | // 渲染进度条
|
| | | function renderTblPorgess(tblData) {
|
| | |
| | | }
|
| | |
|
| | | }
|
| | | |
| | | // 更新进度条
|
| | | function updateTblPorgress(fbsid, percent) {
|
| | | |
| | | // 更新进度条
|
| | | element.progress('upload'+fbsid, percent);
|
| | | }
|
| | | |
| | | // 计算进度
|
| | | function getStrPercent(current, blocklen, all, status) {
|
| | | var rs = '0%';
|
| | | if(all != 0) {
|
| | | var num = Math.ceil(current*blocklen*100/all);
|
| | | if(num>=100) {
|
| | | num = status == 1?'写完成':'升级完成';
|
| | | |
| | | }
|
| | | |
| | | rs = num+'%';
|
| | | }
|
| | | |
| | | return rs;
|
| | | }
|
| | | //console.log(getFnameByVer('D:8,V2.53.40'));
|
| | | // 更具版本号获取文件的名称
|
| | | function getFnameByVer(version) {
|
| | | var fileList = [
|
| | | {
|
| | | filename: 'avr_dfu.uc3'
|
| | | ,pattern: /^.*\.24\.[0-9]*$/
|
| | | }
|
| | | ,{
|
| | | filename: 'E51_DFU.SM5'
|
| | | ,pattern: /^.*\.53\.[0-9]*$/
|
| | | }
|
| | | ];
|
| | | |
| | | // 遍历并获取filename
|
| | | var filename = undefined;
|
| | | for(var i=0; i<fileList.length; i++) {
|
| | | var _fileList = fileList[i];
|
| | | if(_fileList.pattern.test(version)) {
|
| | | filename = _fileList.filename;
|
| | | }
|
| | | }
|
| | | |
| | | return filename;
|
| | | }
|
| | | });
|
| | | </script>
|
| | | </body>
|