nx_face_feature_diag_t368.nx source
↩ module page · 35 lines · 1733 B
1// nx_face_feature_diag_t368.nx -- second-stage native diagnosis for face feature gate.
2import "nx_syscalls.nx"
3import "nx_gatekit_lib.nx"
4import "nx_faceanat.nx"
5import "nx_sdfrender.nx"
6const D_FIELDS2: i64 = 11
7const D_LEFT2: i64 = 0 - 1
8const D_RIGHT2: i64 = 1
9const D_ASCII02: i64 = 48
10const D_MINUS2: i64 = 45
11const D_NL2: i64 = 10
12func dnum2(tag: *u8, v: i64) -> i64 {
13 let b: *u8=sys_mmap(96); let d: *u8=sys_mmap(64); var n:i64=0; var x:i64=v
14 if x<0 { b[n]=D_MINUS2; n=n+1; x=0-x }; var m:i64=0
15 if x==0 { d[m]=D_ASCII02; m=m+1 }
16 while x>0 { let q:i64=x/10; d[m]=D_ASCII02+(x-q*10); m=m+1; x=q }
17 while m>0 { m=m-1; b[n]=d[m]; n=n+1 }; b[n]=D_NL2; n=n+1
18 sys_write(1,tag,gk_len(tag)); sys_write(1,b,n); return 0
19}
20func main(argc:i64, argv:*i64)->i64 {
21 let b:i64=sys_mmap(sdf_bytes()) as i64
22 dnum2("build1=",faceanat_build(b))
23 let o:*i64=sys_mmap(FA_PF_O_FIELDS*8+FA_LIP_SLACK) as *i64
24 dnum2("left1=",fa_palpebral_fissure(b,D_LEFT2,o)); dnum2("left1_reason=",o[FA_PF_O_REASON])
25 let r:*i64=sys_mmap(6*8) as *i64
26 r[0]=50; r[1]=100; r[2]=100; r[3]=581; r[4]=0; r[5]=0
27 dnum2("genes=",faceanat_eye_genes(b,r))
28 dnum2("left_after_genes=",fa_palpebral_fissure(b,D_LEFT2,o)); dnum2("left_after_reason=",o[FA_PF_O_REASON])
29 dnum2("rebuild2=",faceanat_build(b))
30 dnum2("left2=",fa_palpebral_fissure(b,D_LEFT2,o)); dnum2("left2_reason=",o[FA_PF_O_REASON]); dnum2("left2_med=",o[FA_PF_O_MED_Y]); dnum2("left2_lat=",o[FA_PF_O_LAT_Y])
31 dnum2("right2=",fa_palpebral_fissure(b,D_RIGHT2,o)); dnum2("right2_reason=",o[FA_PF_O_REASON])
32 let lip:*i64=sys_mmap(FA_LIP_O_FIELDS*8+FA_LIP_SLACK) as *i64
33 dnum2("lip2=",fa_lip_ratio(b,lip)); dnum2("lip2_reason=",lip[FA_LIP_O_REASON]); dnum2("lip2_upper=",lip[FA_LIP_O_UPPER_H])
34 return 0
35}