function Lu_ArcToDeg(i){ var a=i*180.0/Math.PI; return a; } function Lu_DegToArc(i){ var a=i*Math.PI/180.0; return a; } function Lu_IntToByte(i) { var b = i & 0x000000FF; return b; } function Lu_StrToByte(str){ var p=Lu_IntToByte(parseInt(str)); return p; } //无符int转有符int function UInt32toInt32(i) { if (i <= 2147483647) return i; else return i - 4294967296 } function Int32toUInt32(i){ if (i >= 0) return i; else 4294967296 + i; } function UInt162Int16(i){ if(i<=32767)return i; else return i - 65536; } function Lu_Convert2ByteToInt16(byteHigh,byteLow){ value= ((byteHigh << 8) & 0xFF00) | (byteLow & 0x00FF); return UInt162Int16(value); } function Lu_Convert4ByteToUInt32(byte3,byte2,byte1,byte0){ value= ((byte3 << 24) & 0xFF000000) | ((byte2 << 16) & 0x00FF0000) | ((byte1 << 8) & 0x0000FF00) | ((byte0 ) & 0x000000FF) ; return Int32toUInt32(value); } function Lu_Convert4ByteToInt32(byte3,byte2,byte1,byte0){ value= ((byte3 << 24) & 0xFF000000) | ((byte2 << 16) & 0x00FF0000) | ((byte1 << 8) & 0x0000FF00) | ((byte0 ) & 0x000000FF) ; return value; } function Lu_Normal_Deg(MinDeg,MaxDeg,Deg){ //console.log(MinDeg+" "+MaxDeg+" "+Deg); var R_Deg=0.0; while(DegMaxDeg){ Deg=Deg-360.0; } R_Deg=Deg; return R_Deg; } function Lu_Get_Dist(x1,y1,x2,y2){ var dist=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); return dist; } function Lu_GetNextPoint_By_xs_ys_dirdeg(xs,ys,dir_deg,dist){ var dir_arc=dir_deg*Math.PI/180; var xe=xs+dist*Math.cos(dir_arc); var ye=ys+dist*Math.sin(dir_arc); var obj = new Object(); obj.x=xe; obj.y=ye; return obj; } function Lu_ORILocalPoint2GlobalPoint(ori_rx,ori_ry,ori_rt_deg,lx,ly){ var obj=new Object(); var arc=ori_rt_deg*Math.PI/180; obj.x=ori_rx+lx*Math.cos(arc)-ly*Math.sin(arc); obj.y=ori_ry+ly*Math.cos(arc)+lx*Math.sin(arc); return obj; } function Lu_DRPLocalPoint2GlobalPoint(ori_rx,ori_ry,ori_rt_deg,DRP_Dist_m,DRP_Angle_deg){ var arc=DRP_Angle_deg*Math.PI/180.0; var lx_m=DRP_Dist_m*Math.cos(arc); var ly_m=DRP_Dist_m*Math.sin(arc); return Lu_ORILocalPoint2GlobalPoint(ori_rx,ori_ry,ori_rt_deg,lx_m,ly_m); } function Lu_Judge_StartToEnd_SpeedDirection(sp_x,sp_y,ep_x,ep_y,ep_thetax_deg){ var RunVector_x=ep_x-sp_x; var RunVector_y=ep_y-sp_y; var arc = Lu_DegToArc(ep_thetax_deg+90); var CarVector_x=Math.cos(arc); var CarVector_y=Math.sin(arc); var a=RunVector_x*CarVector_x+RunVector_y*CarVector_y; if(a>=0)return 1; else return -1; } function Lu_GetBezier_SP_Next_Point(sp_x,sp_y,sp_thetax_deg,Direction,Slider3,Slider1){ var max_dist=Slider3/100.0*10.0; var dist=max_dist*Slider1/100.0; if(dist<0.3)dist=0.3; if(Direction=="Front"){ return Lu_GetNextPoint_By_xs_ys_dirdeg(sp_x,sp_y,sp_thetax_deg+90.0,dist); } else{ return Lu_GetNextPoint_By_xs_ys_dirdeg(sp_x,sp_y,sp_thetax_deg-90.0,dist); } } function Lu_GetBezier_EP_Last_Point(ep_x,ep_y,ep_thetax_deg,Direction,Slider3,Slider2){ var max_dist=Slider3/100.0*10.0; var dist=max_dist*Slider2/100.0; if(dist<0.3)dist=0.3; if(Direction=="Front"){ return Lu_GetNextPoint_By_xs_ys_dirdeg(ep_x,ep_y,ep_thetax_deg-90.0,dist); } else{ return Lu_GetNextPoint_By_xs_ys_dirdeg(ep_x,ep_y,ep_thetax_deg+90.0,dist); } } function factorial(num){ if (num <= 1) { return 1; } else { var r = 1; for (let i = 1; i <= num; i++) { r = r * i; } //console.log("factorial num:"+num+"="+r); return r; // return num * factorial(num - 1); } } //补位 当某个字段不是两位数时补0 function fnW(str){ var num; str>=10?num=str:num="0"+str; return num; } function fnDate(){ var date=new Date(); var year=date.getFullYear();//当前年份 var month=date.getMonth();//当前月份 var data=date.getDate();//天 var hours=date.getHours();//小时 var minute=date.getMinutes();//分 var second=date.getSeconds();//秒 var time=year+"-"+fnW((month+1))+"-"+fnW(data)+" "+fnW(hours)+":"+fnW(minute)+":"+fnW(second); return time; } function sleep(time) { return new Promise(resolve => setTimeout(resolve, time)); }