

jQuery.support.cors = true

next = false;

function showResult(data){next=true;}

//指定电脑端的输出口
function openport(){
	//同步访问command接口的openport路径打开端口号？
	$.ajax({			
		url:"http://localhost:8999/openport",
		async:false,//同步		
		type: "get",
		success:function(data){},
		error:function(data){}	
	});
}
//给打印机发送指令
function sendcommand(comm){	
	$.ajax({			
		url:"http://localhost:8999/sendcommand/"+comm,
		async:false,		
		type: "get",
		success:function(data){},
		error:function(data){}
	})
}

//关闭打印机端口
function closeport(){	
	$.ajax({			
		url:"http://localhost:8999/closeport",
		async:false,		
		type: "get",
		success:function(data){},
		error:function(data){}		
	})	
}

//设定纸张不回吐。
function nobackfeed(){	
	$.ajax({	
		url:"http://localhost:8999/nobackfeed",
		async:false,		
		type: "get",
		success:function(data){
			//alert(data.result);
		},
		error:function(data){
			//alert("fail");
		}
	})

	nextStep();
}
//清除缓存
function clearbuffer(){		
	$.ajax({	
		url:"http://localhost:8999/clearbuffer",
		async:false,		
		type: "get",
		success:function(data){},
		error:function(data){}		
	})
	nextStep();	
}
//设定打印方向和是否镜像
function direction(direction, mirror){		
	$.ajax({	
		url:"http://localhost:8999/direction/"+direction+"/"+mirror,
		async:false,		
		type: "get",
		success:function(data){},
		error:function(data){}	
	})	
}

//打印标签内容
function printlabel(){	
	$.ajax({	
		url:"http://localhost:8999/printlabel",
		async:false,		
		type: "get",
		success:function(data){
			
			//alert(data.result);
		},
		error:function(data){
			
			//alert("fail");
		}		
	})
}


//文字打印    使用Windows TTF字体打印文字。
/*参数：
x：整数类型，文字X方向起始点，以点表示。
y：整数类型，文字Y方向起始点，以点表示。
height：整数类型，字体高度，以点表示。
rotation：整数类型，旋转角度，逆时针方向旋转。0-旋转0°，90-旋转90°，180-旋转180°，270-旋转270°。
shape：整数类型，字体外形。0：标签；1：斜体；2：粗体；3：粗斜体。
underline：整数类型，下划线，0：无下划线；1：加下划线。
fontname：字符串类型，字体名称。如：Arial，Times new Roman。
content：字符串类型，打印文字内容。*/
function windowsfont(x,y,height,rotation,shape,
		underline,fontname,content){	
	$.ajax({			
		url:encodeURI("http://localhost:8999/windowsfont/"+x+"/"+y+"/"
				+height+"/"+rotation+"/"+shape+"/"+underline+"/"
				+ fontname + "/" + content).replace(/&/g, '%26').replace(/\+/g, '%2B').replace(/\s/g, '%20').replace(/#/g, '%23'),
		async:false,		
		type: "get",
		success:function(data){},
		error:function(data){}	
	})
}

//设定标签的宽度、高度、打印速度、打印浓度、感应器类别、Gap/Black mark垂直间距、Gap/Black mark偏移距离
/*参数：
labelWidth：字符串类型，设定标签宽度，单位mm。
labelHeight：字符串类型，设定标签高度，单位mm。
speed：字符串类型，设定打印速度（打印速度随机型不同而有不同的选项），1.0-每秒1.0英寸打印速度，1.5-每秒1.5英寸打印速度，2.0-每秒2.0英寸打印速度，3.0-每秒3.0英寸打印速度，4.0-每秒4.0英寸打印速度，6.0-每秒6.0英寸打印速度，8.0-每秒8.0英寸打印速度，10.0-每秒10.0英寸打印速度。
density：字符串类型，设定打印浓度，0-15，数字越大打印结果越黑。
gapOrBlack：字符串类型，设定使用感应器类别，0-表示垂直间距感测器（Gap），1-表示使用黑标感测器。
distance：字符串类型，设定Gap/Black mark垂直间距高度，单位mm。
offset：字符串类型，设定Gap/Black mark偏移距离，单位mm，此参数若使用一般标签时均设为0。*/
function setup(labelWidth,labelHeight, speed, density, gapOrBlack,
		distance, offset){	
	
	$.ajax({			
		url:"http://localhost:8999/setup/"+labelWidth+"/"+labelHeight+"/"
				+speed+"/"+density+"/"+gapOrBlack+"/"+distance+"/"
				+offset,
		async:false,		
		type: "get",
		success:function(data){
			//alert(data.result);
		},
		error:function(data){
			
			//alert("fail");
		}		
	})

	
}

//使用条码机内部条码打印。
function barcode(x, y,codeType, height,humanReadble,rotation,
		narrow, wide, content){
	
	$.ajax({			
		url:"http://localhost:8999/barcode/"+x+"/"+y+"/"
				+codeType+"/"+height+"/"+humanReadble+"/"+rotation+"/"
				+narrow+"/"+wide+"/"+content,
		async:false,		
		type: "get",
		success:function(data){
				//alert(data.result);
		},
		error:function(data){
				//alert("fail");
		}	
	})
	
}


//发送绘制矩形指令BOX
function box(x_start, y_start, x_end, y_end, lineThick){	
	
	$.ajax({			
		url:"http://localhost:8999/box/"+x_start+"/"+y_start+"/"
				+x_end+"/"+y_end+"/"+lineThick,
		async:false,		
		type: "get",
		success:function(data){
			//alert(data.result);
		},
		error:function(data){
				//alert("fail");
		}	
	})
	
}


function circle(x, y, diameter, lineThick){		
	$.ajax({			
		url:"http://localhost:8999/circle/"+x+"/"+y+"/"
				+diameter+"/"+lineThick,
		async:false,		
		type: "get",
		success:function(data){},
		error:function(data){}	
	})	
}

//下载单色PCX格式图档到打印机。
function downloadpcx(src, dest){	
	
	$.ajax({			
		url:"http://localhost:8999/downloadpcx/"+src+"/"+dest,
		async:false,		
		type: "get",
		success:function(data){
			
			//alert(data.result);
		},
		error:function(data){
			
			//alert("fail");
		}		
	})
	
}

function putpcx(x,  y, filename){	
	
	$.ajax({			
		url:"http://localhost:8999/putpcx/"+x+"/"+y+"/"
				+filename,
		async:false,		
		type: "get",
		success:function(data){
			
			//alert(data.result);
		},
		error:function(data){
		}		
	})

	nextStep();
	
}

function nextStep(){
	
	var j=0;
	for(var i=0; i< 50000; i++){
		
		if(next){
			
			break;
		}
		
		
	}	
	next=false;	
}

//打印条码
function printBarCode(CPN, QTY, UNIT, VENDOR, DC, PO, LOT, Manufacture, MPN, VER, printContents, loc, MSL, mark, BarcodeNo, outsideBarcodeSerialNumber, LableHeight, LableWidth,ORIGIN) {
	console.log("300",arguments)
    if (LableHeight != 'null' && LableHeight != '' && LableHeight != null) {
        LableHeight = LableHeight;
    } else {
        LableHeight = "40";
    }

    if (LableWidth != 'null' && LableWidth != '' && LableWidth != null) {
        LableWidth = LableWidth;
    } else {
        LableWidth = "80";
    }

    var font = "Arial";//文字样式
    var barCodeCode = "128";//字符集属性设定
	//单位 mm
    var labelWidth = LableWidth;//条码长度6cm
    var labelHeight = LableHeight;//条码宽度2.2cm

    var mtlSnSnQRH = 0;
    if (labelHeight <= 40) {
        mtlSnSnQRH = 80;//全局高度
    } else {
        mtlSnSnQRH = (labelHeight - 40) / 2 * 12 + 50;//全局高度
    }

    var mtlSnSnH = 0;
    if (labelHeight <= 40) {
        mtlSnSnH = 70;//全局高度
    } else {
        mtlSnSnH = (labelHeight - 40) / 2 * 12 + 35;//全局高度
    }
    
    // 38  30
    var fontH = 45;

    var QRx1 = 0;
    if (labelWidth <= 80) {
        QRx1 = 40;//全局高度
    } else {
        QRx1 = (labelWidth - 80) / 2 * 12 - 10;//全局高度
    }
     
    var x1 = 0;
    if (labelWidth <= 80) {
        x1 = 50;//全局高度
    } else {
        x1 = (labelWidth - 80) / 2 * 12;//全局高度
    }

    var shape = 2;//字体外形
		
	openport();//打开端口
	
	//设定标签的宽度、高度、打印速度、打印浓度、感应器类别、Gap/Black mark垂直间距、Gap/Black mark偏移距离
    setup(labelWidth, labelHeight, "6", "10", "0", "2", "0");  
  
    sendcommand("SET TEAR ON");  //发送内建指令到条码打印机。//SET TEAR ON是否将撕纸位置移动到撕纸处
    clearbuffer();   //清除缓存
    
    direction(1, 0);//设定打印方向和是否镜像
    sendcommand("QRCODE " + QRx1 + "," + mtlSnSnQRH + ",L,8,A,0,M2,S3,\"" + printContents.replace(/&/g, '%26').replace(/\+/g, '%2B').replace(/\//g, '%2F').replace(/\s/g, '%20').replace(/#/g, '%23') + "\"");  //送内建指令到条码打印机。
    
    var mtlSnSnFontY = mtlSnSnH;
    windowsfont(x1 + 350, mtlSnSnFontY  -45, fontH - 4, 0, shape, 0, font, "CPN: "+CPN);
    
    windowsfont(x1 + 350, mtlSnSnFontY, fontH - 4, 0, shape, 0, font, "QTY: " + QTY);

	windowsfont(x1 + 625, mtlSnSnFontY, fontH - 4, 0, shape, 0, font, outsideBarcodeSerialNumber);

    windowsfont(x1 + 350, mtlSnSnFontY + 45, fontH - 4, 0, shape, 0, font, "UNIT: " + UNIT);

    windowsfont(x1 + 350, mtlSnSnFontY + 90, fontH - 4, 0, shape, 0, font, "VENDOR: " + VENDOR);

    windowsfont(x1 + 350, mtlSnSnFontY + 135, fontH - 4, 0, shape, 0, font, "DC: " + DC);

    windowsfont(x1 + 350, mtlSnSnFontY + 180, fontH - 4, 0, shape, 0, font, "PO: " + PO);

    windowsfont(x1 + 350, mtlSnSnFontY + 225, fontH - 4, 0, shape, 0, font, "LOT: " + LOT);
    
    windowsfont(x1 + 350, mtlSnSnFontY + 270, fontH - 4, 0, shape, 0, font, "Manufacture: " + Manufacture);

    windowsfont(x1 + 350, mtlSnSnFontY + 315, fontH - 4, 0, shape, 0, font, "MPN: " + MPN);

	if (ORIGIN != 'null' && ORIGIN != '' && ORIGIN != null) {
		windowsfont(x1 + 325, mtlSnSnFontY + 360, fontH - 4, 0, shape, 0, font, "ORIGIN: " + ORIGIN);
	} else {
		windowsfont(x1 + 400, mtlSnSnFontY + 360, fontH - 4, 0, shape, 0, font, "VER: " + VER);
	}



    if (loc != 'null' && loc != '' && loc != null) {
        windowsfont(40, mtlSnSnFontY + 360, fontH - 4, 0, shape, 0, font, loc);
    }

    windowsfont(x1 - 50, mtlSnSnFontY - 45, fontH - 4, 0, shape, 0, font, BarcodeNo);

    if (MSL == '/') {
        MSL = "无";
    }

    if (MSL != 'null' && MSL != '' && MSL != null) {
        windowsfont(x1 + 650, mtlSnSnFontY + 360, fontH - 4, 0, shape, 0, font, "MSL: " + MSL);
    } else {
        windowsfont(x1 + 650, mtlSnSnFontY + 360, fontH - 4, 0, shape, 0, font, "MSL: 无");
    }
    
    if (mark != 'null' && mark != '' && mark != null) {
        windowsfont(x1 + 780, mtlSnSnFontY + 30, fontH + 2, 0, shape, 0, font, "|");
        windowsfont(x1 + 785, mtlSnSnFontY + 10, fontH, 0, shape, 0, font, "—");
        windowsfont(x1 + 817, mtlSnSnFontY + 30, fontH + 2, 0, shape, 0, font, "|");
        windowsfont(x1 + 785, mtlSnSnFontY + 52, fontH, 0, shape, 0, font, "—");
        windowsfont(x1 + 787, mtlSnSnFontY + 40, fontH - 8, 0, shape, 0, font, mark);
    }

	windowsfont(x1 + 760, mtlSnSnFontY + 135, fontH - 5, 0, shape, 0, font, "RoHS");
 
    printlabel();  		//打印标签内容
    
    closeport();		//关闭指定的电脑端输出口
    
}



