
document.write("<script type='text/javascript' src='../static/echarts/echarts.min.js'></script>");


// document.write("<script type='text/javascript' src='../static/jquery/colorpicker.js'></script>");
document.write("<link rel='stylesheet' href='../static/colpick/css/colpick.css'  media='all'>");
document.write("<script type='text/javascript' src='../static/colpick/js/colpick.js'></script>");
document.write("<script type='text/javascript' src='../static/layui/layui.all.js'></script>");


//scpi读写公共函数

//判断浏览器
function myBrowser() {
    var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
    var isOpera = userAgent.indexOf("Opera") > -1; //判断是否Opera浏览器
    var isIE = userAgent.indexOf("compatible") > -1
        && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器
    var isEdge = userAgent.indexOf("Edge") > -1; //判断是否IE的Edge浏览器
    var isFF = userAgent.indexOf("Firefox") > -1; //判断是否Firefox浏览器
    var isSafari = userAgent.indexOf("Safari") > -1
        && userAgent.indexOf("Chrome") == -1; //判断是否Safari浏览器
    var isChrome = userAgent.indexOf("Chrome") > -1
        && userAgent.indexOf("Safari") > -1; //判断Chrome浏览器
    return userAgent;
    if (isIE) {
        var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
        reIE.test(userAgent);
        var fIEVersion = parseFloat(RegExp["$1"]);
        if (fIEVersion == 7) {
            return "IE7";
        } else if (fIEVersion == 8) {
            return "IE8";
        } else if (fIEVersion == 9) {
            return "IE9";
        } else if (fIEVersion == 10) {
            return "IE10";
        } else if (fIEVersion == 11) {
            return "IE11";
        } else {
            return "0";
        }//IE版本过低
        return "IE";
    }
    if (isOpera) {
        return "Opera";
    }
    if (isEdge) {
        return "Edge";
    }
    if (isFF) {
        return "FF";
    }
    if (isSafari) {
        return "Safari";
    }
    if (isChrome) {
        return "Chrome";
    }
}

//判断svg元素是否被选中
function select_is(id) {
    var src  = $(id)[0].src;
    if(src.substr(src.length - 13, 13) == "_selected.svg"){
        return true;
    }
    return false;
}

//svg元素选择器
function set_img_select(id, select){
    var src  = $(id)[0].src;
    if(select == true && select_is(id) == false){
        $(id).attr("class", "img selected");
        $(id).attr("src", src.substr(0, src.length - 4)  + "_selected.svg");
        return true;
    }
    else if(select == false && select_is(id) == true){
        $(id).attr("class", "img");
        $(id).attr("src", src.substr(0, src.length - 13) + ".svg");
        return true;
    }
    return false;
}

//时差计算
// $.extend({
//     // 将json格式时间转换为Date()
//     jsonStrToDate: function (JsonStr) {
//         var _Date = new Date(parseInt(JsonStr.replace("/Date(","").replace(")/", ""), 10));
//         return _Date;
//     },
//     // 时间差 毫秒
//     dateDiff_MS: function (begindate, enddate) {
//         // 时间格式化
//         var _begindate = Date.parse(new Date(begindate.toString().replace(/-/g, "/")));
//         var _enddate = Date.parse(new Date(enddate.toString().replace(/-/g, "/")));
//         // 计算时间差
//         var _MS = _begindate - _enddate;
//         return _MS;
//     },
//     // 时间差 秒
//     dateDiff_Second: function (begindate, enddate) {
//         // 获取时间差
//         var _MS = $.dateDiff_MS(begindate, enddate);
//         // 转换为秒钟
//         var _Second = Math.ceil(_MS / 1000);
//         return _Second;
//     },
//     // 时间差 分钟
//     dateDiff_Minute: function (begindate, enddate) {
//         // 获取时间差
//         var _MS = $.dateDiff_MS(begindate, enddate);
//         // 转换为分钟
//         var _Second = Math.round(_MS / (60 * 1000));
//         return _Second;
//     },
//     // 时间差 小时
//     dateDiff_Hour: function (begindate, enddate) {
//         // 获取时间差
//         var _MS = $.dateDiff_MS(begindate, enddate);
//         // 转换为分钟
//         var _Hour = Math.round(_MS / (60 * 60 * 1000));
//         return _Hour;
//     },
//     // 时间差 天
//     dateDiff_Day: function (begindate, enddate) {
//         // 获取时间差
//         var _MS = $.dateDiff_MS(begindate, enddate);
//         // 转换为分钟
//         var _Day = Math.round(_MS / (24 * 60 * 60 * 1000));
//         return _Day;
//     }
// });

//数字前面补0
function PrefixInteger(num, length) {return ( "0000000000000000" + num ).substr( -length );}




//串口通信封装
    function serial_comm(number, str, TaktTime, OverTime, RxdByteSum) {
        var Delay = OverTime;
        var back_value = {sta:"busy", val:""}
        var userAgent = myBrowser().indexOf("WOW64");
        if(userAgent >= 0 && JsObj.getSerialIsOpen(number) != "True"){//判断串口有没有打开
            back_value.val = "";
            back_value.sta = "NotOpenSerial";//layer.msg(JsObj.getSerialIsOpen(number).toString());
        }
        else {
            while (Delay--){
                var json = null;
                if(userAgent >= 0){
                    json = JSON.parse(JsObj.getSerialComm(number, str + "\r\n", TaktTime, OverTime, RxdByteSum, "String"));
                }
                else{
                    json = {cmd:"", RxdState:"ok", rxd_dat : "1"};
                }
                if(json.cmd != ""){//上次的通信还未结束
                    back_value.val = "";
                    back_value.sta = "NotOver";
                }else if(json.RxdState.substr(0,6) == "Error:"){//通信应答出错了
                    back_value.val = json.RxdState;
                    back_value.sta = "Error";
                    break;
                }
                else if(json.RxdState == "ok"){//通信应答正确,返回数据
                    back_value.val = json.rxd_dat;
                    back_value.sta = "ok";
                    break;
                }
                var startTime = new Date().getTime() + parseInt(1, 10); while(new Date().getTime() < startTime) {}//延时1ms
            }
            if(RxdByteSum == 0){var startTime = new Date().getTime() + parseInt(OverTime, 10); while(new Date().getTime() < startTime) {}} //延时
        }//layer.msg(json.RxdState);
        return back_value;
    }






//图表显示封装
function eEhart(id, title, set_series, sum) {
    $(id).empty();
    $(id).css("left", $(id).data("left"));
    $(id).css("width", $(id).data("width"));
    $(id).css("height", $(id).data("height"));
    $(id).css("margin-top", $(id).data("top"));
    $(id).css("background-color", "#ffffff");
    this.id = id.substr(1, id.length - 1);
    this.echart = echarts.init(document.getElementById(this.id));

    this.chart_select = 0;
    var option_temp = {
        title: {
            text: title
        },
        tooltip: {
            trigger: 'axis',
            // backgroundColor: "#FF0000",
        },
        legend: {
            data:[],
            selected:{}
        },
        xAxis: {
            type: 'category',
            boundaryGap: false,
            data: [],
            axisLine: {onZero: false}
        },
        yAxis: {
            type: 'value',
            axisLine: {onZero: false}
        },
        series: [
        ],
        dataZoom: [
            {
                end:100,
                start:50,
                type: 'slider',
                xAxisIndex: 0,
                filterMode: 'empty'
            },
            {
                type: 'slider',
                yAxisIndex: 0,
                filterMode: 'empty'
            },
        ]
    };

    for(var i=0; i<set_series.length; i++){
        var my_seriel = {};
        my_seriel.id = "id_" + set_series[i].name;
        my_seriel.data = [];
        my_seriel.type = "line";
        my_seriel.smooth = true;
        my_seriel.name = set_series[i].name;
        option_temp.series.push(my_seriel);
        option_temp.legend.data.push(set_series[i].name);
        option_temp.legend.selected[set_series[i].name] = true;
    }
    this.option_data = [];
    for(var i=0; i<sum; i++){
        this.option_data.push(JSON.parse(JSON.stringify(option_temp)));
    }
    this.echart.setOption(this.option_data[0]);

    this.add_data =  function(select, num, data) {
        var flag = 0;
        //this.chart_select = select;
        if(this.option_data[select].series.length > 1){
            for(var i=0; i<this.option_data[select].series.length-1; i++) {
                if(this.option_data[select].series[i].data.length != this.option_data[select].series[i+1].data.length){
                    flag = 1;
                }
            }
        }
        if(flag == 0){
            var myDate = new Date;
            var time = PrefixInteger(myDate.getHours(), 2) + ":" + PrefixInteger(myDate.getMinutes(), 2) + ":" + PrefixInteger(myDate.getSeconds(), 2);
            this.option_data[select].xAxis.data.push(time);
        }
        if(this.option_data[select].series[num].data.length < this.option_data[select].xAxis.data.length){
            this.option_data[select].series[num].data.push(data);
            this.option_data[this.chart_select].legend = this.echart.getOption().legend;
        }

        if(this.option_data[select].xAxis.data.length > 5000){
            this.option_data[select].xAxis.data.splice(0,1);
            for(var i=0; i<this.option_data[select].series.length; i++){
                if(this.option_data[select].series[i].data.length > 5000){this.option_data[select].series[i].data.splice(0,1);}
            }
        }
        if(this.option_data[select].series.length == num + 1){
            for(var i=0; i < num; i++){
                if(this.option_data[select].series[i].data.length > this.option_data[select].series[i+1].data.length){
                    this.option_data[select].series[i].data.splice(this.option_data[select].series[i+1].data.legend - 1, 1);
                }
            }
        }

        if(this.chart_select == select && this.option_data[this.chart_select].dataZoom[0].end == 100){
            this.echart.setOption(this.option_data[select]);
        }
        // let tstr = ""
        // for(var i=0; i<this.option_data[select].series.length; i++) {
        //     tstr += "row" + i + " = " + this.option_data[select].series[i].data.length + "\r\n";
        // }
        // layer.msg(tstr);
    }


    // $(id).append('<div id="div_colpick_show"></div>')
    // this.echart.on('click', function (params) {
    //     const box = document.querySelector("#div_colpick_show");
    //     $(box).colpick({
    //         flat: false,
    //         layout: 'full',
    //         submit: true,
    //         width: 500,
    //         colorScheme: 'dark',
    //         onSubmit: (hsb, hex, rgb, el, bySetColor) => {
    //             layer.msg(hex);
    //             $(box).colpickHide();
    //         }
    //     }); // 初始化
    //     $(box).colpickShow(); // 显示
    // });


    //曲线颜色
    // var b = Colorpicker.create({
    //     el: "Button_CurveColor",
    //     color: $("#Input_CurveColor_input").val(),
    //     change: function (elem, hex) {
    //         $('#Input_CurveColor_input').val(hex);
    //         $('#box_CurveColor_div').css("backgroundColor", hex);
    //         chart.option_data.series[0].color = $("#Input_CurveColor_input").val();
    //         chart.echart.setOption(chart.option_data);
    //         // $("#Input_CurveColor_input").trigger("change");//触发事件
    //     }
    // });
    // this.option_data.series[0].color = $("#Input_CurveColor_input").val();

}











