New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" standalone="yes"?> |
| | | <!-- Copyright (c) Microsoft Corporation. All rights reserved. --> |
| | | <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> |
| | | <noInheritable/> |
| | | <assemblyIdentity |
| | | type="win32" |
| | | name="Microsoft.VC90.CRT" |
| | | version="9.0.21022.8" |
| | | processorArchitecture="x86" |
| | | publicKeyToken="1fc8b3b9a1e18e3b" |
| | | /> |
| | | <file name="msvcr90.dll" /> <file name="msvcp90.dll" /> <file name="msvcm90.dll" /> |
| | | </assembly> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" standalone="yes"?> |
| | | <!-- Copyright (c) Microsoft Corporation. All rights reserved. --> |
| | | <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> |
| | | <noInheritable/> |
| | | <assemblyIdentity |
| | | type="win32" |
| | | name="Microsoft.VC90.MFC" |
| | | version="9.0.21022.8" |
| | | processorArchitecture="x86" |
| | | publicKeyToken="1fc8b3b9a1e18e3b" |
| | | /> |
| | | <file name="mfc90.dll" /> <file name="mfc90u.dll" /> <file name="mfcm90.dll" /> <file name="mfcm90u.dll" /> |
| | | </assembly> |
New file |
| | |
| | | // |
| | | // Generated by NVIDIA NVVM Compiler |
| | | // Compiler built on Fri Jul 25 19:36:16 2014 (1406288176) |
| | | // Cuda compilation tools, release 6.5, V6.5.13 |
| | | // |
| | | |
| | | .version 4.1 |
| | | .target sm_30 |
| | | .address_size 64 |
| | | |
| | | .const .align 4 .u32 constAlpha; |
| | | .const .align 4 .b8 constHueColorSpaceMat[36]; |
| | | |
| | | .visible .func _Z7YUV2RGBPjPfS0_S0_( |
| | | .param .b64 _Z7YUV2RGBPjPfS0_S0__param_0, |
| | | .param .b64 _Z7YUV2RGBPjPfS0_S0__param_1, |
| | | .param .b64 _Z7YUV2RGBPjPfS0_S0__param_2, |
| | | .param .b64 _Z7YUV2RGBPjPfS0_S0__param_3 |
| | | ) |
| | | { |
| | | .reg .s32 %r<4>; |
| | | .reg .f32 %f<24>; |
| | | .reg .s64 %rd<5>; |
| | | |
| | | |
| | | ld.param.u64 %rd1, [_Z7YUV2RGBPjPfS0_S0__param_0]; |
| | | ld.param.u64 %rd2, [_Z7YUV2RGBPjPfS0_S0__param_1]; |
| | | ld.param.u64 %rd3, [_Z7YUV2RGBPjPfS0_S0__param_2]; |
| | | ld.param.u64 %rd4, [_Z7YUV2RGBPjPfS0_S0__param_3]; |
| | | ld.u32 %r1, [%rd1]; |
| | | cvt.rn.f32.u32 %f1, %r1; |
| | | ld.u32 %r2, [%rd1+4]; |
| | | cvt.rn.f32.s32 %f2, %r2; |
| | | add.f32 %f3, %f2, 0fC4000000; |
| | | ld.u32 %r3, [%rd1+8]; |
| | | cvt.rn.f32.s32 %f4, %r3; |
| | | add.f32 %f5, %f4, 0fC4000000; |
| | | ld.const.f32 %f6, [constHueColorSpaceMat]; |
| | | ld.const.f32 %f7, [constHueColorSpaceMat+4]; |
| | | mul.f32 %f8, %f3, %f7; |
| | | fma.rn.f32 %f9, %f1, %f6, %f8; |
| | | ld.const.f32 %f10, [constHueColorSpaceMat+8]; |
| | | fma.rn.f32 %f11, %f5, %f10, %f9; |
| | | st.f32 [%rd2], %f11; |
| | | ld.const.f32 %f12, [constHueColorSpaceMat+12]; |
| | | ld.const.f32 %f13, [constHueColorSpaceMat+16]; |
| | | mul.f32 %f14, %f3, %f13; |
| | | fma.rn.f32 %f15, %f1, %f12, %f14; |
| | | ld.const.f32 %f16, [constHueColorSpaceMat+20]; |
| | | fma.rn.f32 %f17, %f5, %f16, %f15; |
| | | st.f32 [%rd3], %f17; |
| | | ld.const.f32 %f18, [constHueColorSpaceMat+24]; |
| | | ld.const.f32 %f19, [constHueColorSpaceMat+28]; |
| | | mul.f32 %f20, %f3, %f19; |
| | | fma.rn.f32 %f21, %f1, %f18, %f20; |
| | | ld.const.f32 %f22, [constHueColorSpaceMat+32]; |
| | | fma.rn.f32 %f23, %f5, %f22, %f21; |
| | | st.f32 [%rd4], %f23; |
| | | ret; |
| | | } |
| | | |
| | | .visible .func (.param .b32 func_retval0) _Z13RGBAPACK_8bitfffj( |
| | | .param .b32 _Z13RGBAPACK_8bitfffj_param_0, |
| | | .param .b32 _Z13RGBAPACK_8bitfffj_param_1, |
| | | .param .b32 _Z13RGBAPACK_8bitfffj_param_2, |
| | | .param .b32 _Z13RGBAPACK_8bitfffj_param_3 |
| | | ) |
| | | { |
| | | .reg .s32 %r<10>; |
| | | .reg .f32 %f<12>; |
| | | |
| | | |
| | | ld.param.f32 %f1, [_Z13RGBAPACK_8bitfffj_param_0]; |
| | | ld.param.f32 %f2, [_Z13RGBAPACK_8bitfffj_param_1]; |
| | | ld.param.f32 %f3, [_Z13RGBAPACK_8bitfffj_param_2]; |
| | | ld.param.u32 %r1, [_Z13RGBAPACK_8bitfffj_param_3]; |
| | | mov.f32 %f4, 0f00000000; |
| | | max.f32 %f5, %f1, %f4; |
| | | mov.f32 %f6, 0f437F0000; |
| | | min.f32 %f7, %f5, %f6; |
| | | max.f32 %f8, %f2, %f4; |
| | | min.f32 %f9, %f8, %f6; |
| | | max.f32 %f10, %f3, %f4; |
| | | min.f32 %f11, %f10, %f6; |
| | | cvt.rzi.u32.f32 %r2, %f11; |
| | | cvt.rzi.u32.f32 %r3, %f9; |
| | | shl.b32 %r4, %r3, 8; |
| | | cvt.rzi.u32.f32 %r5, %f7; |
| | | shl.b32 %r6, %r5, 16; |
| | | or.b32 %r7, %r2, %r1; |
| | | or.b32 %r8, %r7, %r4; |
| | | or.b32 %r9, %r8, %r6; |
| | | st.param.b32 [func_retval0+0], %r9; |
| | | ret; |
| | | } |
| | | |
| | | .visible .func (.param .b32 func_retval0) _Z14RGBAPACK_10bitfffj( |
| | | .param .b32 _Z14RGBAPACK_10bitfffj_param_0, |
| | | .param .b32 _Z14RGBAPACK_10bitfffj_param_1, |
| | | .param .b32 _Z14RGBAPACK_10bitfffj_param_2, |
| | | .param .b32 _Z14RGBAPACK_10bitfffj_param_3 |
| | | ) |
| | | { |
| | | .reg .s32 %r<13>; |
| | | .reg .f32 %f<12>; |
| | | |
| | | |
| | | ld.param.f32 %f1, [_Z14RGBAPACK_10bitfffj_param_0]; |
| | | ld.param.f32 %f2, [_Z14RGBAPACK_10bitfffj_param_1]; |
| | | ld.param.f32 %f3, [_Z14RGBAPACK_10bitfffj_param_2]; |
| | | ld.param.u32 %r1, [_Z14RGBAPACK_10bitfffj_param_3]; |
| | | mov.f32 %f4, 0f00000000; |
| | | max.f32 %f5, %f1, %f4; |
| | | mov.f32 %f6, 0f447FC000; |
| | | min.f32 %f7, %f5, %f6; |
| | | max.f32 %f8, %f2, %f4; |
| | | min.f32 %f9, %f8, %f6; |
| | | max.f32 %f10, %f3, %f4; |
| | | min.f32 %f11, %f10, %f6; |
| | | cvt.rzi.u32.f32 %r2, %f11; |
| | | shr.u32 %r3, %r2, 2; |
| | | cvt.rzi.u32.f32 %r4, %f9; |
| | | shl.b32 %r5, %r4, 6; |
| | | and.b32 %r6, %r5, -256; |
| | | cvt.rzi.u32.f32 %r7, %f7; |
| | | shl.b32 %r8, %r7, 14; |
| | | and.b32 %r9, %r8, -65536; |
| | | or.b32 %r10, %r3, %r1; |
| | | or.b32 %r11, %r10, %r6; |
| | | or.b32 %r12, %r11, %r9; |
| | | st.param.b32 [func_retval0+0], %r12; |
| | | ret; |
| | | } |
| | | |
| | | .visible .entry Passthru_drvapi( |
| | | .param .u64 Passthru_drvapi_param_0, |
| | | .param .u64 Passthru_drvapi_param_1, |
| | | .param .u64 Passthru_drvapi_param_2, |
| | | .param .u64 Passthru_drvapi_param_3, |
| | | .param .u32 Passthru_drvapi_param_4, |
| | | .param .u32 Passthru_drvapi_param_5 |
| | | ) |
| | | { |
| | | .reg .pred %p<4>; |
| | | .reg .s16 %rs<3>; |
| | | .reg .s32 %r<32>; |
| | | .reg .f32 %f<9>; |
| | | .reg .s64 %rd<16>; |
| | | |
| | | |
| | | ld.param.u64 %rd1, [Passthru_drvapi_param_0]; |
| | | ld.param.u64 %rd2, [Passthru_drvapi_param_1]; |
| | | ld.param.u64 %rd3, [Passthru_drvapi_param_2]; |
| | | ld.param.u64 %rd4, [Passthru_drvapi_param_3]; |
| | | ld.param.u32 %r3, [Passthru_drvapi_param_4]; |
| | | ld.param.u32 %r4, [Passthru_drvapi_param_5]; |
| | | mov.u32 %r5, %ctaid.x; |
| | | shl.b32 %r6, %r5, 1; |
| | | mov.u32 %r7, %ntid.x; |
| | | mov.u32 %r8, %tid.x; |
| | | shl.b32 %r9, %r8, 1; |
| | | mad.lo.s32 %r1, %r6, %r7, %r9; |
| | | mov.u32 %r10, %ntid.y; |
| | | mov.u32 %r11, %ctaid.y; |
| | | mov.u32 %r12, %tid.y; |
| | | mad.lo.s32 %r2, %r10, %r11, %r12; |
| | | setp.lt.u32 %p1, %r1, %r3; |
| | | setp.lt.u32 %p2, %r2, %r4; |
| | | and.pred %p3, %p1, %p2; |
| | | @!%p3 bra BB3_2; |
| | | bra.uni BB3_1; |
| | | |
| | | BB3_1: |
| | | cvta.to.global.u64 %rd5, %rd3; |
| | | cvta.to.global.u64 %rd6, %rd1; |
| | | shr.u64 %rd7, %rd4, 2; |
| | | cvt.u32.u64 %r13, %rd7; |
| | | cvt.u32.u64 %r14, %rd2; |
| | | mad.lo.s32 %r15, %r2, %r14, %r1; |
| | | cvt.u64.u32 %rd8, %r15; |
| | | add.s64 %rd9, %rd6, %rd8; |
| | | add.s32 %r16, %r15, 1; |
| | | cvt.u64.u32 %rd10, %r16; |
| | | add.s64 %rd11, %rd6, %rd10; |
| | | ld.global.u8 %rs1, [%rd9]; |
| | | cvt.rn.f32.u16 %f1, %rs1; |
| | | ld.global.u8 %rs2, [%rd11]; |
| | | cvt.rn.f32.u16 %f2, %rs2; |
| | | mov.f32 %f3, 0f00000000; |
| | | max.f32 %f4, %f1, %f3; |
| | | mov.f32 %f5, 0f437F0000; |
| | | min.f32 %f6, %f4, %f5; |
| | | cvt.rzi.u32.f32 %r17, %f6; |
| | | shl.b32 %r18, %r17, 8; |
| | | shl.b32 %r19, %r17, 16; |
| | | ld.const.u32 %r20, [constAlpha]; |
| | | or.b32 %r21, %r17, %r20; |
| | | or.b32 %r22, %r21, %r18; |
| | | or.b32 %r23, %r22, %r19; |
| | | mad.lo.s32 %r24, %r2, %r13, %r1; |
| | | mul.wide.u32 %rd12, %r24, 4; |
| | | add.s64 %rd13, %rd5, %rd12; |
| | | st.global.u32 [%rd13], %r23; |
| | | max.f32 %f7, %f2, %f3; |
| | | min.f32 %f8, %f7, %f5; |
| | | cvt.rzi.u32.f32 %r25, %f8; |
| | | shl.b32 %r26, %r25, 8; |
| | | shl.b32 %r27, %r25, 16; |
| | | or.b32 %r28, %r25, %r20; |
| | | or.b32 %r29, %r28, %r26; |
| | | or.b32 %r30, %r29, %r27; |
| | | add.s32 %r31, %r24, 1; |
| | | mul.wide.u32 %rd14, %r31, 4; |
| | | add.s64 %rd15, %rd5, %rd14; |
| | | st.global.u32 [%rd15], %r30; |
| | | |
| | | BB3_2: |
| | | ret; |
| | | } |
| | | |
| | | .visible .entry NV12ToARGB_drvapi( |
| | | .param .u64 NV12ToARGB_drvapi_param_0, |
| | | .param .u64 NV12ToARGB_drvapi_param_1, |
| | | .param .u64 NV12ToARGB_drvapi_param_2, |
| | | .param .u64 NV12ToARGB_drvapi_param_3, |
| | | .param .u32 NV12ToARGB_drvapi_param_4, |
| | | .param .u32 NV12ToARGB_drvapi_param_5 |
| | | ) |
| | | { |
| | | .reg .pred %p<6>; |
| | | .reg .s32 %r<98>; |
| | | .reg .f32 %f<48>; |
| | | .reg .s64 %rd<24>; |
| | | |
| | | |
| | | ld.param.u64 %rd3, [NV12ToARGB_drvapi_param_0]; |
| | | ld.param.u64 %rd4, [NV12ToARGB_drvapi_param_2]; |
| | | ld.param.u64 %rd5, [NV12ToARGB_drvapi_param_3]; |
| | | ld.param.u32 %r21, [NV12ToARGB_drvapi_param_4]; |
| | | ld.param.u32 %r20, [NV12ToARGB_drvapi_param_5]; |
| | | ld.param.u32 %r1, [NV12ToARGB_drvapi_param_1]; |
| | | mov.u32 %r22, %ctaid.x; |
| | | shl.b32 %r23, %r22, 1; |
| | | mov.u32 %r24, %ntid.x; |
| | | mov.u32 %r25, %tid.x; |
| | | shl.b32 %r26, %r25, 1; |
| | | mad.lo.s32 %r2, %r23, %r24, %r26; |
| | | mov.u32 %r27, %ntid.y; |
| | | mov.u32 %r28, %ctaid.y; |
| | | mov.u32 %r29, %tid.y; |
| | | mad.lo.s32 %r3, %r27, %r28, %r29; |
| | | setp.lt.u32 %p1, %r2, %r21; |
| | | setp.lt.u32 %p2, %r3, %r20; |
| | | and.pred %p3, %p1, %p2; |
| | | @!%p3 bra BB4_7; |
| | | bra.uni BB4_1; |
| | | |
| | | BB4_1: |
| | | cvta.to.global.u64 %rd1, %rd4; |
| | | cvta.to.global.u64 %rd6, %rd3; |
| | | shr.u64 %rd7, %rd5, 2; |
| | | cvt.u32.u64 %r4, %rd7; |
| | | mad.lo.s32 %r30, %r3, %r1, %r2; |
| | | cvt.u64.u32 %rd8, %r30; |
| | | add.s64 %rd9, %rd6, %rd8; |
| | | ld.global.u8 %r31, [%rd9]; |
| | | shl.b32 %r5, %r31, 2; |
| | | add.s32 %r32, %r30, 1; |
| | | cvt.u64.u32 %rd10, %r32; |
| | | add.s64 %rd11, %rd6, %rd10; |
| | | ld.global.u8 %r33, [%rd11]; |
| | | shl.b32 %r6, %r33, 2; |
| | | shr.s32 %r7, %r3, 1; |
| | | add.s32 %r34, %r7, %r20; |
| | | mad.lo.s32 %r35, %r34, %r1, %r2; |
| | | cvt.u64.u32 %rd12, %r35; |
| | | add.s64 %rd13, %rd6, %rd12; |
| | | ld.global.u8 %r94, [%rd13]; |
| | | add.s32 %r36, %r35, 1; |
| | | cvt.u64.u32 %rd14, %r36; |
| | | add.s64 %rd2, %rd6, %rd14; |
| | | and.b32 %r37, %r3, 1; |
| | | setp.eq.b32 %p4, %r37, 1; |
| | | @!%p4 bra BB4_5; |
| | | bra.uni BB4_2; |
| | | |
| | | BB4_2: |
| | | ld.global.u8 %r95, [%rd2]; |
| | | shr.u32 %r38, %r20, 1; |
| | | add.s32 %r39, %r38, -1; |
| | | setp.ge.u32 %p5, %r7, %r39; |
| | | @%p5 bra BB4_4; |
| | | |
| | | add.s32 %r40, %r20, %r7; |
| | | add.s32 %r41, %r40, 1; |
| | | mad.lo.s32 %r42, %r41, %r1, %r2; |
| | | cvt.u64.u32 %rd16, %r42; |
| | | add.s64 %rd17, %rd6, %rd16; |
| | | ld.global.u8 %r43, [%rd17]; |
| | | add.s32 %r44, %r94, %r43; |
| | | add.s32 %r45, %r44, 1; |
| | | shr.u32 %r94, %r45, 1; |
| | | add.s32 %r46, %r42, 1; |
| | | cvt.u64.u32 %rd18, %r46; |
| | | add.s64 %rd19, %rd6, %rd18; |
| | | ld.global.u8 %r47, [%rd19]; |
| | | add.s32 %r48, %r95, %r47; |
| | | add.s32 %r49, %r48, 1; |
| | | shr.u32 %r95, %r49, 1; |
| | | |
| | | BB4_4: |
| | | shl.b32 %r50, %r94, 12; |
| | | or.b32 %r51, %r50, %r5; |
| | | shl.b32 %r52, %r95, 22; |
| | | or.b32 %r97, %r51, %r52; |
| | | or.b32 %r53, %r50, %r6; |
| | | or.b32 %r96, %r53, %r52; |
| | | bra.uni BB4_6; |
| | | |
| | | BB4_5: |
| | | shl.b32 %r54, %r94, 12; |
| | | ld.global.u8 %r55, [%rd2]; |
| | | shl.b32 %r56, %r55, 22; |
| | | or.b32 %r57, %r54, %r5; |
| | | or.b32 %r97, %r57, %r56; |
| | | or.b32 %r58, %r54, %r6; |
| | | or.b32 %r96, %r58, %r56; |
| | | |
| | | BB4_6: |
| | | bfe.u32 %r59, %r97, 10, 10; |
| | | bfe.u32 %r60, %r97, 20, 10; |
| | | bfe.u32 %r61, %r96, 10, 10; |
| | | bfe.u32 %r62, %r96, 20, 10; |
| | | and.b32 %r63, %r97, 1023; |
| | | cvt.rn.f32.u32 %f1, %r63; |
| | | add.s32 %r64, %r59, -512; |
| | | cvt.rn.f32.s32 %f2, %r64; |
| | | add.s32 %r65, %r60, -512; |
| | | cvt.rn.f32.s32 %f3, %r65; |
| | | ld.const.f32 %f4, [constHueColorSpaceMat]; |
| | | ld.const.f32 %f5, [constHueColorSpaceMat+4]; |
| | | mul.f32 %f6, %f2, %f5; |
| | | fma.rn.f32 %f7, %f1, %f4, %f6; |
| | | ld.const.f32 %f8, [constHueColorSpaceMat+8]; |
| | | fma.rn.f32 %f9, %f3, %f8, %f7; |
| | | ld.const.f32 %f10, [constHueColorSpaceMat+12]; |
| | | ld.const.f32 %f11, [constHueColorSpaceMat+16]; |
| | | mul.f32 %f12, %f2, %f11; |
| | | fma.rn.f32 %f13, %f1, %f10, %f12; |
| | | ld.const.f32 %f14, [constHueColorSpaceMat+20]; |
| | | fma.rn.f32 %f15, %f3, %f14, %f13; |
| | | ld.const.f32 %f16, [constHueColorSpaceMat+24]; |
| | | ld.const.f32 %f17, [constHueColorSpaceMat+28]; |
| | | mul.f32 %f18, %f2, %f17; |
| | | fma.rn.f32 %f19, %f1, %f16, %f18; |
| | | ld.const.f32 %f20, [constHueColorSpaceMat+32]; |
| | | fma.rn.f32 %f21, %f3, %f20, %f19; |
| | | and.b32 %r66, %r96, 1023; |
| | | cvt.rn.f32.u32 %f22, %r66; |
| | | add.s32 %r67, %r61, -512; |
| | | cvt.rn.f32.s32 %f23, %r67; |
| | | add.s32 %r68, %r62, -512; |
| | | cvt.rn.f32.s32 %f24, %r68; |
| | | mul.f32 %f25, %f23, %f5; |
| | | fma.rn.f32 %f26, %f22, %f4, %f25; |
| | | fma.rn.f32 %f27, %f24, %f8, %f26; |
| | | mul.f32 %f28, %f23, %f11; |
| | | fma.rn.f32 %f29, %f22, %f10, %f28; |
| | | fma.rn.f32 %f30, %f24, %f14, %f29; |
| | | mul.f32 %f31, %f23, %f17; |
| | | fma.rn.f32 %f32, %f22, %f16, %f31; |
| | | fma.rn.f32 %f33, %f24, %f20, %f32; |
| | | mov.f32 %f34, 0f00000000; |
| | | max.f32 %f35, %f9, %f34; |
| | | mov.f32 %f36, 0f447FC000; |
| | | min.f32 %f37, %f35, %f36; |
| | | max.f32 %f38, %f15, %f34; |
| | | min.f32 %f39, %f38, %f36; |
| | | max.f32 %f40, %f21, %f34; |
| | | min.f32 %f41, %f40, %f36; |
| | | cvt.rzi.u32.f32 %r69, %f41; |
| | | shr.u32 %r70, %r69, 2; |
| | | cvt.rzi.u32.f32 %r71, %f39; |
| | | shl.b32 %r72, %r71, 6; |
| | | and.b32 %r73, %r72, -256; |
| | | cvt.rzi.u32.f32 %r74, %f37; |
| | | shl.b32 %r75, %r74, 14; |
| | | and.b32 %r76, %r75, -65536; |
| | | ld.const.u32 %r77, [constAlpha]; |
| | | or.b32 %r78, %r70, %r77; |
| | | or.b32 %r79, %r78, %r73; |
| | | or.b32 %r80, %r79, %r76; |
| | | mad.lo.s32 %r81, %r3, %r4, %r2; |
| | | mul.wide.u32 %rd20, %r81, 4; |
| | | add.s64 %rd21, %rd1, %rd20; |
| | | st.global.u32 [%rd21], %r80; |
| | | max.f32 %f42, %f27, %f34; |
| | | min.f32 %f43, %f42, %f36; |
| | | max.f32 %f44, %f30, %f34; |
| | | min.f32 %f45, %f44, %f36; |
| | | max.f32 %f46, %f33, %f34; |
| | | min.f32 %f47, %f46, %f36; |
| | | cvt.rzi.u32.f32 %r82, %f47; |
| | | shr.u32 %r83, %r82, 2; |
| | | cvt.rzi.u32.f32 %r84, %f45; |
| | | shl.b32 %r85, %r84, 6; |
| | | and.b32 %r86, %r85, -256; |
| | | cvt.rzi.u32.f32 %r87, %f43; |
| | | shl.b32 %r88, %r87, 14; |
| | | and.b32 %r89, %r88, -65536; |
| | | or.b32 %r90, %r83, %r77; |
| | | or.b32 %r91, %r90, %r86; |
| | | or.b32 %r92, %r91, %r89; |
| | | add.s32 %r93, %r81, 1; |
| | | mul.wide.u32 %rd22, %r93, 4; |
| | | add.s64 %rd23, %rd1, %rd22; |
| | | st.global.u32 [%rd23], %r92; |
| | | |
| | | BB4_7: |
| | | ret; |
| | | } |
| | | |
| | | |
New file |
| | |
| | | package constant; |
| | | /** |
| | | * 点位导出表头常量 |
| | | */ |
| | | public class PointHeaderConstant { |
| | | |
| | | public final static String Point_Name = "点位名称(可修改)"; |
| | | public final static String Serial_Number = "国标码(不可修改)"; |
| | | public final static String IP = "点位IP(可修改)"; |
| | | public final static String Province_Tag = "是否省厅标签(可修改)"; |
| | | public final static String Impotrant_Command_Image = "是否重点指挥图像(可修改)"; |
| | | public final static String Dept_Tag = "是否部级标签(可修改)"; |
| | | } |
| | |
| | | private static String currentFold; |
| | | /** 动态库需要写入的目录 */ |
| | | private static String EXTRACT_PATH = "/deviceSDK/linux64"; |
| | | |
| | | // private static String EXTRACT_PATH = System.getProperty("java.io.tmpdir"); |
| | | private static boolean written = false; |
| | | |
| | | /** |
| | |
| | | System.out.printf("Initialize failed:%d", netdevsdk.NETDEV_GetLastError()); |
| | | return; |
| | | } |
| | | try { |
| | | Common.updateStructureByReferenceMethod = Structure.class.getDeclaredMethod("updateStructureByReference", Class.class, Structure.class, Pointer.class); |
| | | Common.updateStructureByReferenceMethod.setAccessible(true); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | // try { |
| | | // Common.updateStructureByReferenceMethod = Structure.class.getDeclaredMethod("updateStructureByReference", Class.class, Structure.class, Pointer.class); |
| | | // Common.updateStructureByReferenceMethod.setAccessible(true); |
| | | // } catch (Exception e) { |
| | | // throw new RuntimeException(e); |
| | | // } |
| | | |
| | | File file=new File(strPicturePath); |
| | | if(!file.exists()){ |
| | | file.mkdir(); |
| | | } |
| | | // File file=new File(strPicturePath); |
| | | // if(!file.exists()){ |
| | | // file.mkdir(); |
| | | // } |
| | | |
| | | NetDEVSDKLib.NETDEV_REV_TIMEOUT_S pstRevTimeout=new NetDEVSDKLib.NETDEV_REV_TIMEOUT_S(); |
| | | pstRevTimeout.dwRevTimeOut=3; |
| | |
| | | if(OsArch.toLowerCase().startsWith("win32-x86")) { |
| | | loadLibrary = filePath + "\\libs\\win32\\"; |
| | | } else if(OsArch.toLowerCase().startsWith("win32-amd64") ) { |
| | | loadLibrary = filePath + "\\libs\\win64\\"; |
| | | loadLibrary = filePath + "\\libs\\YS\\win\\"; |
| | | } |
| | | |
| | | String loadSDKLibrary = loadLibrary + "NetDEVSDK"; |
New file |
| | |
| | | package com.ycl.dataListener; |
| | | |
| | | import com.alibaba.excel.context.AnalysisContext; |
| | | import com.alibaba.excel.event.AnalysisEventListener; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public class EasyExcelListener extends AnalysisEventListener<Map<Integer, String>> { |
| | | //表头数据(存储所有的表头数据) |
| | | private List<Map<Integer, String>> headList = new ArrayList<>(); |
| | | //数据体 |
| | | private List<Map<Integer, String>> dataList = new ArrayList<>(); |
| | | //这里会一行行的返回头 |
| | | @Override |
| | | public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) { |
| | | //存储全部表头数据 |
| | | headList.add(headMap); |
| | | } |
| | | @Override |
| | | public void invoke(Map<Integer, String> data, AnalysisContext context) { |
| | | dataList.add(data); |
| | | } |
| | | @Override |
| | | public void doAfterAllAnalysed(AnalysisContext context) { |
| | | } |
| | | public List<Map<Integer, String>> getHeadList() { |
| | | return headList; |
| | | } |
| | | public List<Map<Integer, String>> getDataList() { |
| | | return dataList; |
| | | } |
| | | |
| | | } |
| | |
| | | public synchronized String getFrameImgByDevice(String deviceId, String channelId, String workOrderNo) throws Exception { |
| | | String url = String.format(this.rtspServer + "/api/play/start/%s/%s", deviceId, channelId); |
| | | String result = HttpUtils.sendGet(url); |
| | | log.error("拿到取流响应结果:" + result); |
| | | log.info("拿到取流响应结果:" + result); |
| | | WVPResult wvpResult = JSON.parseObject(result, WVPResult.class); |
| | | String imgUrl = null; |
| | | if (0 == wvpResult.getCode()) { |
| | | log.error("请求成功"); |
| | | if (wvpResult.getCode() == 0) { |
| | | JSONObject data = (JSONObject) wvpResult.getData(); |
| | | String rtspUrl = data.getString("rtsp"); // 取地址 |
| | | log.error("目标地址:" + rtspUrl); |
| | | FFmpegFrameGrabber grabber = FFmpegFrameGrabber.createDefault(rtspUrl); |
| | | String rtspUrl = data.getString("fmp4"); // 取mp4地址 |
| | | if (StringUtils.hasText(rtspUrl)) { |
| | | System.out.println("目标地址:" + rtspUrl); |
| | | FFmpegFrameGrabber grabber = null; |
| | | try { |
| | | grabber = new FFmpegFrameGrabber(rtspUrl); |
| | | // grabber.setOption("rtsp_transport", "tcp"); // 使用tcp的方式,不然会丢包很严重 |
| | | grabber.setImageWidth(1920); |
| | | grabber.setImageHeight(1080); |
| | | grabber.setFrameRate(25); |
| | | // grabber.setVideoOption("probesize", "10000"); // 设置捕获分析的最大字节 |
| | | grabber.start(); |
| | | |
| | | Frame frame = grabber.grabFrame(); |
| | | Frame frame = grabber.grabImage(); // 直接捕获一帧 |
| | | if (frame != null) { |
| | | //转换图像 |
| | | Java2DFrameConverter converter = new Java2DFrameConverter(); |
| | | BufferedImage srcImage = converter.getBufferedImage(frame); |
| | | if (srcImage != null) { |
| | | imgUrl = workOrderNo + "_" + IdUtils.fastSimpleUUID() + ".png"; |
| | | // 生成图片路径 |
| | | String imgPath = PlatformConfig.getProfile() + "/" + imgUrl; |
| | | System.out.println("图片保存地址:" + imgPath); |
| | | imgUrl = Constants.RESOURCE_PREFIX + "/" + imgUrl; |
| | | //创建文件 |
| | | File file = new File(imgPath); |
| | | //输出文件 |
| | | ImageIO.write(srcImage, "png", file); |
| | | } |
| | | System.out.println("成功捕获一帧"); |
| | | // 将Frame转换为Mat |
| | | OpenCVFrameConverter.ToMat converter = new OpenCVFrameConverter.ToMat(); |
| | | Mat mat = converter.convertToMat(frame); |
| | | |
| | | imgUrl = workOrderNo + "_" + IdUtils.fastSimpleUUID() + ".png"; |
| | | // 生成图片路径 |
| | | String imgPath = PlatformConfig.getProfile() + "/" + imgUrl; |
| | | System.out.println("图片保存地址:" + imgPath); |
| | | imgUrl = Constants.RESOURCE_PREFIX + "/" + imgUrl; |
| | | // 保存图片 |
| | | opencv_imgcodecs.imwrite(imgPath, mat); |
| | | } else { |
| | | System.out.println("未捕获到帧"); |
| | | } |
| | | } catch (IOException e) { |
| | | } catch (FrameGrabber.Exception e) { |
| | | e.printStackTrace(); |
| | | } finally { |
| | | grabber.stop(); // 停止捕获 |
| | | grabber.close(); // 释放资源 |
| | | if (grabber != null) { |
| | | try { |
| | | grabber.stop(); // 停止捕获 |
| | | } catch (FrameGrabber.Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } else { |
| | | System.out.println("请求失败,错误码:" + wvpResult.getCode() + "--" + wvpResult.getMsg()); |
| | | } |
| | | System.out.println("图片URL:" + imgUrl); |
| | | return imgUrl; |
| | | } |
| | | |
| | |
| | | import com.ycl.thread.PointImportCallable; |
| | | import com.ycl.utils.DateUtils; |
| | | import com.ycl.utils.SecurityUtils; |
| | | import com.ycl.utils.poi.EasyExcelImportUtils; |
| | | import constant.PointHeaderConstant; |
| | | import jakarta.servlet.http.HttpServletResponse; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.beans.BeanUtils; |
| | |
| | | } |
| | | //定义表头列表 |
| | | LinkedHashSet<String> headers = new LinkedHashSet<>(); |
| | | headers.add("点位名称(可修改)"); |
| | | headers.add("国标码(不可修改)"); |
| | | headers.add("点位IP(可修改)"); |
| | | headers.add("是否省厅标签(可修改)"); |
| | | headers.add("是否重点指挥图像(可修改)"); |
| | | headers.add("是否部级标签(可修改)"); |
| | | headers.add(PointHeaderConstant.Point_Name); |
| | | headers.add(PointHeaderConstant.Serial_Number); |
| | | headers.add(PointHeaderConstant.IP); |
| | | headers.add(PointHeaderConstant.Province_Tag); |
| | | headers.add(PointHeaderConstant.Impotrant_Command_Image); |
| | | headers.add(PointHeaderConstant.Dept_Tag); |
| | | List<String> headersList = new LinkedList<>(); |
| | | if (!CollectionUtils.isEmpty(dynamicsHeaders)) { |
| | | //使用链表保证后续补充数据时获取数据顺序一致 |
| | |
| | | @Override |
| | | public Result importData(MultipartFile file, Integer unitId, Date startTime, Date endTime, Boolean |
| | | needUpdateUnit) throws IOException { |
| | | // List<Map<String,String>> list = EasyExcelImportUtils.makeData(file); |
| | | Consumer<List<PointExport>> consumer = (dataList) -> { |
| | | try { |
| | | this.updatePoint(dataList, unitId, startTime, endTime, needUpdateUnit); |
| | |
| | | } |
| | | }; |
| | | EasyExcel.read(file.getInputStream(), PointExport.class, new CurrencyDataListener(consumer)).headRowNumber(1).doReadAll(); |
| | | // for (Map<String, String> map : list) { |
| | | // PointExport pointExport = new PointExport(); |
| | | // pointExport.setPointName(map.get(PointHeaderConstant.Point_Name)); |
| | | // pointExport.setPointIP(map.get(PointHeaderConstant.IP)); |
| | | // pointExport.setSerialNumber(map.get(PointHeaderConstant.Serial_Number)); |
| | | // } |
| | | // this.updatePoint(dataList, unitId, startTime, endTime, needUpdateUnit); |
| | | // System.out.println(list); |
| | | return Result.ok(); |
| | | } |
| | | |
| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void synchronize() { |
| | | log.info("开始同步mongodb一机一档到数据库"); |
| | | Date yesterday = DateUtils.addDays(new Date(), -1); |
| | | // Date yesterday = DateUtils.addDays(new Date(), -1); |
| | | Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); |
| | | List<MonitorQualifyResult> oneMachineFileResults = mongoTemplate.find(query, MonitorQualifyResult.class); |
| | | //mongo品牌数据 |
| | | Query OSDQuery = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday))); |
| | | Query OSDQuery = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); |
| | | Map<String, OsdCheckResult> osdMap = mongoTemplate.find(query, OsdCheckResult.class).stream().collect(Collectors.toMap(OsdCheckResult::getDeviceNo, Function.identity())); |
| | | //数据库monitor表数据 |
| | | Map<String, TMonitorVO> monitorVOMap = monitorMapper.selectMonitorVOList().stream().collect(Collectors.toMap(TMonitorVO::getSerialNumber, Function.identity())); |
| | |
| | | ywPointMapper.deleteAll(); |
| | | ywPointService.saveBatch(ywPointList); |
| | | } |
| | | //新的数据放入Redis中等待考核指标任务使用 |
| | | redisTemplate.opsForValue().set(RedisConstant.New_Monitor_Set, JSONArray.toJSONString(newMonitorList)); |
| | | //新的数据放入Redis中等待考核指标任务使用(弃用,改为标签形式) |
| | | // redisTemplate.opsForValue().set(RedisConstant.New_Monitor_Set, JSONArray.toJSONString(newMonitorList)); |
| | | log.info("结束同步mongodb一机一档到数据库"); |
| | | } |
| | | |
| | |
| | | } |
| | | int checkTimes = 1; |
| | | int offLineTimes = 1; |
| | | //TODO:BUG |
| | | Map<String, Object> map = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstant.ONLINE_KEY, monitor.getIp()); |
| | | if (!CollectionUtils.isEmpty(map)) { |
| | | checkTimes = (Integer) map.get("checkTimes") + 1; |
| | |
| | | allOf.get(35, TimeUnit.SECONDS); // 给予额外的5秒来收集结果 |
| | | } catch (TimeoutException e) { |
| | | log.warn("部分任务未在指定时间内完成"); |
| | | } catch (Exception e2){ |
| | | log.error("数据收集异常"+e2); |
| | | } |
| | | |
| | | dataList = futureList.stream() |
| | |
| | | package com.ycl.task; |
| | | |
| | | import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; |
| | | import com.ycl.config.PlatformConfig; |
| | | import com.ycl.platform.domain.entity.DeviceInfo; |
| | | import com.ycl.platform.domain.entity.WorkOrderCheckImg; |
| | | import com.ycl.platform.domain.vo.DeviceInfoVO; |
| | |
| | | import com.ycl.platform.mapper.WorkOrderCheckImgMapper; |
| | | import com.ycl.platform.service.WorkOrderService; |
| | | import com.ycl.utils.DateUtils; |
| | | import com.ycl.utils.uuid.IdUtils; |
| | | import constant.Constants; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.bytedeco.javacv.FFmpegFrameGrabber; |
| | | import org.bytedeco.javacv.Frame; |
| | | import org.bytedeco.javacv.Java2DFrameConverter; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.util.StringUtils; |
| | | |
| | | import javax.imageio.ImageIO; |
| | | import java.awt.image.BufferedImage; |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.util.ArrayList; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | |
| | | // new ThreadPoolExecutor.CallerRunsPolicy() |
| | | // ); |
| | | |
| | | public void run() { |
| | | public void run() throws FFmpegFrameGrabber.Exception { |
| | | // String rtspUrl = "http://www.w3school.com.cn/i/movie.mp4"; |
| | | // if (StringUtils.hasText(rtspUrl)) { |
| | | // FFmpegFrameGrabber grabber = FFmpegFrameGrabber.createDefault(rtspUrl); |
| | | // try { |
| | | //// grabber.setOption("rtsp_transport", "tcp"); // 使用tcp的方式,不然会丢包很严重 |
| | | // grabber.setImageWidth(1920); |
| | | // grabber.setImageHeight(1080); |
| | | // grabber.setFrameRate(25); |
| | | // grabber.start(); |
| | | // System.out.println("成功"); |
| | | // Frame frame = grabber.grabImage(); |
| | | // String imgUrl = null; |
| | | // if (frame != null) { |
| | | // System.out.println("成功2"); |
| | | // //转换图像 |
| | | // Java2DFrameConverter converter = new Java2DFrameConverter(); |
| | | // BufferedImage srcImage = converter.getBufferedImage(frame); |
| | | // System.out.println(srcImage); |
| | | // if (srcImage != null) { |
| | | // imgUrl = IdUtils.fastSimpleUUID() + ".png"; |
| | | // // 生成图片路径 |
| | | // String imgPath = "/" + imgUrl; |
| | | // System.out.println("图片保存地址:" + imgPath); |
| | | //// imgUrl = Constants.RESOURCE_PREFIX + "/" + imgUrl; |
| | | // //创建文件 |
| | | // File file = new File("D:\\Codes\\zgyw\\"+imgUrl); |
| | | // //输出文件 |
| | | // ImageIO.write(srcImage, "png", file); |
| | | // } |
| | | // } |
| | | // } catch (IOException e) { |
| | | // e.printStackTrace(); |
| | | // } finally { |
| | | // grabber.stop(); // 停止捕获 |
| | | //// grabber.close(); // 释放资源 |
| | | // } |
| | | // } |
| | | |
| | | // 查出最近一周的故障的设备 |
| | | Date now = new Date(); |
| | | Calendar ca = Calendar.getInstance(); |
| | |
| | | img.setCreateTime(new Date()); |
| | | workOrderCheckImgMapper.insert(img); |
| | | } |
| | | } |
| | | } |
| | | } } |
| | | |
| | | } |
New file |
| | |
| | | package com.ycl.utils.poi; |
| | | |
| | | import com.alibaba.excel.EasyExcelFactory; |
| | | import com.alibaba.excel.util.IoUtils; |
| | | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
| | | import com.google.common.collect.Lists; |
| | | import com.ycl.dataListener.EasyExcelListener; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.io.ByteArrayInputStream; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.util.LinkedHashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public class EasyExcelImportUtils { |
| | | /** |
| | | * 动态获取全部列和数据体 |
| | | * [stream, parseRowNumber] |
| | | * @return {@link List< Map< String, String>>} |
| | | * @throws |
| | | */ |
| | | public static List<Map<String,String>> parseExcelToData(byte[] stream, Integer parseRowNumber) { |
| | | EasyExcelListener readListener = new EasyExcelListener(); |
| | | EasyExcelFactory.read(new ByteArrayInputStream(stream)).registerReadListener(readListener).headRowNumber(parseRowNumber).sheet(0).doRead(); |
| | | List<Map<Integer, String>> headList = readListener.getHeadList(); |
| | | if(CollectionUtils.isEmpty(headList)){ |
| | | throw new RuntimeException("Excel表头不能为空"); |
| | | } |
| | | List<Map<Integer, String>> dataList = readListener.getDataList(); |
| | | if(CollectionUtils.isEmpty(dataList)){ |
| | | throw new RuntimeException("Excel数据内容不能为空"); |
| | | } |
| | | //获取头部,取最后一次解析的列头数据 |
| | | Map<Integer, String> excelHeadIdxNameMap = headList.get(headList.size() -1); |
| | | //封装数据体 |
| | | List<Map<String,String>> excelDataList = Lists.newArrayList(); |
| | | for (Map<Integer, String> dataRow : dataList) { |
| | | Map<String,String> rowData = new LinkedHashMap<>(); |
| | | excelHeadIdxNameMap.entrySet().forEach(columnHead -> { |
| | | rowData.put(columnHead.getValue(), dataRow.get(columnHead.getKey())); |
| | | }); |
| | | excelDataList.add(rowData); |
| | | } |
| | | return excelDataList; |
| | | } |
| | | |
| | | /** |
| | | * 返回导入的所有数据 |
| | | * [file] |
| | | * @return {@link List< Map< String, String>>} |
| | | * @throws |
| | | */ |
| | | public static List<Map<String,String>> makeData(MultipartFile file){ |
| | | InputStream inputStream = null;//转换成输入流 |
| | | try { |
| | | inputStream = file.getInputStream(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | byte[] stream = new byte[0]; |
| | | try { |
| | | stream = IoUtils.toByteArray(inputStream); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | if(stream == null || stream.length == 0){ |
| | | return null; |
| | | } |
| | | List<Map<String,String>> dataList = parseExcelToData(stream, 1);//从动态获取全部列和数据体,默认从第一行开始解析数据 |
| | | try { |
| | | if(inputStream != null){ |
| | | inputStream.close(); |
| | | } |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return dataList; |
| | | } |
| | | } |
| | | |
| | |
| | | </select> |
| | | |
| | | <select id="dashboard" resultType="com.ycl.platform.domain.entity.CheckIndexCar"> |
| | | SELECT |
| | | IFNULL(ROUND(AVG(view_connect_stability * 100), 0), 0) AS view_connect_stability, |
| | | IFNULL(ROUND(AVG(site_online * 100), 0), 0) AS site_online, |
| | | IFNULL(ROUND(AVG(device_directory_consistent * 100), 0), 0) AS device_directory_consistent, |
| | | IFNULL(ROUND(AVG(vehicle_information_collection_accuracy * 100), 0), 0) AS vehicle_information_collection_accuracy, |
| | | IFNULL(ROUND(AVG(vehicle_capture_integrity * 100), 0), 0) AS vehicle_capture_integrity, |
| | | IFNULL(ROUND(AVG(vehicle_capture_accuracy * 100), 0), 0) AS vehicle_capture_accuracy, |
| | | IFNULL(ROUND(AVG(vehicle_timing_accuracy * 100), 0), 0) AS vehicle_timing_accuracy, |
| | | IFNULL(ROUND(AVG(vehicle_upload_timeliness * 100), 0), 0) AS vehicle_upload_timeliness, |
| | | IFNULL(ROUND(AVG(vehicle_url_availability * 100), 0), 0) AS vehicle_url_availability, |
| | | IFNULL(ROUND(AVG(vehicle_picture_availability * 100), 0), 0) AS vehicle_picture_availability |
| | | FROM |
| | | t_check_index_car |
| | | <!-- SELECT--> |
| | | <!-- IFNULL(ROUND(AVG(view_connect_stability * 100), 0), 0) AS view_connect_stability,--> |
| | | <!-- IFNULL(ROUND(AVG(site_online * 100), 0), 0) AS site_online,--> |
| | | <!-- IFNULL(ROUND(AVG(device_directory_consistent * 100), 0), 0) AS device_directory_consistent,--> |
| | | <!-- IFNULL(ROUND(AVG(vehicle_information_collection_accuracy * 100), 0), 0) AS vehicle_information_collection_accuracy,--> |
| | | <!-- IFNULL(ROUND(AVG(vehicle_capture_integrity * 100), 0), 0) AS vehicle_capture_integrity,--> |
| | | <!-- IFNULL(ROUND(AVG(vehicle_capture_accuracy * 100), 0), 0) AS vehicle_capture_accuracy,--> |
| | | <!-- IFNULL(ROUND(AVG(vehicle_timing_accuracy * 100), 0), 0) AS vehicle_timing_accuracy,--> |
| | | <!-- IFNULL(ROUND(AVG(vehicle_upload_timeliness * 100), 0), 0) AS vehicle_upload_timeliness,--> |
| | | <!-- IFNULL(ROUND(AVG(vehicle_url_availability * 100), 0), 0) AS vehicle_url_availability,--> |
| | | <!-- IFNULL(ROUND(AVG(vehicle_picture_availability * 100), 0), 0) AS vehicle_picture_availability--> |
| | | <!-- FROM--> |
| | | <!-- t_check_index_car--> |
| | | <!-- <where>--> |
| | | <!-- <if test="deptId != null">--> |
| | | <!-- AND dept_id = #{deptId}--> |
| | | <!-- </if>--> |
| | | <!-- <if test="dataScope == 1">--> |
| | | <!-- AND examine_tag = 0--> |
| | | <!-- </if>--> |
| | | <!-- <if test="dataScope == 2">--> |
| | | <!-- AND examine_tag = 1--> |
| | | <!-- </if>--> |
| | | <!-- <if test="dataScope == 3">--> |
| | | <!-- AND examine_tag = 2--> |
| | | <!-- </if>--> |
| | | <!-- </where>--> |
| | | <!-- ORDER BY--> |
| | | <!-- create_time DESC--> |
| | | <!-- <if test="deptId == null">--> |
| | | <!-- LIMIT 7--> |
| | | <!-- </if>--> |
| | | <!-- <if test="deptId != null">--> |
| | | <!-- LIMIT 1--> |
| | | <!-- </if>--> |
| | | WITH LatestRecords AS ( |
| | | SELECT * |
| | | FROM t_check_index_car |
| | | <where> |
| | | <if test="deptId != null"> |
| | | AND dept_id = #{deptId} |
| | |
| | | AND examine_tag = 2 |
| | | </if> |
| | | </where> |
| | | ORDER BY |
| | | create_time DESC |
| | | ORDER BY create_time DESC |
| | | <if test="deptId == null"> |
| | | LIMIT 7 |
| | | </if> |
| | | <if test="deptId != null"> |
| | | LIMIT 1 |
| | | </if> |
| | | ) |
| | | SELECT |
| | | IFNULL(ROUND(AVG(view_connect_stability * 100), 0), 0) AS view_connect_stability, |
| | | IFNULL(ROUND(AVG(site_online * 100), 0), 0) AS site_online, |
| | | IFNULL(ROUND(AVG(device_directory_consistent * 100), 0), 0) AS device_directory_consistent, |
| | | IFNULL(ROUND(AVG(vehicle_information_collection_accuracy * 100), 0), 0) AS vehicle_information_collection_accuracy, |
| | | IFNULL(ROUND(AVG(vehicle_capture_integrity * 100), 0), 0) AS vehicle_capture_integrity, |
| | | IFNULL(ROUND(AVG(vehicle_capture_accuracy * 100), 0), 0) AS vehicle_capture_accuracy, |
| | | IFNULL(ROUND(AVG(vehicle_timing_accuracy * 100), 0), 0) AS vehicle_timing_accuracy, |
| | | IFNULL(ROUND(AVG(vehicle_upload_timeliness * 100), 0), 0) AS vehicle_upload_timeliness, |
| | | IFNULL(ROUND(AVG(vehicle_url_availability * 100), 0), 0) AS vehicle_url_availability, |
| | | IFNULL(ROUND(AVG(vehicle_picture_availability * 100), 0), 0) AS vehicle_picture_availability |
| | | FROM |
| | | LatestRecords; |
| | | </select> |
| | | </mapper> |
| | |
| | | </select> |
| | | |
| | | <select id="dashboard" resultType="com.ycl.platform.domain.entity.CheckIndexFace"> |
| | | SELECT |
| | | IFNULL(ROUND(AVG(view_connect_stability * 100), 0), 0) AS view_connect_stability, |
| | | IFNULL(ROUND(AVG(site_online * 100), 0), 0) AS site_online, |
| | | IFNULL(ROUND(AVG(device_directory_consistent * 100), 0), 0) AS device_directory_consistent, |
| | | IFNULL(ROUND(AVG(face_information_collection_accuracy * 100), 0), 0) AS face_information_collection_accuracy, |
| | | IFNULL(ROUND(AVG(face_picture_qualification * 100), 0), 0) AS face_picture_qualification, |
| | | IFNULL(ROUND(AVG(face_timing_accuracy * 100), 0), 0) AS face_timing_accuracy, |
| | | IFNULL(ROUND(AVG(face_upload_timeliness * 100), 0), 0) AS face_upload_timeliness, |
| | | IFNULL(ROUND(AVG(face_picture_availability * 100), 0), 0) AS face_picture_availability |
| | | FROM |
| | | t_check_index_face |
| | | <!-- SELECT--> |
| | | <!-- IFNULL(ROUND(AVG(view_connect_stability * 100), 0), 0) AS view_connect_stability,--> |
| | | <!-- IFNULL(ROUND(AVG(site_online * 100), 0), 0) AS site_online,--> |
| | | <!-- IFNULL(ROUND(AVG(device_directory_consistent * 100), 0), 0) AS device_directory_consistent,--> |
| | | <!-- IFNULL(ROUND(AVG(face_information_collection_accuracy * 100), 0), 0) AS face_information_collection_accuracy,--> |
| | | <!-- IFNULL(ROUND(AVG(face_picture_qualification * 100), 0), 0) AS face_picture_qualification,--> |
| | | <!-- IFNULL(ROUND(AVG(face_timing_accuracy * 100), 0), 0) AS face_timing_accuracy,--> |
| | | <!-- IFNULL(ROUND(AVG(face_upload_timeliness * 100), 0), 0) AS face_upload_timeliness,--> |
| | | <!-- IFNULL(ROUND(AVG(face_picture_availability * 100), 0), 0) AS face_picture_availability--> |
| | | <!-- FROM--> |
| | | <!-- t_check_index_face--> |
| | | <!-- <where>--> |
| | | <!-- <if test="deptId != null">--> |
| | | <!-- AND dept_id = #{deptId}--> |
| | | <!-- </if>--> |
| | | <!-- <if test="dataScope == 1">--> |
| | | <!-- AND examine_tag = 0--> |
| | | <!-- </if>--> |
| | | <!-- <if test="dataScope == 2">--> |
| | | <!-- AND examine_tag = 1--> |
| | | <!-- </if>--> |
| | | <!-- <if test="dataScope == 3">--> |
| | | <!-- AND examine_tag = 2--> |
| | | <!-- </if>--> |
| | | <!-- </where>--> |
| | | <!-- ORDER BY--> |
| | | <!-- create_time DESC--> |
| | | <!-- <if test="deptId == null">--> |
| | | <!-- LIMIT 7--> |
| | | <!-- </if>--> |
| | | <!-- <if test="deptId != null">--> |
| | | <!-- LIMIT 1--> |
| | | <!-- </if>--> |
| | | |
| | | WITH LatestRecords AS ( |
| | | SELECT * |
| | | FROM t_check_index_face |
| | | <where> |
| | | <if test="deptId != null"> |
| | | AND dept_id = #{deptId} |
| | |
| | | AND examine_tag = 2 |
| | | </if> |
| | | </where> |
| | | ORDER BY |
| | | create_time DESC |
| | | ORDER BY create_time DESC |
| | | <if test="deptId == null"> |
| | | LIMIT 7 |
| | | </if> |
| | | <if test="deptId != null"> |
| | | LIMIT 1 |
| | | </if> |
| | | ) |
| | | SELECT |
| | | IFNULL(ROUND(AVG(view_connect_stability * 100), 0), 0) AS view_connect_stability, |
| | | IFNULL(ROUND(AVG(site_online * 100), 0), 0) AS site_online, |
| | | IFNULL(ROUND(AVG(device_directory_consistent * 100), 0), 0) AS device_directory_consistent, |
| | | IFNULL(ROUND(AVG(face_information_collection_accuracy * 100), 0), 0) AS face_information_collection_accuracy, |
| | | IFNULL(ROUND(AVG(face_picture_qualification * 100), 0), 0) AS face_picture_qualification, |
| | | IFNULL(ROUND(AVG(face_timing_accuracy * 100), 0), 0) AS face_timing_accuracy, |
| | | IFNULL(ROUND(AVG(face_upload_timeliness * 100), 0), 0) AS face_upload_timeliness, |
| | | IFNULL(ROUND(AVG(face_picture_availability * 100), 0), 0) AS face_picture_availability |
| | | FROM |
| | | LatestRecords; |
| | | </select> |
| | | </mapper> |
| | |
| | | </select> |
| | | |
| | | <select id="dashboard" resultType="com.ycl.platform.domain.entity.CheckIndexVideo"> |
| | | <!-- SELECT--> |
| | | <!-- IFNULL(ROUND(AVG(platform_online * 100), 0), 0) AS platform_online,--> |
| | | <!-- IFNULL(ROUND(AVG(monitor_qualification * 100), 0), 0) AS monitor_qualification,--> |
| | | <!-- IFNULL(ROUND(AVG(monitor_registration * 100), 0), 0) AS monitor_registration,--> |
| | | <!-- IFNULL(ROUND(AVG(archives_rate * 100), 0), 0) AS archives_rate,--> |
| | | <!-- IFNULL(ROUND(AVG(site_online * 100), 0), 0) AS site_online,--> |
| | | <!-- IFNULL(ROUND(AVG(video_available * 100), 0), 0) AS video_available,--> |
| | | <!-- IFNULL(ROUND(AVG(ministry_site_online * 100), 0), 0) AS ministry_site_online,--> |
| | | <!-- IFNULL(ROUND(AVG(ministry_video_available * 100), 0), 0) AS ministry_video_available,--> |
| | | <!-- IFNULL(ROUND(AVG(key_site_online * 100), 0), 0) AS key_site_online,--> |
| | | <!-- IFNULL(ROUND(AVG(key_video_available * 100), 0), 0) AS key_video_available,--> |
| | | <!-- IFNULL(ROUND(AVG(key_annotation_accuracy * 100), 0), 0) AS key_annotation_accuracy,--> |
| | | <!-- IFNULL(ROUND(AVG(key_timing_accuracy * 100), 0), 0) AS key_timing_accuracy,--> |
| | | <!-- IFNULL(ROUND(AVG(key_command_image_online * 100), 0), 0) AS key_command_image_online,--> |
| | | <!-- IFNULL(ROUND(AVG(image_resource_security * 100), 0), 0) AS image_resource_security--> |
| | | <!-- FROM--> |
| | | <!-- t_check_index_video--> |
| | | <!-- <where>--> |
| | | <!-- <if test="deptId != null">--> |
| | | <!-- AND dept_id = #{deptId}--> |
| | | <!-- </if>--> |
| | | <!-- <if test="dataScope == 1">--> |
| | | <!-- AND examine_tag = 0--> |
| | | <!-- </if>--> |
| | | <!-- <if test="dataScope == 2">--> |
| | | <!-- AND examine_tag = 1--> |
| | | <!-- </if>--> |
| | | <!-- <if test="dataScope == 3">--> |
| | | <!-- AND examine_tag = 2--> |
| | | <!-- </if>--> |
| | | <!-- </where>--> |
| | | <!-- ORDER BY--> |
| | | <!-- create_time DESC--> |
| | | <!-- <if test="deptId == null">--> |
| | | <!-- LIMIT 7--> |
| | | <!-- </if>--> |
| | | <!-- <if test="deptId != null">--> |
| | | <!-- LIMIT 1--> |
| | | <!-- </if>--> |
| | | WITH LatestRecords AS ( |
| | | SELECT * |
| | | FROM t_check_index_video |
| | | <where> |
| | | <if test="deptId != null"> |
| | | AND dept_id = #{deptId} |
| | | </if> |
| | | <if test="dataScope == 1"> |
| | | AND examine_tag = 0 |
| | | </if> |
| | | <if test="dataScope == 2"> |
| | | AND examine_tag = 1 |
| | | </if> |
| | | <if test="dataScope == 3"> |
| | | AND examine_tag = 2 |
| | | </if> |
| | | </where> |
| | | ORDER BY create_time DESC |
| | | <if test="deptId == null"> |
| | | LIMIT 7 |
| | | </if> |
| | | <if test="deptId != null"> |
| | | LIMIT 1 |
| | | </if> |
| | | ) |
| | | SELECT |
| | | IFNULL(ROUND(AVG(platform_online * 100), 0), 0) AS platform_online, |
| | | IFNULL(ROUND(AVG(monitor_qualification * 100), 0), 0) AS monitor_qualification, |
| | |
| | | IFNULL(ROUND(AVG(key_command_image_online * 100), 0), 0) AS key_command_image_online, |
| | | IFNULL(ROUND(AVG(image_resource_security * 100), 0), 0) AS image_resource_security |
| | | FROM |
| | | t_check_index_video |
| | | <where> |
| | | <if test="deptId != null"> |
| | | AND dept_id = #{deptId} |
| | | </if> |
| | | <if test="dataScope == 1"> |
| | | AND examine_tag = 0 |
| | | </if> |
| | | <if test="dataScope == 2"> |
| | | AND examine_tag = 1 |
| | | </if> |
| | | <if test="dataScope == 3"> |
| | | AND examine_tag = 2 |
| | | </if> |
| | | </where> |
| | | ORDER BY |
| | | create_time DESC |
| | | <if test="deptId == null"> |
| | | LIMIT 7 |
| | | </if> |
| | | <if test="deptId != null"> |
| | | LIMIT 1 |
| | | </if> |
| | | LatestRecords; |
| | | </select> |
| | | |
| | | <select id="selectAndDeptName" resultType="com.ycl.platform.domain.entity.CheckIndexVideo"> |