1、修改应用菜单权限等,增加根据应用id查询该应用下的二级菜单,并且转成一级菜单展示
2、数据采集模块增加大华和海康摄像头的sdk工具及相关代码
3、移除data和model模块iailab-common-biz-data-permission依赖重复,解决打包报错的bug
4、data-biz模块左右openscada依赖都需要排除bcprov-jdk15on,否则会导致打包报错
5、其它相关修改
| | |
| | | - Path=/admin-api/model/** |
| | | filters: |
| | | - RewritePath=/admin-api/model/v3/api-docs, /v3/api-docs |
| | | ## shasteel 服务 |
| | | - id: shasteel-admin-api # 路由的编号 |
| | | uri: grayLb://shasteel-server |
| | | predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组 |
| | | - Path=/admin-api/shasteel/** |
| | | filters: |
| | | - RewritePath=/admin-api/shasteel/v3/api-docs, /v3/api-docs |
| | | x-forwarded: |
| | | prefix-enabled: true # 避免 Swagger 重复带上额外的 /admin-api/system 前缀 |
| | | |
| | | server: |
| | | port: 48080 |
| | | servlet: |
| | | session: |
| | | timeout: 120s |
| | | |
| | | logging: |
| | | file: |
对比新文件 |
| | |
| | | <?xml version="1.0" encoding="GB2312"?> |
| | | <SdkLocal> |
| | | <SdkLog> |
| | | <logLevel>3</logLevel><!--req, 1-ERROR, 2-DEBUG, 3-INFO--> |
| | | <logDirectory>./SDKLOG/</logDirectory><!--the end of the string must be '/'--> |
| | | <autoDelete>true</autoDelete><!--true: There are less than 10 files in the directory, it will be auto deleted by sdk when the files are more than 10; false: No upper limit to the number of log files--> |
| | | </SdkLog> |
| | | <HeartbeatCfg> |
| | | <Interval>120</Interval> <!-- ÐÄÌøʱ¼ä¼ä¸ô£¬µ¥Î»Ã룬µÈÓÚ0£¬Ê¹ÓÃĬÈÏÖµ120s£¬È¡Öµ·¶Î§Îª[30, 120] СÓÚ30s£¬¼ä¸ôΪ30s£¬´óÓÚ120s£¬¼ä¸ôΪ120s--> |
| | | <Count>1</Count> <!-- ´¥·¢Òì³£»Øµ÷ÐèÒªÐÄÌø½»»¥Òì³£µÄ´ÎÊý£¬µÈÓÚ0£¬Ê¹ÓÃĬÈÏÖµ1´Î--> |
| | | </HeartbeatCfg> |
| | | </SdkLocal> |
| | |
| | | <groupId>com.iailab</groupId> |
| | | <artifactId>iailab-common-monitor</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>com.iailab</groupId> |
| | | <artifactId>iailab-common-biz-data-permission</artifactId> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>com.auth0</groupId> |
| | |
| | | <groupId>org.openscada.jinterop</groupId> |
| | | <artifactId>org.openscada.jinterop.core</artifactId> |
| | | <version>2.1.8</version> |
| | | <exclusions> |
| | | <exclusion> |
| | | <groupId>org.bouncycastle</groupId> |
| | | <artifactId>bcprov-jdk15on</artifactId> |
| | | </exclusion> |
| | | </exclusions> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.openscada.jinterop</groupId> |
| | |
| | | <groupId>org.openscada.utgard</groupId> |
| | | <artifactId>org.openscada.opc.dcom</artifactId> |
| | | <version>1.5.0</version> |
| | | <exclusions> |
| | | <exclusion> |
| | | <groupId>org.bouncycastle</groupId> |
| | | <artifactId>bcprov-jdk15on</artifactId> |
| | | </exclusion> |
| | | </exclusions> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.openscada.utgard</groupId> |
| | | <artifactId>org.openscada.opc.lib</artifactId> |
| | | <version>1.5.0</version> |
| | | <exclusions> |
| | | <exclusion> |
| | | <groupId>org.bouncycastle</groupId> |
| | | <artifactId>bcprov-jdk15on</artifactId> |
| | | </exclusion> |
| | | </exclusions> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.bouncycastle</groupId> |
| | | <artifactId>bcprov-jdk15on</artifactId> |
| | | <version>1.61</version> |
| | | <version>1.70</version> |
| | | </dependency> |
| | | |
| | | <!-- ModBus TCP --> |
| | |
| | | <version>6.8.0</version> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>net.java.dev.jna</groupId> |
| | | <artifactId>jna</artifactId> |
| | | <version>5.4.0</version> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>com.hikvision</groupId> |
| | | <artifactId>examples</artifactId> |
| | | <version>1.0</version> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>com.hikvision</groupId> |
| | | <artifactId>jna</artifactId> |
| | | <version>1.0</version> |
| | | </dependency> |
| | | |
| | | </dependencies> |
| | | |
| | | <build> |
| | |
| | | package com.iailab.module.data.common.utils; |
| | | |
| | | import org.apache.http.HttpEntity; |
| | | import org.apache.http.HttpResponse; |
| | | import org.apache.http.client.methods.HttpPost; |
| | | import org.apache.http.entity.StringEntity; |
| | | import org.apache.http.util.EntityUtils; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.io.BufferedReader; |
| | |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * @param url |
| | | * @param json |
| | | * @param charset |
| | | * @param token |
| | | * @return |
| | | */ |
| | | public static String doPost(String url, String json, String charset, String token) { |
| | | org.apache.http.client.HttpClient httpClient = null; |
| | | HttpPost httpPost = null; |
| | | String result = null; |
| | | try { |
| | | httpClient = new SSLClient(); |
| | | httpPost = new HttpPost(url); |
| | | //设置参数 |
| | | httpPost.addHeader("Accept", "application/json"); |
| | | httpPost.addHeader("Content-Type", "application/json;charset=UTF-8"); |
| | | httpPost.addHeader("token", token); |
| | | StringEntity stringEntity = new StringEntity(json); |
| | | stringEntity.setContentEncoding("UTF-8"); |
| | | stringEntity.setContentType("application/json"); |
| | | httpPost.setEntity(stringEntity); |
| | | HttpResponse response = httpClient.execute(httpPost); |
| | | if (response != null) { |
| | | HttpEntity resEntity = response.getEntity(); |
| | | if (resEntity != null) { |
| | | result = EntityUtils.toString(resEntity, charset); |
| | | } |
| | | } |
| | | } catch (Exception ex) { |
| | | ex.printStackTrace(); |
| | | } |
| | | return result; |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.controller.admin.camera; |
| | | |
| | | import com.iailab.framework.common.pojo.CommonResult; |
| | | import com.iailab.framework.common.pojo.PageResult; |
| | | import com.iailab.module.data.dev.controller.admin.camera.vo.DevCameraPageReqVO; |
| | | import com.iailab.module.data.dev.dto.DevCameraDTO; |
| | | import com.iailab.module.data.dev.service.DevCameraService; |
| | | import io.swagger.v3.oas.annotations.Operation; |
| | | import io.swagger.v3.oas.annotations.Parameter; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.validation.Valid; |
| | | import java.util.List; |
| | | |
| | | import static com.iailab.framework.common.pojo.CommonResult.error; |
| | | import static com.iailab.framework.common.pojo.CommonResult.success; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年02月27日 |
| | | */ |
| | | @RestController |
| | | @RequestMapping("/data/dev/camera") |
| | | @Tag(name = "摄像头管理") |
| | | public class DevCameraController { |
| | | |
| | | @Autowired |
| | | private DevCameraService devCameraService; |
| | | |
| | | @GetMapping("page") |
| | | @Operation(summary = "分页") |
| | | public CommonResult<PageResult<DevCameraDTO>> page(@Valid DevCameraPageReqVO cameraPageReqVO) { |
| | | return success(devCameraService.getPage(cameraPageReqVO)); |
| | | } |
| | | |
| | | @GetMapping("list") |
| | | public CommonResult<List<DevCameraDTO>> list(@Valid DevCameraPageReqVO cameraPageReqVO) { |
| | | List<DevCameraDTO> list = devCameraService.list(cameraPageReqVO); |
| | | return success(list); |
| | | } |
| | | |
| | | @GetMapping("/get") |
| | | @Operation(summary = "信息") |
| | | @Parameter(name = "id", description = "编号", required = true, example = "1024") |
| | | public CommonResult<DevCameraDTO> get(@RequestParam("id") String id) { |
| | | DevCameraDTO data = devCameraService.get(id); |
| | | return success(data); |
| | | } |
| | | |
| | | @PostMapping("/create") |
| | | @Operation(summary = "保存") |
| | | public CommonResult save(@RequestBody DevCameraDTO dto) { |
| | | if (devCameraService.cheack(dto) > 0) { |
| | | return error(405,"内容重复!"); |
| | | } |
| | | devCameraService.save(dto); |
| | | return success(); |
| | | } |
| | | |
| | | @PutMapping("/update") |
| | | @Operation(summary = "修改") |
| | | public CommonResult update(@RequestBody DevCameraDTO dto) { |
| | | if (devCameraService.cheack(dto) > 0) { |
| | | return error(405,"内容重复!"); |
| | | } |
| | | devCameraService.update(dto); |
| | | return success(); |
| | | } |
| | | |
| | | @DeleteMapping("/delete") |
| | | @Operation(summary = "删除") |
| | | public CommonResult delete(@RequestBody String[] ids) { |
| | | devCameraService.delete(ids); |
| | | return success(); |
| | | } |
| | | |
| | | @PostMapping("/getLocation") |
| | | @Operation(summary = "获取摄像头监控区域") |
| | | public CommonResult<List<String>> getLocation() { |
| | | List<String> locations = devCameraService.getLocation(); |
| | | return success(locations); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.controller.admin.camera.vo; |
| | | |
| | | import com.iailab.framework.common.pojo.PageParam; |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import lombok.ToString; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年08月17日 |
| | | */ |
| | | @Schema(description = "硬盘录像机 Request VO") |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = true) |
| | | @ToString(callSuper = true) |
| | | public class DevCameraPageReqVO extends PageParam { |
| | | |
| | | /** |
| | | * 录像机ID |
| | | */ |
| | | private String nvrId; |
| | | |
| | | private String location; |
| | | |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.controller.admin.camera.vo; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.FieldFill; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年08月17日 |
| | | */ |
| | | @Schema(description = "硬盘录像机 Request VO") |
| | | @Data |
| | | public class DevCameraSaveReqVO { |
| | | |
| | | /** |
| | | * id |
| | | */ |
| | | @TableId |
| | | private String id; |
| | | |
| | | /** |
| | | * 编码 |
| | | */ |
| | | private Integer code; |
| | | |
| | | /** |
| | | * 厂部 |
| | | */ |
| | | private String factory; |
| | | |
| | | /** |
| | | * 单元 |
| | | */ |
| | | private String unit; |
| | | |
| | | /** |
| | | * 品牌 |
| | | */ |
| | | private String brand; |
| | | |
| | | /** |
| | | * 监控点位 |
| | | */ |
| | | private String point; |
| | | |
| | | /** |
| | | * 监控区域 |
| | | */ |
| | | private String location; |
| | | |
| | | /** |
| | | * 录像机ID |
| | | */ |
| | | private String nvrId; |
| | | |
| | | /** |
| | | * IP |
| | | */ |
| | | private String ip; |
| | | |
| | | /** |
| | | * 端口 |
| | | */ |
| | | private String port; |
| | | |
| | | /** |
| | | * 通道 |
| | | */ |
| | | private Integer channel; |
| | | |
| | | /** |
| | | * 用户名 |
| | | */ |
| | | private String username; |
| | | |
| | | /** |
| | | * 密码 |
| | | */ |
| | | private String password; |
| | | |
| | | /** |
| | | * 状态 |
| | | */ |
| | | private Integer status; |
| | | |
| | | /** |
| | | * 备注 |
| | | */ |
| | | private String remark; |
| | | |
| | | /** |
| | | * 抓图方式 |
| | | */ |
| | | private String captureType; |
| | | |
| | | /** |
| | | * 创建者 |
| | | */ |
| | | @TableField(fill = FieldFill.INSERT) |
| | | private Long creator; |
| | | |
| | | /** |
| | | * 创建时间 |
| | | */ |
| | | @TableField(fill = FieldFill.INSERT) |
| | | private Date createDate; |
| | | |
| | | /** |
| | | * 更新者 |
| | | */ |
| | | @TableField(fill = FieldFill.INSERT_UPDATE) |
| | | private Long updater; |
| | | |
| | | /** |
| | | * 更新时间 |
| | | */ |
| | | @TableField(fill = FieldFill.INSERT_UPDATE) |
| | | private Date updateDate; |
| | | |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.controller.admin.nvr; |
| | | |
| | | import com.iailab.framework.common.pojo.CommonResult; |
| | | import com.iailab.framework.common.pojo.PageResult; |
| | | import com.iailab.framework.common.util.object.BeanUtils; |
| | | import com.iailab.module.data.dev.controller.admin.nvr.vo.DevNvrPageReqVO; |
| | | import com.iailab.module.data.dev.controller.admin.nvr.vo.DevNvrSaveReqVO; |
| | | import com.iailab.module.data.dev.dto.DevNvrDTO; |
| | | import com.iailab.module.data.dev.service.DevNvrService; |
| | | |
| | | import io.swagger.v3.oas.annotations.Operation; |
| | | import io.swagger.v3.oas.annotations.Parameter; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.validation.Valid; |
| | | |
| | | import java.util.UUID; |
| | | |
| | | import static com.iailab.framework.common.pojo.CommonResult.success; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年03月07日 |
| | | */ |
| | | @RestController |
| | | @RequestMapping("/data/dev/nvr") |
| | | @Tag(name = "硬盘录像机") |
| | | public class DevNvrController { |
| | | |
| | | @Autowired |
| | | private DevNvrService devCameraService; |
| | | |
| | | @GetMapping("page") |
| | | @Operation(summary = "分页") |
| | | @PreAuthorize("@ss.hasPermission('dev:nvr:query')") |
| | | public CommonResult<PageResult<DevNvrDTO>> page(@Valid DevNvrPageReqVO pageReqVO) { |
| | | PageResult<DevNvrDTO> pageResult = devCameraService.getPage(pageReqVO); |
| | | return success(pageResult); |
| | | } |
| | | |
| | | @GetMapping("/get") |
| | | @Operation(summary = "信息") |
| | | @PreAuthorize("@ss.hasPermission('dev:nvr:query')") |
| | | @Parameter(name = "id", description = "编号", required = true, example = "1024") |
| | | public CommonResult<DevNvrDTO> get(@RequestParam("id") String id) { |
| | | DevNvrDTO data = devCameraService.get(id); |
| | | return success(data); |
| | | } |
| | | |
| | | @PostMapping("/create") |
| | | @Operation(summary = "保存") |
| | | @PreAuthorize("@ss.hasPermission('dev:nvr:save')") |
| | | public CommonResult<String> save(@RequestBody DevNvrSaveReqVO saveReqVO) { |
| | | String id = UUID.randomUUID().toString(); |
| | | saveReqVO.setId(id); |
| | | return success(devCameraService.save(saveReqVO)); |
| | | } |
| | | |
| | | @PutMapping("/update") |
| | | @Operation(summary = "修改") |
| | | @PreAuthorize("@ss.hasPermission('dev:nvr:update')") |
| | | public CommonResult<String> update(@RequestBody DevNvrSaveReqVO saveReqVO) { |
| | | return success(devCameraService.update(saveReqVO)); |
| | | } |
| | | |
| | | @DeleteMapping("/delete") |
| | | @Operation(summary = "删除") |
| | | @PreAuthorize("@ss.hasPermission('dev:nvr:delete')") |
| | | public CommonResult<Boolean> delete(@RequestParam("id") Long id) { |
| | | devCameraService.delete(id); |
| | | return success(true); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.controller.admin.nvr.vo; |
| | | |
| | | import com.iailab.framework.common.pojo.PageParam; |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import lombok.ToString; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年08月17日 |
| | | */ |
| | | @Schema(description = "硬盘录像机 Request VO") |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = true) |
| | | @ToString(callSuper = true) |
| | | public class DevNvrPageReqVO extends PageParam { |
| | | |
| | | private String brand; |
| | | |
| | | private String ip; |
| | | |
| | | private String code; |
| | | |
| | | private String name; |
| | | |
| | | private String device; |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.controller.admin.nvr.vo; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import lombok.Data; |
| | | |
| | | import javax.validation.constraints.NotNull; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年08月17日 |
| | | */ |
| | | @Schema(description = "硬盘录像机 Request VO") |
| | | @Data |
| | | public class DevNvrSaveReqVO { |
| | | |
| | | /** |
| | | * id |
| | | */ |
| | | @TableId |
| | | private String id; |
| | | |
| | | /** |
| | | * 编码 |
| | | */ |
| | | private String code; |
| | | |
| | | /** |
| | | * 品牌 |
| | | */ |
| | | private String brand; |
| | | |
| | | /** |
| | | * 名称 |
| | | */ |
| | | private String name; |
| | | |
| | | /** |
| | | * IP |
| | | */ |
| | | private String ip; |
| | | |
| | | /** |
| | | * 端口 |
| | | */ |
| | | private Integer port; |
| | | |
| | | /** |
| | | * 用户名 |
| | | */ |
| | | private String username; |
| | | |
| | | /** |
| | | * 密码 |
| | | */ |
| | | private String password; |
| | | |
| | | /** |
| | | * 设备类型 |
| | | */ |
| | | private String device; |
| | | |
| | | /** |
| | | * 位置 |
| | | */ |
| | | private String position; |
| | | |
| | | /** |
| | | * 状态 |
| | | */ |
| | | private Integer status; |
| | | |
| | | /** |
| | | * 备注 |
| | | */ |
| | | private String remark; |
| | | |
| | | /** |
| | | * 创建者 |
| | | */ |
| | | private Long creator; |
| | | |
| | | /** |
| | | * 创建时间 |
| | | */ |
| | | private Date createDate; |
| | | |
| | | /** |
| | | * 更新者 |
| | | */ |
| | | private Long updater; |
| | | |
| | | /** |
| | | * 更新时间 |
| | | */ |
| | | private Date updateDate; |
| | | |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.dahua; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.iailab.module.data.common.utils.HttpRequest; |
| | | import com.iailab.module.data.dev.dahua.frame.DHCapturePictureFrame; |
| | | import com.iailab.module.data.dev.task.CameraHeartTask; |
| | | import com.netsdk.common.Res; |
| | | import com.netsdk.demo.module.LoginModule; |
| | | import com.netsdk.demo.module.RealPlayModule; |
| | | import com.netsdk.lib.NetSDKLib; |
| | | import com.netsdk.lib.ToolKits; |
| | | import com.sun.jna.CallbackThreadInitializer; |
| | | import com.sun.jna.Native; |
| | | import com.sun.jna.ptr.IntByReference; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | |
| | | import java.awt.*; |
| | | import java.io.File; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年04月08日 |
| | | */ |
| | | public class DHCapturePictureClient { |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | // 登陆句柄 |
| | | public static NetSDKLib netsdk = NetSDKLib.NETSDK_INSTANCE; |
| | | |
| | | // 设备信息 |
| | | public static NetSDKLib.NET_DEVICEINFO_Ex m_stDeviceInfo = new NetSDKLib.NET_DEVICEINFO_Ex(); |
| | | |
| | | private static boolean bInit = false; |
| | | |
| | | private static boolean bLogopen = false; |
| | | |
| | | private boolean bLogin = false; |
| | | |
| | | private boolean bRealPlay = false; |
| | | |
| | | private Panel realPlayWindow = new Panel(); |
| | | |
| | | private String ip; |
| | | |
| | | private Vector<String> chnlist = new Vector<String>(); |
| | | |
| | | private DisConnect disConnect = new DisConnect(); |
| | | |
| | | private HaveReConnect haveReConnect = new HaveReConnect(); |
| | | |
| | | private DHCaptureReceiveCB m_CaptureReceiveCB = new DHCaptureReceiveCB(); |
| | | |
| | | public static boolean isInit () { |
| | | return bInit; |
| | | } |
| | | |
| | | public boolean isLogin () { |
| | | return bLogin; |
| | | } |
| | | |
| | | public String getIp () { |
| | | return ip; |
| | | } |
| | | |
| | | public Vector<String> getChnList() { |
| | | return chnlist; |
| | | } |
| | | |
| | | // 登陆句柄 |
| | | public NetSDKLib.LLong m_hLoginHandle = new NetSDKLib.LLong(0); |
| | | |
| | | // realplay handle |
| | | public NetSDKLib.LLong m_hPlayHandle = new NetSDKLib.LLong(0); |
| | | |
| | | private DHCapturePictureFrame cpf; |
| | | |
| | | DHCapturePictureClient() { |
| | | cpf = new DHCapturePictureFrame(realPlayWindow); |
| | | cpf.setVisible(true); |
| | | } |
| | | |
| | | /** |
| | | * 初始化SDK |
| | | * |
| | | * @return |
| | | */ |
| | | public boolean initSDK() { |
| | | |
| | | bInit = netsdk.CLIENT_Init(disConnect, null); |
| | | if(!bInit) { |
| | | System.out.println("Initialize SDK failed"); |
| | | return false; |
| | | } |
| | | |
| | | //打开日志,可选 |
| | | NetSDKLib.LOG_SET_PRINT_INFO setLog = new NetSDKLib.LOG_SET_PRINT_INFO(); |
| | | File path = new File("./sdklog/"); |
| | | if (!path.exists()) { |
| | | path.mkdir(); |
| | | } |
| | | String logPath = path.getAbsoluteFile().getParent() + "\\sdklog\\" + ToolKits.getDate() + ".log"; |
| | | setLog.nPrintStrategy = 0; |
| | | setLog.bSetFilePath = 1; |
| | | System.arraycopy(logPath.getBytes(), 0, setLog.szLogFilePath, 0, logPath.getBytes().length); |
| | | System.out.println(logPath); |
| | | setLog.bSetPrintStrategy = 1; |
| | | bLogopen = netsdk.CLIENT_LogOpen(setLog); |
| | | if(!bLogopen ) { |
| | | System.err.println("Failed to open NetSDK log"); |
| | | } |
| | | |
| | | // 设置断线重连回调接口,设置过断线重连成功回调函数后,当设备出现断线情况,SDK内部会自动进行重连操作 |
| | | // 此操作为可选操作,但建议用户进行设置 |
| | | netsdk.CLIENT_SetAutoReconnect(haveReConnect, null); |
| | | |
| | | //设置登录超时时间和尝试次数,可选 |
| | | int waitTime = 5000; //登录请求响应超时时间设置为5S |
| | | int tryTimes = 1; //登录时尝试建立链接1次 |
| | | netsdk.CLIENT_SetConnectTime(waitTime, tryTimes); |
| | | |
| | | |
| | | // 设置更多网络参数,NET_PARAM的nWaittime,nConnectTryNum成员与CLIENT_SetConnectTime |
| | | // 接口设置的登录设备超时时间和尝试次数意义相同,可选 |
| | | NetSDKLib.NET_PARAM netParam = new NetSDKLib.NET_PARAM(); |
| | | netParam.nConnectTime = 10000; // 登录时尝试建立链接的超时时间 |
| | | netParam.nGetConnInfoTime = 3000; // 设置子连接的超时时间 |
| | | netParam.nGetDevInfoTime = 3000;//获取设备信息超时时间,为0默认1000ms |
| | | netsdk.CLIENT_SetNetworkParam(netParam); |
| | | if (!bInit) { |
| | | logger.info("Initialize SDK Failed"); |
| | | } else { |
| | | logger.info("Initialize SDK Success"); |
| | | } |
| | | return bInit; |
| | | } |
| | | |
| | | /** |
| | | * \if ENGLISH_LANG |
| | | * CleanUp |
| | | * \else |
| | | * 清除环境 |
| | | * \endif |
| | | */ |
| | | public static void cleanup() { |
| | | if(bLogopen) { |
| | | netsdk.CLIENT_LogClose(); |
| | | } |
| | | |
| | | if(bInit) { |
| | | netsdk.CLIENT_Cleanup(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 登录设备 |
| | | * |
| | | * @param ip |
| | | * @param port |
| | | * @param username |
| | | * @param password |
| | | */ |
| | | public boolean login(String ip, int port, String username, String password) { |
| | | this.ip = ip; |
| | | if (!bInit) { |
| | | return false; |
| | | } |
| | | Native.setCallbackThreadInitializer(m_CaptureReceiveCB, |
| | | new CallbackThreadInitializer(false, false, "snapPicture callback thread")); |
| | | |
| | | //IntByReference nError = new IntByReference(0); |
| | | //入参 |
| | | NetSDKLib.NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY pstInParam=new NetSDKLib.NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY(); |
| | | pstInParam.nPort=port; |
| | | pstInParam.szIP=ip.getBytes(); |
| | | pstInParam.szPassword=password.getBytes(); |
| | | pstInParam.szUserName=username.getBytes(); |
| | | //出参 |
| | | NetSDKLib.NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY pstOutParam=new NetSDKLib.NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY(); |
| | | pstOutParam.stuDeviceInfo=m_stDeviceInfo; |
| | | //m_hLoginHandle = netsdk.CLIENT_LoginEx2(m_strIp, m_nPort, m_strUser, m_strPassword, 0, null, m_stDeviceInfo, nError); |
| | | m_hLoginHandle=netsdk.CLIENT_LoginWithHighLevelSecurity(pstInParam, pstOutParam); |
| | | boolean ret = m_hLoginHandle.longValue() == 0? false:true; |
| | | |
| | | if (ret) { |
| | | bLogin = true; |
| | | for (int i = 1; i < LoginModule.m_stDeviceInfo.byChanNum + 1; i++) { |
| | | chnlist.add(Res.string().getChannel() + " " + i); |
| | | } |
| | | NetSDKLib.NETSDK_INSTANCE.CLIENT_SetSnapRevCallBack(m_CaptureReceiveCB, null); |
| | | } else { |
| | | bLogin = false; |
| | | }; |
| | | return bLogin; |
| | | } |
| | | |
| | | /** |
| | | * 登出设备 |
| | | */ |
| | | public void logout() { |
| | | if(m_hLoginHandle.longValue() == 0) { |
| | | return; |
| | | } |
| | | RealPlayModule.stopRealPlay(m_hPlayHandle); |
| | | boolean bRet = netsdk.CLIENT_Logout(m_hLoginHandle); |
| | | if(bRet) { |
| | | m_hLoginHandle.setValue(0); |
| | | } |
| | | for (int i = 0; i < LoginModule.m_stDeviceInfo.byChanNum; i++) { |
| | | chnlist.clear(); |
| | | } |
| | | bInit = false; |
| | | } |
| | | |
| | | /** |
| | | * 远程抓图 |
| | | * |
| | | * @param channel |
| | | * @param serial |
| | | * @return |
| | | */ |
| | | public boolean remoteCapturePicture(int channel, int serial) { |
| | | if (!bLogin) { |
| | | logger.info("not login!"); |
| | | return false; |
| | | } |
| | | // send caputre picture command to device |
| | | NetSDKLib.SNAP_PARAMS stuSnapParams = new NetSDKLib.SNAP_PARAMS(); |
| | | stuSnapParams.Channel = channel; // channel |
| | | stuSnapParams.mode = 0; // capture picture mode |
| | | stuSnapParams.Quality = 3; // picture quality |
| | | stuSnapParams.InterSnap = 0; // timer capture picture time interval |
| | | stuSnapParams.CmdSerial = serial; // request serial |
| | | IntByReference reserved = new IntByReference(0); |
| | | return NetSDKLib.NETSDK_INSTANCE.CLIENT_SnapPictureEx(this.m_hLoginHandle, stuSnapParams, reserved); |
| | | } |
| | | |
| | | /** |
| | | * 开始预览 |
| | | * |
| | | * @param channel |
| | | * @param stream |
| | | * @param realPlayWindow |
| | | * @return |
| | | */ |
| | | public void startRealPlay(int channel, int stream, Panel realPlayWindow) { |
| | | this.m_hPlayHandle = netsdk.CLIENT_RealPlayEx(this.m_hLoginHandle, channel, Native.getComponentPointer(realPlayWindow), stream); |
| | | |
| | | if(m_hPlayHandle.longValue() == 0) { |
| | | System.err.println("开始实时预览失败,错误码" + ToolKits.getErrorCodePrint()); |
| | | } else { |
| | | System.out.println("Success to start realplay"); |
| | | } |
| | | bRealPlay = true; |
| | | } |
| | | |
| | | /** |
| | | * 停止预览 |
| | | */ |
| | | public void stopRealPlay() { |
| | | if(m_hPlayHandle.longValue() == 0) { |
| | | return; |
| | | } |
| | | |
| | | boolean bRet = netsdk.CLIENT_StopRealPlayEx(m_hPlayHandle); |
| | | if(bRet) { |
| | | m_hPlayHandle.setValue(0); |
| | | } |
| | | |
| | | realPlayWindow.repaint(); |
| | | bRealPlay = false; |
| | | } |
| | | |
| | | /** |
| | | * 本地抓图 |
| | | * |
| | | * @param channel |
| | | * @param cmdSerial |
| | | * @return |
| | | */ |
| | | public synchronized boolean localCapturePicture(int channel, int cmdSerial) { |
| | | System.out.println("localCapturePicture:"); |
| | | try { |
| | | this.startRealPlay(channel, 0, realPlayWindow); |
| | | if(!bRealPlay) { |
| | | return false; |
| | | } |
| | | Thread.sleep(2000); |
| | | Calendar calendar = Calendar.getInstance(); |
| | | String strFileName = DHSavePath.getSavePath().getSaveCapturePath(String.valueOf(cmdSerial), calendar.getTime()); |
| | | if (!netsdk.CLIENT_CapturePictureEx(this.m_hPlayHandle, strFileName, NetSDKLib.NET_CAPTURE_FORMATS.NET_CAPTURE_JPEG)) { |
| | | System.err.printf("CLIENT_CapturePicture Failed!" + ToolKits.getErrorCodePrint()); |
| | | return false; |
| | | } else { |
| | | System.out.println("CLIENT_CapturePicture success"); |
| | | // 开始识别 |
| | | Map<String, String> params = new HashMap<>(); |
| | | params.put("strFileName", strFileName); |
| | | params.put("cmdSerial", Integer.valueOf(cmdSerial).toString()); |
| | | HttpRequest.doPost(DHCaptureReceiveCB.url, JSON.toJSONString(params), "utf-8", ""); |
| | | |
| | | CameraHeartTask.cameraCapTime.put(Integer.valueOf(cmdSerial), System.currentTimeMillis()); |
| | | } |
| | | return true; |
| | | } catch (Exception ex) { |
| | | ex.printStackTrace(); |
| | | return false; |
| | | } finally { |
| | | this.stopRealPlay(); |
| | | } |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.dahua; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.iailab.module.data.common.utils.HttpRequest; |
| | | import com.iailab.module.data.dev.task.CameraHeartTask; |
| | | import com.netsdk.lib.NetSDKLib; |
| | | import com.sun.jna.Pointer; |
| | | |
| | | import javax.imageio.ImageIO; |
| | | import java.awt.image.BufferedImage; |
| | | import java.io.ByteArrayInputStream; |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.util.Calendar; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 设置抓图回调 |
| | | * |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年03月06日 |
| | | */ |
| | | public class DHCaptureReceiveCB implements NetSDKLib.fSnapRev { |
| | | |
| | | public static String url = "http://127.0.0.1:8080/iailab/api/recognition"; |
| | | |
| | | @Override |
| | | public void invoke(NetSDKLib.LLong lLoginID, Pointer pBuf, int revLen, int encodeType, int cmdSerial, Pointer dwUser) { |
| | | System.out.println("DHCaptureReceiveCB:"); |
| | | Calendar calendar = Calendar.getInstance(); |
| | | // calendar.set(Calendar.MONTH, 0); |
| | | // calendar.set(Calendar.SECOND, 0); |
| | | if (pBuf != null && revLen > 0) { |
| | | String strFileName = DHSavePath.getSavePath().getSaveCapturePath(String.valueOf(cmdSerial), calendar.getTime()); |
| | | System.out.println("cmdSerial=" + cmdSerial); |
| | | System.out.println("strFileName=" + strFileName); |
| | | |
| | | byte[] buf = pBuf.getByteArray(0, revLen); |
| | | ByteArrayInputStream byteArrInput = new ByteArrayInputStream(buf); |
| | | try { |
| | | BufferedImage bufferedImage = ImageIO.read(byteArrInput); |
| | | if (bufferedImage == null) { |
| | | return; |
| | | } |
| | | ImageIO.write(bufferedImage, "jpg", new File(strFileName)); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | // 开始识别 |
| | | Map<String, String> params = new HashMap<>(); |
| | | params.put("strFileName", strFileName); |
| | | params.put("cmdSerial", Integer.valueOf(cmdSerial).toString()); |
| | | HttpRequest.doPost(url, JSON.toJSONString(params), "utf-8", ""); |
| | | |
| | | CameraHeartTask.cameraCapTime.put(Integer.valueOf(cmdSerial), System.currentTimeMillis()); |
| | | } |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.dahua; |
| | | |
| | | import com.iailab.module.data.dev.dto.DevLogDTO; |
| | | import com.iailab.module.data.dev.dto.DevNvrDTO; |
| | | import com.iailab.module.data.dev.entity.DevNvrEntity; |
| | | import com.iailab.module.data.dev.enums.CameraStatusEnum; |
| | | import com.iailab.module.data.dev.service.DevLogService; |
| | | import com.iailab.module.data.dev.service.DevNvrService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年04月08日 |
| | | */ |
| | | @Component |
| | | public class DHClientFactory { |
| | | |
| | | @Autowired |
| | | private DevNvrService devNvrService; |
| | | |
| | | @Autowired |
| | | private DevLogService devLogService; |
| | | |
| | | private Map<String, DHCapturePictureClient> clientMap = new ConcurrentHashMap<>(); |
| | | |
| | | public synchronized DHCapturePictureClient getClient(String nvrId) { |
| | | if (clientMap.containsKey(nvrId)) { |
| | | return clientMap.get(nvrId); |
| | | } |
| | | |
| | | DHCapturePictureClient client = new DHCapturePictureClient(); |
| | | if (!DHCapturePictureClient.isInit()) { |
| | | boolean bInit = client.initSDK(); |
| | | DevLogDTO dto = new DevLogDTO(); |
| | | dto.setCreateDate(new Date()); |
| | | dto.setEvent("初始化SDK"); |
| | | dto.setDevId("SDK"); |
| | | dto.setContent(bInit ? "初始化SDK成功" : "初始化SDK失败"); |
| | | devLogService.save(dto); |
| | | } |
| | | DevNvrDTO devNvrDTO = devNvrService.get(nvrId); |
| | | if (!client.isLogin()) { |
| | | boolean bLogin = client.login(devNvrDTO.getIp(), devNvrDTO.getPort(), devNvrDTO.getUsername(), devNvrDTO.getPassword()); |
| | | |
| | | DevLogDTO dto = new DevLogDTO(); |
| | | dto.setCreateDate(new Date()); |
| | | dto.setEvent("登录设备"); |
| | | dto.setDevId(devNvrDTO.getIp()); |
| | | dto.setContent(bLogin ? "登录成功" : "登录失败"); |
| | | if (bLogin) { |
| | | devNvrService.setStatus(devNvrDTO.getIp(), CameraStatusEnum.ONLIEN.getCode()); |
| | | } else { |
| | | devNvrService.setStatus(devNvrDTO.getIp(), CameraStatusEnum.OFFLINE.getCode()); |
| | | } |
| | | devLogService.save(dto); |
| | | } |
| | | clientMap.put(nvrId, client); |
| | | return client; |
| | | } |
| | | |
| | | public void reLogin(DHCapturePictureClient client, String nvrId) { |
| | | DevNvrDTO devNvrDTO = devNvrService.get(nvrId); |
| | | boolean bLogin = client.login(devNvrDTO.getIp(), devNvrDTO.getPort(), devNvrDTO.getUsername(), devNvrDTO.getPassword()); |
| | | DevLogDTO dto = new DevLogDTO(); |
| | | dto.setCreateDate(new Date()); |
| | | dto.setEvent("登录设备"); |
| | | dto.setDevId(devNvrDTO.getIp()); |
| | | dto.setContent(bLogin ? "登录成功" : "登录失败"); |
| | | if (bLogin) { |
| | | devNvrService.setStatus(devNvrDTO.getIp(), CameraStatusEnum.ONLIEN.getCode()); |
| | | } else { |
| | | devNvrService.setStatus(devNvrDTO.getIp(), CameraStatusEnum.OFFLINE.getCode()); |
| | | } |
| | | devLogService.save(dto); |
| | | } |
| | | |
| | | // public void getNvrOnlineStatus(List<DevNvrEntity> nvrs) { |
| | | // nvrs.stream().forEach(nvr -> { |
| | | // DHCapturePictureClient client = getClient(nvr.getId().toString()); |
| | | // if(!client.isLogin()) { |
| | | // reLogin(client, nvr.getId().toString()); |
| | | // } |
| | | // boolean bLogin = client.login(nvr.getIp(), nvr.getPort(), nvr.getUsername(), nvr.getPassword()); |
| | | // DevLogDTO dto = new DevLogDTO(); |
| | | // dto.setCreateDate(new Date()); |
| | | // dto.setEvent("登录设备"); |
| | | // dto.setDevId(nvr.getIp()); |
| | | // dto.setContent(bLogin ? "登录成功" : "登录失败"); |
| | | // if (bLogin) { |
| | | // nvr.setStatus(CameraStatusEnum.ONLIEN.getCode()); |
| | | // devNvrService.setStatus(nvr.getIp(), CameraStatusEnum.ONLIEN.getCode()); |
| | | // } else { |
| | | // nvr.setStatus(CameraStatusEnum.OFFLINE.getCode()); |
| | | // devNvrService.setStatus(nvr.getIp(), CameraStatusEnum.OFFLINE.getCode()); |
| | | // } |
| | | // devLogService.save(dto); |
| | | // }); |
| | | // } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.dahua; |
| | | |
| | | import com.netsdk.lib.ToolKits; |
| | | |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年03月06日 |
| | | */ |
| | | public class DHSavePath { |
| | | |
| | | private DHSavePath() {} |
| | | |
| | | private static DHSavePath instance = new DHSavePath(); |
| | | |
| | | public final static String capturePath = "Z:/irs/Capture/"; |
| | | |
| | | public final static String modelPath = "Z:/irs/Model/"; |
| | | |
| | | public final static String capturePathUbuntu = "/home/dell/DLUT/irs/Capture/"; |
| | | |
| | | public final static String modelPathUbuntu = "/home/dell/DLUT/irs/Model/"; |
| | | |
| | | public static DHSavePath getSavePath() { |
| | | return instance; |
| | | } |
| | | |
| | | /** |
| | | * 设置抓图保存路径 |
| | | * |
| | | * @return |
| | | */ |
| | | public String getSaveCapturePath(String channel, Date curDate) { |
| | | File path1 = new File(capturePath); |
| | | if (!path1.exists()) { |
| | | path1.mkdir(); |
| | | } |
| | | |
| | | File path2 = new File(capturePath + ToolKits.getDay() + "/" + channel + "/"); |
| | | if (!path2.exists()) { |
| | | path2.mkdirs(); |
| | | } |
| | | |
| | | String strFileName = path2.getAbsolutePath() + "/" + ToolKits.getDate(curDate) + ".jpg"; |
| | | |
| | | return strFileName; |
| | | } |
| | | |
| | | /** |
| | | * 设置模型输出图片保存路径 |
| | | * |
| | | * @param cameraCode |
| | | * @param curDate |
| | | * @return |
| | | */ |
| | | public String getSaveModelPath(String cameraCode, Date curDate) throws IOException { |
| | | // File path1 = new File(modelPath); |
| | | // if (!path1.exists()) { |
| | | // path1.mkdir(); |
| | | // } |
| | | |
| | | File path2 = new File(modelPath + ToolKits.getDay() + "/" + cameraCode + "/"); |
| | | // if (!path2.exists()) { |
| | | // path2.mkdirs(); |
| | | // } |
| | | //return path2.getAbsolutePath() + "/"; |
| | | return path2.getAbsolutePath(); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.dahua; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.iailab.module.data.common.utils.HttpRequest; |
| | | import com.netsdk.lib.NetSDKLib; |
| | | import com.sun.jna.Pointer; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | | |
| | | /** |
| | | * 断线回调 |
| | | * |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年03月06日 |
| | | */ |
| | | public class DisConnect implements NetSDKLib.fDisConnect { |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | private String url = "http://127.0.0.1:8080/iailab/api/dis-connect"; |
| | | |
| | | @Override |
| | | public void invoke(NetSDKLib.LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { |
| | | logger.info("Device[%s] Port[%d] DisConnect!\n", pchDVRIP, nDVRPort); |
| | | Map<String, String> params = new HashMap<>(); |
| | | params.put("pchDVRIP", pchDVRIP); |
| | | params.put("nDVRPort", Integer.valueOf(nDVRPort).toString()); |
| | | HttpRequest.doPost(url, JSON.toJSONString(params), "utf-8", ""); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.dahua; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.iailab.module.data.common.utils.HttpRequest; |
| | | import com.netsdk.lib.NetSDKLib; |
| | | import com.sun.jna.Pointer; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 重连回调 |
| | | * |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年03月06日 |
| | | */ |
| | | public class HaveReConnect implements NetSDKLib.fHaveReConnect { |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | private String url = "http://127.0.0.1:8080/iailab/api/re-connect"; |
| | | |
| | | @Override |
| | | public void invoke(NetSDKLib.LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { |
| | | logger.info("ReConnect Device[%s] Port[%d]\n", pchDVRIP, nDVRPort); |
| | | |
| | | Map<String, String> params = new HashMap<>(); |
| | | params.put("pchDVRIP", pchDVRIP); |
| | | params.put("nDVRPort", Integer.valueOf(nDVRPort).toString()); |
| | | HttpRequest.doPost(url, JSON.toJSONString(params), "utf-8", ""); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.dahua.frame; |
| | | |
| | | import com.netsdk.common.BorderEx; |
| | | import com.netsdk.common.Res; |
| | | |
| | | import javax.swing.*; |
| | | import javax.swing.border.EmptyBorder; |
| | | import java.awt.*; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年04月15日 |
| | | */ |
| | | public class DHCapturePictureFrame extends JFrame { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public DHCapturePictureFrame(Panel realPlayWindow) { |
| | | setTitle(Res.string().getCapturePicture()); |
| | | setLayout(new BorderLayout()); |
| | | pack(); |
| | | setSize(800, 560); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | |
| | | this.realPlayWindow = realPlayWindow; |
| | | realPanel = new RealPanel(); |
| | | this.realPlayWindow.setEnabled(true); |
| | | |
| | | add(realPanel, BorderLayout.CENTER); |
| | | } |
| | | |
| | | /* |
| | | * realplay show and control panel |
| | | */ |
| | | private class RealPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public RealPanel() { |
| | | BorderEx.set(this, Res.string().getRealplay(), 2); |
| | | setLayout(new BorderLayout()); |
| | | |
| | | realplayPanel = new JPanel(); |
| | | add(realplayPanel, BorderLayout.CENTER); |
| | | |
| | | /************ realplay panel **************/ |
| | | realplayPanel.setLayout(new BorderLayout()); |
| | | realplayPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); |
| | | //realPlayWindow = new Panel(); |
| | | realPlayWindow.setBackground(Color.GRAY); |
| | | realplayPanel.add(realPlayWindow, BorderLayout.CENTER); |
| | | |
| | | realPlayWindow.setEnabled(false); |
| | | |
| | | } |
| | | } |
| | | |
| | | private RealPanel realPanel; |
| | | private JPanel realplayPanel; |
| | | private Panel realPlayWindow; |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.dao; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.iailab.framework.common.dao.BaseDao; |
| | | import com.iailab.module.data.dev.dto.AlarmCameraDTO; |
| | | import com.iailab.module.data.dev.entity.AlarmCameraEntity; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年03月09日 |
| | | */ |
| | | @Mapper |
| | | public interface AlarmCameraDao extends BaseDao<AlarmCameraEntity> { |
| | | |
| | | IPage<AlarmCameraDTO> getPage(IPage<AlarmCameraEntity> page, @Param("params") Map<String, Object> params); |
| | | |
| | | int updateEnableBatch(Map<String, Object> map); |
| | | |
| | | List<AlarmCameraDTO> getList(Map<String, Object> params); |
| | | |
| | | AlarmCameraDTO getByCameraCode(Integer cameraCode); |
| | | |
| | | AlarmCameraDTO getByCameraId(String cameraId); |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.dao; |
| | | |
| | | import com.iailab.framework.common.pojo.PageResult; |
| | | import com.iailab.framework.mybatis.core.mapper.BaseMapperX; |
| | | import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX; |
| | | import com.iailab.framework.tenant.core.db.dynamic.TenantDS; |
| | | import com.iailab.module.data.dev.controller.admin.camera.vo.DevCameraPageReqVO; |
| | | import com.iailab.module.data.dev.dto.DevCameraDTO; |
| | | import com.iailab.module.data.dev.entity.DevCameraEntity; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年02月27日 |
| | | */ |
| | | @TenantDS |
| | | @Mapper |
| | | public interface DevCameraDao extends BaseMapperX<DevCameraEntity> { |
| | | |
| | | default PageResult<DevCameraEntity> selectPage(DevCameraPageReqVO pageReqVO) { |
| | | return selectPage(pageReqVO, new LambdaQueryWrapperX<DevCameraEntity>() |
| | | .eq(DevCameraEntity::getNvrId, pageReqVO.getNvrId()) |
| | | .likeIfPresent(DevCameraEntity::getLocation, pageReqVO.getLocation()) |
| | | .orderByDesc(DevCameraEntity::getId)); |
| | | } |
| | | |
| | | List<DevCameraDTO> apiCameraList(); |
| | | |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.dao; |
| | | |
| | | import com.iailab.framework.common.dao.BaseDao; |
| | | import com.iailab.module.data.dev.entity.DevImageEntity; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年02月27日 |
| | | */ |
| | | @Mapper |
| | | public interface DevImageDao extends BaseDao<DevImageEntity> { |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.dao; |
| | | |
| | | import com.iailab.framework.common.dao.BaseDao; |
| | | import com.iailab.module.data.dev.entity.DevLogEntity; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年03月06日 |
| | | */ |
| | | @Mapper |
| | | public interface DevLogDao extends BaseDao<DevLogEntity> { |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.dao; |
| | | |
| | | import com.iailab.framework.common.pojo.PageResult; |
| | | import com.iailab.framework.mybatis.core.mapper.BaseMapperX; |
| | | import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX; |
| | | import com.iailab.framework.tenant.core.db.dynamic.TenantDS; |
| | | import com.iailab.module.data.dev.controller.admin.nvr.vo.DevNvrPageReqVO; |
| | | import com.iailab.module.data.dev.entity.DevNvrEntity; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年03月06日 |
| | | */ |
| | | @TenantDS |
| | | @Mapper |
| | | public interface DevNvrDao extends BaseMapperX<DevNvrEntity> { |
| | | |
| | | default PageResult<DevNvrEntity> selectPage(DevNvrPageReqVO pageReqVO) { |
| | | return selectPage(pageReqVO, new LambdaQueryWrapperX<DevNvrEntity>() |
| | | .eqIfPresent(DevNvrEntity::getBrand, pageReqVO.getBrand()) |
| | | .likeIfPresent(DevNvrEntity::getDevice, pageReqVO.getDevice()) |
| | | .likeIfPresent(DevNvrEntity::getIp, pageReqVO.getIp()) |
| | | .likeIfPresent(DevNvrEntity::getCode, pageReqVO.getCode()) |
| | | .likeIfPresent(DevNvrEntity::getName, pageReqVO.getName()) |
| | | .orderByDesc(DevNvrEntity::getId)); |
| | | } |
| | | |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.dto; |
| | | |
| | | import com.iailab.framework.common.validation.group.AddGroup; |
| | | import com.iailab.framework.common.validation.group.UpdateGroup; |
| | | import lombok.Data; |
| | | |
| | | import javax.validation.constraints.NotNull; |
| | | import javax.validation.constraints.Null; |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年03月09日 |
| | | */ |
| | | @Data |
| | | public class AlarmCameraDTO implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @Null(message="{id.null}", groups = AddGroup.class) |
| | | @NotNull(message="{id.require}", groups = UpdateGroup.class) |
| | | private String id; |
| | | |
| | | private String cameraId; |
| | | |
| | | private Integer cameraCode; |
| | | |
| | | private Integer channel; |
| | | |
| | | private String point; |
| | | |
| | | private String location; |
| | | |
| | | private Integer alarmStatus; |
| | | |
| | | private Date alarmTime; |
| | | |
| | | private String alarmMsg; |
| | | |
| | | private Integer isEnable; |
| | | |
| | | private Integer sort; |
| | | |
| | | private Date lastTime; |
| | | |
| | | private Integer dx; |
| | | |
| | | private Integer dy; |
| | | |
| | | private Integer isShow; |
| | | |
| | | private Integer frequency; |
| | | |
| | | private String modelId; |
| | | |
| | | private String modelName; |
| | | |
| | | private String descInfo; |
| | | |
| | | private Date createDate; |
| | | |
| | | private Integer alarmTotal; |
| | | |
| | | private String pointName; |
| | | |
| | | private String nvrId; |
| | | |
| | | private String imageUrl; |
| | | |
| | | private String captureType; |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.dto; |
| | | |
| | | import com.iailab.framework.common.validation.group.AddGroup; |
| | | import com.iailab.framework.common.validation.group.UpdateGroup; |
| | | import lombok.Data; |
| | | |
| | | import javax.validation.constraints.NotNull; |
| | | import javax.validation.constraints.Null; |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年02月27日 |
| | | */ |
| | | @Data |
| | | public class DevCameraDTO implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @Null(message="{id.null}", groups = AddGroup.class) |
| | | @NotNull(message="{id.require}", groups = UpdateGroup.class) |
| | | private String id; |
| | | |
| | | private Integer code; |
| | | |
| | | private String factory; |
| | | |
| | | private String unit; |
| | | |
| | | private String factoryName; |
| | | |
| | | private String unitName; |
| | | |
| | | private String brand; |
| | | |
| | | private String point; |
| | | |
| | | private String location; |
| | | |
| | | private String nvrId; |
| | | |
| | | private String ip; |
| | | |
| | | private String port; |
| | | |
| | | private Integer channel; |
| | | |
| | | private String captureType; |
| | | |
| | | private String username; |
| | | |
| | | private String password; |
| | | |
| | | private Integer status; |
| | | |
| | | private String remark; |
| | | |
| | | private Long creator; |
| | | |
| | | private Date createDate; |
| | | |
| | | private Long updater; |
| | | |
| | | private Date updateDate; |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.dto; |
| | | |
| | | import com.iailab.framework.common.validation.group.AddGroup; |
| | | import com.iailab.framework.common.validation.group.UpdateGroup; |
| | | import lombok.Data; |
| | | |
| | | import javax.validation.constraints.NotNull; |
| | | import javax.validation.constraints.Null; |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年02月27日 |
| | | */ |
| | | @Data |
| | | public class DevImageDTO implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @Null(message="{id.null}", groups = AddGroup.class) |
| | | @NotNull(message="{id.require}", groups = UpdateGroup.class) |
| | | private String id; |
| | | |
| | | private String cameraId; |
| | | |
| | | private String imagePath; |
| | | |
| | | private String imageUrl; |
| | | |
| | | private Date createDate; |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.dto; |
| | | |
| | | import com.iailab.framework.common.validation.group.AddGroup; |
| | | import com.iailab.framework.common.validation.group.UpdateGroup; |
| | | import lombok.Data; |
| | | |
| | | import javax.validation.constraints.NotNull; |
| | | import javax.validation.constraints.Null; |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年03月06日 |
| | | */ |
| | | @Data |
| | | public class DevLogDTO implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @Null(message="{id.null}", groups = AddGroup.class) |
| | | @NotNull(message="{id.require}", groups = UpdateGroup.class) |
| | | private String id; |
| | | |
| | | /** |
| | | * 设备ID |
| | | */ |
| | | private String devId; |
| | | |
| | | /** |
| | | * 事件 |
| | | */ |
| | | private String event; |
| | | |
| | | /** |
| | | * 内容 |
| | | */ |
| | | private String content; |
| | | |
| | | /** |
| | | * 创建时间 |
| | | */ |
| | | private Date createDate; |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.dto; |
| | | |
| | | import com.iailab.framework.common.validation.group.AddGroup; |
| | | import com.iailab.framework.common.validation.group.UpdateGroup; |
| | | import lombok.Data; |
| | | |
| | | import javax.validation.constraints.NotNull; |
| | | import javax.validation.constraints.Null; |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年03月06日 |
| | | */ |
| | | @Data |
| | | public class DevNvrDTO implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @Null(message="{id.null}", groups = AddGroup.class) |
| | | @NotNull(message="{id.require}", groups = UpdateGroup.class) |
| | | private String id; |
| | | |
| | | /** |
| | | * 编码 |
| | | */ |
| | | private String code; |
| | | |
| | | /** |
| | | * 品牌 |
| | | */ |
| | | private Integer brand; |
| | | |
| | | /** |
| | | * 名称 |
| | | */ |
| | | private String name; |
| | | |
| | | /** |
| | | * IP |
| | | */ |
| | | private String ip; |
| | | |
| | | /** |
| | | * 端口 |
| | | */ |
| | | private Integer port; |
| | | |
| | | /** |
| | | * 用户名 |
| | | */ |
| | | private String username; |
| | | |
| | | /** |
| | | * 密码 |
| | | */ |
| | | private String password; |
| | | |
| | | /** |
| | | * 设备类型 |
| | | */ |
| | | private String device; |
| | | |
| | | /** |
| | | * 位置 |
| | | */ |
| | | private String position; |
| | | |
| | | /** |
| | | * 状态 |
| | | */ |
| | | private Integer status; |
| | | |
| | | /** |
| | | * 备注 |
| | | */ |
| | | private String remark; |
| | | |
| | | /** |
| | | * 创建者 |
| | | */ |
| | | private Long creator; |
| | | |
| | | /** |
| | | * 创建时间 |
| | | */ |
| | | private Date createDate; |
| | | |
| | | /** |
| | | * 更新者 |
| | | */ |
| | | private Long updater; |
| | | |
| | | /** |
| | | * 更新时间 |
| | | */ |
| | | private Date updateDate; |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.entity; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.FieldFill; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | @TableName("t_alarm_camera") |
| | | public class AlarmCameraEntity implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * id |
| | | */ |
| | | @TableId |
| | | private String id; |
| | | |
| | | /** |
| | | * 摄像头ID |
| | | */ |
| | | private String cameraId; |
| | | |
| | | /** |
| | | * 预警状态(0:无排放,1:有排放,2,设备异常) |
| | | */ |
| | | private Integer alarmStatus; |
| | | |
| | | /** |
| | | * 报警时间 |
| | | */ |
| | | private Date alarmTime; |
| | | |
| | | /** |
| | | * 报警内容 |
| | | */ |
| | | private String alarmMsg; |
| | | |
| | | /** |
| | | * 是否启用(0:禁用,1:启用) |
| | | */ |
| | | private Integer isEnable; |
| | | |
| | | /** |
| | | * 排序 |
| | | */ |
| | | private Integer sort; |
| | | |
| | | /** |
| | | * 最后报警 |
| | | */ |
| | | private Date lastTime; |
| | | |
| | | /** |
| | | * 横坐标 |
| | | */ |
| | | private Integer dx; |
| | | |
| | | /** |
| | | * 纵坐标 |
| | | */ |
| | | private Integer dy; |
| | | |
| | | /** |
| | | * 是否显示 |
| | | */ |
| | | private Integer isShow; |
| | | |
| | | /** |
| | | * 执行频率 |
| | | */ |
| | | private Integer frequency; |
| | | |
| | | /** |
| | | * 模型ID |
| | | */ |
| | | private String modelId; |
| | | |
| | | /** |
| | | * 描述信息 |
| | | */ |
| | | private String descInfo; |
| | | |
| | | /** |
| | | * 创建者 |
| | | */ |
| | | @TableField(fill = FieldFill.INSERT) |
| | | private Long creator; |
| | | |
| | | /** |
| | | * 创建时间 |
| | | */ |
| | | @TableField(fill = FieldFill.INSERT) |
| | | private Date createDate; |
| | | |
| | | /** |
| | | * 更新者 |
| | | */ |
| | | @TableField(fill = FieldFill.INSERT_UPDATE) |
| | | private Long updater; |
| | | |
| | | /** |
| | | * 更新时间 |
| | | */ |
| | | @TableField(fill = FieldFill.INSERT_UPDATE) |
| | | private Date updateDate; |
| | | |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.entity; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | public class DataEntity { |
| | | |
| | | private Date timeStamp; |
| | | |
| | | private Object dataValue; |
| | | |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.entity; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.annotation.FieldFill; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | @TableName("t_dev_camera") |
| | | public class DevCameraEntity implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * id |
| | | */ |
| | | @TableId |
| | | private String id; |
| | | |
| | | /** |
| | | * 编码 |
| | | */ |
| | | private Integer code; |
| | | |
| | | /** |
| | | * 厂部 |
| | | */ |
| | | private String factory; |
| | | |
| | | /** |
| | | * 单元 |
| | | */ |
| | | private String unit; |
| | | |
| | | /** |
| | | * 品牌 |
| | | */ |
| | | private String brand; |
| | | |
| | | /** |
| | | * 监控点位 |
| | | */ |
| | | private String point; |
| | | |
| | | /** |
| | | * 监控区域 |
| | | */ |
| | | private String location; |
| | | |
| | | /** |
| | | * 录像机ID |
| | | */ |
| | | private String nvrId; |
| | | |
| | | /** |
| | | * IP |
| | | */ |
| | | private String ip; |
| | | |
| | | /** |
| | | * 端口 |
| | | */ |
| | | private String port; |
| | | |
| | | /** |
| | | * 通道 |
| | | */ |
| | | private Integer channel; |
| | | |
| | | /** |
| | | * 用户名 |
| | | */ |
| | | private String username; |
| | | |
| | | /** |
| | | * 密码 |
| | | */ |
| | | private String password; |
| | | |
| | | /** |
| | | * 状态 |
| | | */ |
| | | private Integer status; |
| | | |
| | | /** |
| | | * 备注 |
| | | */ |
| | | private String remark; |
| | | |
| | | /** |
| | | * 抓图方式 |
| | | */ |
| | | private String captureType; |
| | | |
| | | /** |
| | | * 创建者 |
| | | */ |
| | | @TableField(fill = FieldFill.INSERT) |
| | | private Long creator; |
| | | |
| | | /** |
| | | * 创建时间 |
| | | */ |
| | | @TableField(fill = FieldFill.INSERT) |
| | | private Date createDate; |
| | | |
| | | /** |
| | | * 更新者 |
| | | */ |
| | | @TableField(fill = FieldFill.INSERT_UPDATE) |
| | | private Long updater; |
| | | |
| | | /** |
| | | * 更新时间 |
| | | */ |
| | | @TableField(fill = FieldFill.INSERT_UPDATE) |
| | | private Date updateDate; |
| | | |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.entity; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | @TableName("t_dev_image") |
| | | public class DevImageEntity implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * id |
| | | */ |
| | | @TableId |
| | | private String id; |
| | | |
| | | /** |
| | | * 摄像头ID |
| | | */ |
| | | private String cameraId; |
| | | |
| | | /** |
| | | * 图片路径 |
| | | */ |
| | | private String imagePath; |
| | | |
| | | /** |
| | | * 图片地址 |
| | | */ |
| | | private String imageUrl; |
| | | |
| | | /** |
| | | * 创建时间 |
| | | */ |
| | | private Date createDate; |
| | | |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.entity; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | @TableName("t_dev_log") |
| | | public class DevLogEntity implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * id |
| | | */ |
| | | @TableId |
| | | private Long id; |
| | | |
| | | /** |
| | | * 设备ID |
| | | */ |
| | | private String devId; |
| | | |
| | | /** |
| | | * 事件 |
| | | */ |
| | | private String event; |
| | | |
| | | /** |
| | | * 内容 |
| | | */ |
| | | private String content; |
| | | |
| | | /** |
| | | * 创建时间 |
| | | */ |
| | | private Date createDate; |
| | | |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.entity; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | @TableName("t_dev_nvr") |
| | | public class DevNvrEntity implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * id |
| | | */ |
| | | @TableId |
| | | private String id; |
| | | |
| | | /** |
| | | * 编码 |
| | | */ |
| | | private String code; |
| | | |
| | | /** |
| | | * 品牌 |
| | | */ |
| | | private Integer brand; |
| | | |
| | | /** |
| | | * 名称 |
| | | */ |
| | | private String name; |
| | | |
| | | /** |
| | | * IP |
| | | */ |
| | | private String ip; |
| | | |
| | | /** |
| | | * 端口 |
| | | */ |
| | | private Integer port; |
| | | |
| | | /** |
| | | * 用户名 |
| | | */ |
| | | private String username; |
| | | |
| | | /** |
| | | * 密码 |
| | | */ |
| | | private String password; |
| | | |
| | | /** |
| | | * 设备类型 |
| | | */ |
| | | private String device; |
| | | |
| | | /** |
| | | * 位置 |
| | | */ |
| | | private String position; |
| | | |
| | | /** |
| | | * 状态 |
| | | */ |
| | | private Integer status; |
| | | |
| | | /** |
| | | * 备注 |
| | | */ |
| | | private String remark; |
| | | |
| | | /** |
| | | * 创建者 |
| | | */ |
| | | private Long creator; |
| | | |
| | | /** |
| | | * 创建时间 |
| | | */ |
| | | private Date createDate; |
| | | |
| | | /** |
| | | * 更新者 |
| | | */ |
| | | private Long updater; |
| | | |
| | | /** |
| | | * 更新时间 |
| | | */ |
| | | private Date updateDate; |
| | | |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.enums; |
| | | |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.Getter; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年03月12日 |
| | | */ |
| | | @Getter |
| | | @AllArgsConstructor |
| | | public enum AlarmStatusEnum { |
| | | |
| | | NORMAL(0,"无排放"), |
| | | POLLUTION(1,"有排放"), |
| | | EXCEPTION(2,"设备异常"); |
| | | |
| | | private Integer code; |
| | | private String desc; |
| | | |
| | | public static AlarmStatusEnum getEumByCode(Integer code){ |
| | | if(code == null) {return null;} |
| | | |
| | | for(AlarmStatusEnum statusEnum: AlarmStatusEnum.values()) { |
| | | if(statusEnum.getCode().equals(code)) { |
| | | return statusEnum; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.enums; |
| | | |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.Getter; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年03月30日 |
| | | */ |
| | | @Getter |
| | | @AllArgsConstructor |
| | | public enum CameraStatusEnum { |
| | | |
| | | ONLIEN(0,"在线"), |
| | | OFFLINE(1,"离线"); |
| | | |
| | | private Integer code; |
| | | private String desc; |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.enums; |
| | | |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.Getter; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年04月15日 |
| | | */ |
| | | @Getter |
| | | @AllArgsConstructor |
| | | public enum CaptureTypeEnum { |
| | | |
| | | REMOTE("remote","远程抓图"), |
| | | LOCAL("local","本地抓图"); |
| | | |
| | | private String code; |
| | | private String desc; |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.hikvision; |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.hikvision.utils; |
| | | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | |
| | | public class CommonUtils { |
| | | /** |
| | | *<p>获取当前日期<p> |
| | | *<p>格式yyyyMMdd<p> |
| | | */ |
| | | public static String getCurrDate(){ |
| | | Date date=new Date(); |
| | | SimpleDateFormat df1 = new SimpleDateFormat("yyyyMMdd"); |
| | | String tDate = df1.format(date); |
| | | return tDate; |
| | | } |
| | | |
| | | /** |
| | | *<p>获取当前时间<p> |
| | | *<p>格式yyyyMMddHHmmss<p> |
| | | */ |
| | | public static String getCurrDate2(){ |
| | | Date date=new Date(); |
| | | SimpleDateFormat df1 = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String tDate = df1.format(date); |
| | | return tDate; |
| | | } |
| | | |
| | | /** |
| | | *<p>获取当前时间<p> |
| | | *<p>格式yyyy-MM-dd HH:mm:ss<p> |
| | | */ |
| | | public static String getCurrDate3(){ |
| | | Date date=new Date(); |
| | | SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | String tDate = df1.format(date); |
| | | return tDate; |
| | | } |
| | | |
| | | /** |
| | | * 由年月日时分秒+3位随机数 |
| | | * 生成流水号 |
| | | * @return |
| | | */ |
| | | public static Long Getnum(){ |
| | | String t = getCurrDate2(); |
| | | int x=(int)(Math.random()*900)+100; |
| | | String serial = t + x; |
| | | Long num = new Long(serial); |
| | | return num; |
| | | } |
| | | |
| | | //主方法测试 |
| | | public static void main(String[] args) { |
| | | System.out.println(Getnum()); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.hikvision.utils; |
| | | |
| | | import com.alibaba.fastjson.JSONException; |
| | | import com.sun.jna.Native; |
| | | import com.sun.jna.NativeLong; |
| | | import com.sun.jna.Platform; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.PreDestroy; |
| | | import java.io.File; |
| | | import java.util.ArrayList; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | |
| | | @Slf4j |
| | | @Component |
| | | public class HIKDevice { |
| | | |
| | | // 接口的实例,通过接口实例调用外部dll/so的函数 |
| | | public static HCNetSDK hCNetSDK = null; |
| | | |
| | | // 用户登录返回句柄 |
| | | public static int lUserID; |
| | | //构造函数 |
| | | public HIKDevice(){ |
| | | if (hCNetSDK == null) { |
| | | synchronized (HCNetSDK.class) { |
| | | try { |
| | | if (Platform.isWindows()) { |
| | | hCNetSDK = (HCNetSDK) Native.loadLibrary(MessageCode.HIK_WIN_PATH, HCNetSDK.class); |
| | | } |
| | | if (Platform.isLinux()) { |
| | | hCNetSDK = (HCNetSDK) Native.loadLibrary(MessageCode.HIK_LINUX_PATH, HCNetSDK.class); |
| | | } |
| | | } catch (Exception ex) { |
| | | log.error("SdkInitService-init-hCNetSDK-error"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | /** |
| | | * 初始化资源配置 |
| | | */ |
| | | public int initDevices(){ |
| | | System.out.println("进入构造函数"); |
| | | // 初始化SDK |
| | | boolean initSuc = hCNetSDK.NET_DVR_Init(); |
| | | if (initSuc != true) { |
| | | System.out.println("初始化失败"); |
| | | return 1; |
| | | } |
| | | // 设置连接时间与重连时间 |
| | | hCNetSDK.NET_DVR_SetConnectTime(2000, 1); |
| | | System.out.println("初始化SDK资源完成"); |
| | | return 0; |
| | | } |
| | | |
| | | //销毁函数 |
| | | @PreDestroy |
| | | public void destroy() throws Exception { |
| | | hCNetSDK.NET_DVR_Cleanup(); |
| | | } |
| | | |
| | | /* |
| | | * 功能:登录设备 |
| | | * 参数: |
| | | * deviceIP-设备局域网IP地址 |
| | | * devicePort-设备SDK服务端口 |
| | | * userName-用户名 |
| | | * passWord-密码 |
| | | * */ |
| | | // public String loginDevice() throws JSONException { |
| | | // if (!getDeviceStatus()) { |
| | | // int init = initDevices(); |
| | | // if (init == 1) { |
| | | // return "初始化失败"; |
| | | // } |
| | | // ArrayList<String> list = mZnfxCodeService.getDriverInfo("driverinfo"); |
| | | // if (list != null && list.size() > 0) { |
| | | // String driverip = list.get(0); |
| | | // String driverport = list.get(1); |
| | | // String username = list.get(2); |
| | | // String password = list.get(3); |
| | | // String returnVal = Login_V40(driverip, Short.parseShort(driverport), username, password); |
| | | // System.out.println(returnVal); |
| | | // return returnVal; |
| | | // } else { |
| | | // return "获取设备信息失败!"; |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // String result = captureJPEGPicture(); |
| | | // System.out.println(result); |
| | | // return result; |
| | | // } |
| | | // |
| | | // } |
| | | |
| | | /** |
| | | * |
| | | * @param m_sDeviceIP 设备ip地址 |
| | | * @param wPort 端口号,设备网络SDK登录默认端口8000 |
| | | * @param m_sUsername 用户名 |
| | | * @param m_sPassword 密码 |
| | | */ |
| | | public String Login_V40(String m_sDeviceIP,short wPort,String m_sUsername,String m_sPassword) { |
| | | /* 注册 */ |
| | | // 设备登录信息 |
| | | HCNetSDK.NET_DVR_USER_LOGIN_INFO m_strLoginInfo = new HCNetSDK.NET_DVR_USER_LOGIN_INFO(); |
| | | |
| | | // 设备信息 |
| | | HCNetSDK.NET_DVR_DEVICEINFO_V40 m_strDeviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V40(); |
| | | m_strLoginInfo.sDeviceAddress = new byte[HCNetSDK.NET_DVR_DEV_ADDRESS_MAX_LEN]; |
| | | System.arraycopy(m_sDeviceIP.getBytes(), 0, m_strLoginInfo.sDeviceAddress, 0, m_sDeviceIP.length()); |
| | | m_strLoginInfo.wPort =wPort ; |
| | | m_strLoginInfo.sUserName = new byte[HCNetSDK.NET_DVR_LOGIN_USERNAME_MAX_LEN]; |
| | | System.arraycopy(m_sUsername.getBytes(), 0, m_strLoginInfo.sUserName, 0, m_sUsername.length()); |
| | | m_strLoginInfo.sPassword = new byte[HCNetSDK.NET_DVR_LOGIN_PASSWD_MAX_LEN]; |
| | | System.arraycopy(m_sPassword.getBytes(), 0, m_strLoginInfo.sPassword, 0, m_sPassword.length()); |
| | | // 是否异步登录:false- 否,true- 是 |
| | | m_strLoginInfo.bUseAsynLogin = false; |
| | | // write()调用后数据才写入到内存中 |
| | | m_strLoginInfo.write(); |
| | | |
| | | lUserID = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo); |
| | | if (lUserID == -1) { |
| | | // updateZnfxPostalStatus(PostalStatus.ABNORMAL.value()); |
| | | // mZnfxPostalStatusService.changeStatus(MessageCode.POSTAL_STATUS_TYPE_CAMERA, PostalStatus.ABNORMAL.value()); |
| | | |
| | | System.out.println("登录失败,错误码为" + hCNetSDK.NET_DVR_GetLastError()); |
| | | return "登录失败,错误码为" + hCNetSDK.NET_DVR_GetLastError(); |
| | | } else { |
| | | System.out.println("登录成功!"); |
| | | // read()后,结构体中才有对应的数据 |
| | | m_strDeviceInfo.read(); |
| | | // updateZnfxPostalStatus(PostalStatus.NORMAL.value()); |
| | | // mZnfxPostalStatusService.changeStatus(MessageCode.POSTAL_STATUS_TYPE_CAMERA, PostalStatus.NORMAL.value()); |
| | | |
| | | String result = captureJPEGPicture(); |
| | | |
| | | return result; |
| | | } |
| | | } |
| | | |
| | | //注销设备 |
| | | public String logoutDevice() |
| | | { |
| | | NativeLong nlUserID = new NativeLong(lUserID); |
| | | if (!hCNetSDK.NET_DVR_Logout(nlUserID)) |
| | | { |
| | | System.out.println("注销失败,设备ID:"+ nlUserID.intValue() + "错误码:"+hCNetSDK.NET_DVR_GetLastError()); |
| | | return "{\"result\":\"loginDevice Fail\",\"userID\":"+nlUserID.intValue()+",\"errorCode\":"+hCNetSDK.NET_DVR_GetLastError()+"}"; |
| | | }else{ |
| | | System.out.println("注销成功,设备ID:"+ nlUserID.intValue()); |
| | | return "{\"result\":\"logoutDevice Success\",\"userID\":"+nlUserID.intValue()+",\"errorCode\":0}"; |
| | | } |
| | | } |
| | | /** |
| | | * 设备抓图(无预览) |
| | | * 单帧设备抓取保存的图片为JPG,具体注意问题需要详细查看【设备网络sdk使用手册】 |
| | | * @return |
| | | */ |
| | | public String captureJPEGPicture() |
| | | { |
| | | // ArrayList<String> list = mZnfxCodeService.getDriverInfo("driverpic"); |
| | | List<String> list = new ArrayList<>(); |
| | | list.add("tlChannel"); |
| | | list.add("tlPicSize"); |
| | | list.add("tlPicQuality"); |
| | | if (list != null && list.size() > 0) { |
| | | int tlChannel = Integer.parseInt(list.get(0)); |
| | | int tlPicSize = Integer.parseInt(list.get(1)); |
| | | int tlPicQuality = Integer.parseInt(list.get(2)); |
| | | |
| | | NativeLong nlUserID = new NativeLong(lUserID); |
| | | NativeLong nChannel = new NativeLong(tlChannel); |
| | | HCNetSDK.NET_DVR_JPEGPARA lpJpegPara = new HCNetSDK.NET_DVR_JPEGPARA(); |
| | | lpJpegPara.wPicSize = (short)tlPicSize; |
| | | lpJpegPara.wPicQuality = (short)tlPicQuality; |
| | | // 参数必须写入到结构体,否则在保存图片的时候异常图片 |
| | | lpJpegPara.write(); |
| | | String tFiledirName = CommonUtils.getCurrDate();//yyyyMMdd |
| | | // 创建文件名称 |
| | | String tDatePath = MessageCode.DvrPicSavePath+"/"+tFiledirName; |
| | | // 判断文件夹是否创建 |
| | | File tFile = new File(tDatePath); |
| | | if (!tFile.exists()){ |
| | | tFile.mkdirs(); |
| | | } |
| | | String tDate = CommonUtils.getCurrDate2();//yyyyMMddHHmmss |
| | | // 文件名称 |
| | | String tImageName = tDate +".png"; |
| | | // 全路径 |
| | | String tPath = tDatePath+"/"+tImageName; |
| | | // 开始抓图 |
| | | if (!hCNetSDK.NET_DVR_CaptureJPEGPicture(nlUserID, nChannel, lpJpegPara, tPath)) |
| | | { |
| | | return "失败编码:"+hCNetSDK.NET_DVR_GetLastError() ; |
| | | }else { |
| | | Long tImageId = CommonUtils.Getnum();//生成流水号 |
| | | // saveZnfxImageInfo(tFiledirName,tImageName,tPath,tImageId); |
| | | |
| | | return "success>>>>>>>>>>>" + tImageName; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | return "login fail>>>>>>>>>>>"; |
| | | } |
| | | } |
| | | /** |
| | | * 检查设备是否在线 |
| | | * @return |
| | | */ |
| | | private boolean getDeviceStatus() { |
| | | boolean isOnLine = hCNetSDK.NET_DVR_RemoteControl(lUserID, 20005, null, 0); |
| | | // if (!isOnLine) { |
| | | //// updateZnfxPostalStatus(PostalStatus.ABNORMAL.value()); //离线 |
| | | //// insertZnfxPostalStatusLog(PostalStatus.ABNORMAL.value()); |
| | | // mZnfxPostalStatusService.changeStatus(MessageCode.POSTAL_STATUS_TYPE_CAMERA, PostalStatus.ABNORMAL.value()); |
| | | // return false; |
| | | // } else { |
| | | // mZnfxPostalStatusService.changeStatus(MessageCode.POSTAL_STATUS_TYPE_CAMERA, PostalStatus.NORMAL.value()); |
| | | //// updateZnfxPostalStatus(PostalStatus.NORMAL.value());//在线 |
| | | // } |
| | | return true; |
| | | } |
| | | // /** |
| | | // * 更新摄像头通讯状态 |
| | | // * @param status |
| | | // */ |
| | | // private void updateZnfxPostalStatus(String status) { |
| | | // ZnfxPostalStatusDTO tEntity = new ZnfxPostalStatusDTO(); |
| | | // tEntity.setId(1); |
| | | // tEntity.setStatus(status); |
| | | // tEntity.setTime(CommonUtils.getCurrDate3()); |
| | | // mZnfxPostalStatusService.update(tEntity); |
| | | // |
| | | // } |
| | | // private void insertZnfxPostalStatusLog(String status) { |
| | | // Calendar calendar = Calendar.getInstance(); |
| | | // calendar.set(Calendar.MILLISECOND, 0); |
| | | // calendar.set(Calendar.SECOND, 0); |
| | | // Date runTime = calendar.getTime(); |
| | | // ZnfxPostalStatusLogEntity tEntity = new ZnfxPostalStatusLogEntity(); |
| | | // tEntity.setType(MessageCode.POSTAL_STATUS_TYPE_CAMERA); |
| | | // tEntity.setStatus(status); |
| | | // tEntity.setTime(runTime); |
| | | // mZnfxPostalStatusLogService.insert(tEntity); |
| | | // } |
| | | // |
| | | // private void saveZnfxImageInfo(String tFiledirName, String tImageName, String tPath, Long tImageId) { |
| | | // ZnfxImageInfoDTO tZnfxImageInfoDTO = new ZnfxImageInfoDTO(); |
| | | // String tImagepath = "/" + tFiledirName + "/" + tImageName; |
| | | // tZnfxImageInfoDTO.setImageid(tImageId); |
| | | // tZnfxImageInfoDTO.setCameraCode(MessageCode.POSTAL_STATUS_TYPE_CAMERA); |
| | | // tZnfxImageInfoDTO.setImagePath(tImagepath);//图片相对路径 |
| | | // tZnfxImageInfoDTO.setAbsImagePath(tPath);//图片绝对路径 |
| | | // tZnfxImageInfoDTO.setCreateTime(new Date()); |
| | | // mZnfxImageInfoService.save(tZnfxImageInfoDTO); |
| | | // } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.hikvision.utils; |
| | | |
| | | import com.sun.jna.Structure; |
| | | |
| | | import java.lang.reflect.Field; |
| | | import java.lang.reflect.Modifier; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | public class HIKSDKStructure extends Structure { |
| | | protected List<String> getFieldOrder() { |
| | | List<String> fieldOrderList = new ArrayList<String>(); |
| | | for (Class<?> cls = getClass(); !cls.equals(HIKSDKStructure.class); cls = cls.getSuperclass()) { |
| | | Field[] fields = cls.getDeclaredFields(); |
| | | int modifiers; |
| | | for (Field field : fields) { |
| | | modifiers = field.getModifiers(); |
| | | if (Modifier.isStatic(modifiers) || !Modifier.isPublic(modifiers)) { |
| | | continue; |
| | | } |
| | | fieldOrderList.add(field.getName()); |
| | | } |
| | | } |
| | | return fieldOrderList; |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.hikvision.utils; |
| | | |
| | | |
| | | public class MessageCode { |
| | | |
| | | public static final String DvrPicSavePath = "D:/hk-project/dvr-pic";//海康威视抓取图片上传路径 |
| | | // public static final String DvrPicSavePath = "D:/DLUT/dvr-pic";//海康威视抓取图片上传路径 |
| | | |
| | | public static final String JsonSavePath = "D:/hk-project/json";//海康威视抓取图片上传路径 |
| | | // public static final String JsonSavePath = "D:/DLUT/json";//海康威视抓取图片上传路径 |
| | | |
| | | public static final String HIK_WIN_PATH = "hikvision/win64/HCNetSDK.dll"; |
| | | // public static final String HIK_WIN_PATH = "D:\\DLUT\\lib\\HCNetSDK.dll"; |
| | | |
| | | public static final String ModelCode = "Image_feature";//模型代码 |
| | | |
| | | public static final String POSTAL_STATUS_TYPE_CHANNEL = "SimulationServer"; |
| | | |
| | | public static final String POSTAL_STATUS_TYPE_CAMERA = "driverinfo"; |
| | | |
| | | public static final Integer Granularity = 60; //时间粒度 |
| | | |
| | | public static final String model_foam_out = "foam_diasoge";//起泡剂、捕收剂用量输出key |
| | | |
| | | public static final String model_texture = "texture";//泡沫纹理的六个数值 asm (能量), entr(熵), idm(逆方差), cor(相关性), con(对比度), autocor(自相关性) |
| | | |
| | | public static final String model_img_size = "img_size"; |
| | | |
| | | public static final String ZNFX_CODE_IMAGEPATH = "imagepath"; |
| | | |
| | | public static final String ZNFX_CODE_NGINX = "nginx"; |
| | | |
| | | public static final String ZNFX_CODE_MODEL = "model"; |
| | | |
| | | public static final String ZNFX_CODE_MODEL_PATH = "path"; |
| | | |
| | | public static final String ZNFX_CODE_MODEL_START = "start"; |
| | | |
| | | public static final String In_ControlModel_PointNo = "1000"; //控制模式 |
| | | |
| | | public static final String In_density_PointNo = "1001"; //入料浓度 |
| | | |
| | | public static final String In_flow_PointNo = "1002"; //入料流量 |
| | | |
| | | public static final String Amount_Qpj_PointNo = "2001"; //起泡剂用量反馈 |
| | | |
| | | public static final String Amount_Bsj_PointNo = "2002"; //捕收剂用量反馈 |
| | | |
| | | public static final String Qpj_Level_PointNo = "2003"; //起泡剂桶液位 |
| | | |
| | | public static final String Bsj_Level_PointNo = "2004"; //捕收剂桶液位 |
| | | |
| | | public static final String Ash_Jm_PointNo = "3001";//精煤灰分值 |
| | | |
| | | public static final String Ash_Wm_PointNo = "3002";//尾煤灰分值 |
| | | |
| | | public static final String Set_Ash_Jm_PointNo = "3003";//精煤灰分控制点 |
| | | |
| | | public static final String Set_Ash_Wm_PointNo = "3004";//尾煤灰分控制点 |
| | | |
| | | public static final String RESULT_IMAGE_FILE_PATH = "image_file_path";//尾煤灰分值 |
| | | |
| | | public static final String HIK_LINUX_PATH = "/sda2/iailab/iailab-platform/iailab-data/lib/libhcnetsdk.so"; |
| | | // public static final String HIK_LINUX_PATH = "hikvision/linux64/libhcnetsdk.so"; |
| | | |
| | | public static final Integer granularity = 20; //时间粒度 |
| | | |
| | | public static final Integer TIME_SECOND = 13; //时间类别 |
| | | |
| | | public static final Integer TIME_HOUR = 10; //时间类别 |
| | | |
| | | public static final Integer SCHEDULEDCLEANDAYS = -10; //定时任务清理10天之前数据 |
| | | |
| | | public static final String SCHEDULEDCLEANRATE = "0 0/30 * * * ?"; //定时任务清理半小时一次 |
| | | |
| | | public static final String SCHEDULEDCLEANIMAGERATE = "0 0 12 * * ? "; //定时任务清理截图每天中午12点触发 |
| | | |
| | | |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.hikvision.utils; |
| | | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | import java.io.BufferedReader; |
| | | import java.io.InputStreamReader; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2023年01月11日 11:03:00 |
| | | */ |
| | | @Slf4j |
| | | public class PythonUtil { |
| | | |
| | | public static List<String> execPy(String[] command) { |
| | | List<String> lines = new ArrayList<>(); |
| | | try { |
| | | Process proc = Runtime.getRuntime().exec(command); |
| | | BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream(),"GBK")); |
| | | String line = null; |
| | | |
| | | while ((line = in.readLine()) != null) { |
| | | log.info(line); |
| | | lines.add(line); |
| | | } |
| | | // 0表示成功,1表示远程调用失败,2表示python脚本出错 |
| | | int waitFor = proc.waitFor(); |
| | | log.info("waitFor=" + waitFor); |
| | | if (waitFor != 0) { |
| | | throw new Exception("调用python失败"); |
| | | } |
| | | } catch (Exception ex) { |
| | | ex.printStackTrace(); |
| | | log.error(ex.getMessage()); |
| | | log.error("运行python异常!command=" + command.toString()); |
| | | } |
| | | return lines; |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.hikvision.utils; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 响应操作结果 |
| | | * <pre> |
| | | * { |
| | | * errno: 错误码, |
| | | * errmsg:错误消息, |
| | | * data: 响应数据 |
| | | * } |
| | | * </pre> |
| | | * |
| | | * <p> |
| | | * 错误码: |
| | | * <ul> |
| | | * <li> 0,成功; |
| | | * <li> 4xx,前端错误,说明前端开发者需要重新了解后端接口使用规范: |
| | | * <ul> |
| | | * <li> 401,参数错误,即前端没有传递后端需要的参数; |
| | | * <li> 402,参数值错误,即前端传递的参数值不符合后端接收范围。 |
| | | * </ul> |
| | | * <li> 5xx,后端错误,除501外,说明后端开发者应该继续优化代码,尽量避免返回后端错误码: |
| | | * <ul> |
| | | * <li> 501,验证失败,即后端要求用户登录; |
| | | * <li> 502,系统内部错误,即没有合适命名的后端内部错误; |
| | | * <li> 503,业务不支持,即后端虽然定义了接口,但是还没有实现功能; |
| | | * <li> 504,更新数据失效,即后端采用了乐观锁更新,而并发更新时存在数据更新失效; |
| | | * <li> 505,更新数据失败,即后端数据库更新失败(正常情况应该更新成功)。 |
| | | * </ul> |
| | | * <li> 6xx,小商城后端业务错误码, |
| | | * 具体见litemall-admin-api模块的AdminResponseCode。 |
| | | * <li> 7xx,管理后台后端业务错误码, |
| | | * 具体见litemall-wx-api模块的WxResponseCode。 |
| | | * </ul> |
| | | */ |
| | | public class ResponseUtil { |
| | | public static Object ok() { |
| | | Map<String, Object> obj = new HashMap<String, Object>(); |
| | | obj.put("errno", 0); |
| | | obj.put("errmsg", "成功"); |
| | | return obj; |
| | | } |
| | | |
| | | public static Object ok(Object data) { |
| | | Map<String, Object> obj = new HashMap<String, Object>(); |
| | | obj.put("errno", 0); |
| | | obj.put("errmsg", "成功"); |
| | | obj.put("data", data); |
| | | return obj; |
| | | } |
| | | |
| | | public static Object fail() { |
| | | Map<String, Object> obj = new HashMap<String, Object>(); |
| | | obj.put("errno", -1); |
| | | obj.put("errmsg", "错误"); |
| | | return obj; |
| | | } |
| | | |
| | | public static Object fail(String errmsg) { |
| | | Map<String, Object> obj = new HashMap<String, Object>(); |
| | | obj.put("errno", 1); |
| | | obj.put("errmsg", "错误"); |
| | | obj.put("data", errmsg); |
| | | return obj; |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.hikvision.utils; |
| | | |
| | | import java.io.*; |
| | | import java.nio.charset.Charset; |
| | | import java.util.Enumeration; |
| | | import java.util.zip.ZipEntry; |
| | | import java.util.zip.ZipFile; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2023年05月25日 15:28:00 |
| | | */ |
| | | public class UnzipUtils { |
| | | /** |
| | | * 解压zip压缩文件到指定目录 |
| | | * |
| | | * @param zipPath zip压缩文件绝对路径 |
| | | * @param descDir 指定的解压目录 |
| | | */ |
| | | public static void unzipFile(String zipPath, String descDir) throws IOException { |
| | | try { |
| | | File zipFile = new File(zipPath); |
| | | if (!zipFile.exists()) { |
| | | throw new IOException("要解压的压缩文件不存在"); |
| | | } |
| | | File pathFile = new File(descDir); |
| | | if (!pathFile.exists()) { |
| | | pathFile.mkdirs(); |
| | | } |
| | | unzipWithStream(zipPath, descDir); |
| | | } catch (Exception e) { |
| | | throw new IOException(e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 解压 |
| | | * |
| | | * @param zipPath |
| | | * @param descDir |
| | | */ |
| | | public static void unzipWithStream(String zipPath, String descDir) { |
| | | try (ZipFile zipFile = new ZipFile(zipPath, Charset.forName("GBK"))) { |
| | | Enumeration e = zipFile.entries(); |
| | | while (e.hasMoreElements()) { |
| | | ZipEntry zipEntry = (ZipEntry)e.nextElement(); |
| | | String zipEntryNameStr = zipEntry.getName(); |
| | | String zipEntryName = zipEntryNameStr; |
| | | /*if (zipEntryNameStr.contains("/")) { |
| | | String str1 = zipEntryNameStr.substring(0, zipEntryNameStr.indexOf("/")); |
| | | zipEntryName = zipEntryNameStr.substring(str1.length() + 1); |
| | | }*/ |
| | | String outPath = (descDir + zipEntryName).replace("\\\\", "/"); |
| | | File outFile = new File(outPath.substring(0, outPath.lastIndexOf('/'))); |
| | | if (!outFile.exists()) { |
| | | outFile.mkdirs(); |
| | | } |
| | | if (new File(outPath).isDirectory()) { |
| | | continue; |
| | | } |
| | | writeFile(outPath, zipFile.getInputStream(zipEntry)); |
| | | } |
| | | System.out.println("======解压成功======="); |
| | | } catch (IOException e) { |
| | | System.out.println("压缩包处理异常,异常信息{}" + e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 将流写到文件中 |
| | | * |
| | | * @param filePath |
| | | * @param zipInputStream |
| | | */ |
| | | public static void writeFile(String filePath, InputStream zipInputStream) throws IOException { |
| | | try (OutputStream outputStream = new FileOutputStream(filePath)) { |
| | | byte[] bytes = new byte[4096]; |
| | | int len; |
| | | while ((len = zipInputStream.read(bytes)) != -1) { |
| | | outputStream.write(bytes, 0, len); |
| | | } |
| | | } catch (IOException ex) { |
| | | System.out.println("解压文件时,写出到文件出错"); |
| | | } finally { |
| | | zipInputStream.close(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 测试方法 |
| | | * |
| | | * @param args |
| | | * @throws IOException |
| | | */ |
| | | public static void test(String[] args) throws IOException { |
| | | |
| | | String zipPath = "D:/test/测试文件.zip"; |
| | | String descDir = "D:/test/解压/"; |
| | | |
| | | unzipFile(zipPath, descDir); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.service; |
| | | |
| | | |
| | | import com.iailab.framework.common.service.BaseService; |
| | | import com.iailab.module.data.dev.dto.AlarmCameraDTO; |
| | | import com.iailab.module.data.dev.entity.AlarmCameraEntity; |
| | | import com.iailab.module.data.dev.enums.AlarmStatusEnum; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年03月09日 |
| | | */ |
| | | public interface AlarmCameraService extends BaseService<AlarmCameraEntity> { |
| | | |
| | | List<AlarmCameraDTO> list(Map<String, Object> params); |
| | | |
| | | void updateStatus(Integer cameraCode, AlarmStatusEnum alarmStatusEnum); |
| | | |
| | | AlarmCameraDTO getByCameraCode(Integer cameraCode); |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.service; |
| | | |
| | | import com.iailab.framework.common.page.PageData; |
| | | import com.iailab.framework.common.pojo.PageResult; |
| | | import com.iailab.framework.common.service.BaseService; |
| | | import com.iailab.module.data.dev.controller.admin.camera.vo.DevCameraPageReqVO; |
| | | import com.iailab.module.data.dev.dto.DevCameraDTO; |
| | | import com.iailab.module.data.dev.entity.DevCameraEntity; |
| | | |
| | | import javax.validation.Valid; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年02月27日 |
| | | */ |
| | | public interface DevCameraService extends BaseService<DevCameraEntity> { |
| | | |
| | | PageResult<DevCameraDTO> getPage(DevCameraPageReqVO cameraPageReqVO); |
| | | |
| | | List<DevCameraDTO> list(@Valid DevCameraPageReqVO cameraPageReqVO); |
| | | |
| | | List<DevCameraDTO> apiCameraList(Map<String, Object> params); |
| | | |
| | | DevCameraDTO get(String id); |
| | | |
| | | void save(DevCameraDTO dto); |
| | | |
| | | void update(DevCameraDTO dto); |
| | | |
| | | void delete(String[] ids); |
| | | |
| | | Long cheack(DevCameraDTO dto); |
| | | |
| | | List<DevCameraDTO> getByNVRId(String nvrId); |
| | | |
| | | DevCameraDTO getByCode(Integer code); |
| | | |
| | | List<String> getLocation(); |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.service; |
| | | |
| | | import com.iailab.framework.common.page.PageData; |
| | | import com.iailab.framework.common.service.BaseService; |
| | | import com.iailab.module.data.dev.dto.DevImageDTO; |
| | | import com.iailab.module.data.dev.entity.DataEntity; |
| | | import com.iailab.module.data.dev.entity.DevImageEntity; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年02月27日 |
| | | */ |
| | | public interface DevImageService extends BaseService<DevImageEntity> { |
| | | |
| | | PageData<DevImageDTO> page(Map<String, Object> params); |
| | | |
| | | DevImageDTO get(String id); |
| | | |
| | | List<DataEntity> getValueList(String cameraId, Date startTime, Date endTime); |
| | | |
| | | void save(DevImageDTO dto); |
| | | |
| | | void update(DevImageDTO dto); |
| | | |
| | | void delete(String[] ids); |
| | | |
| | | String getUrl(String cameraId, String imagePath); |
| | | |
| | | DevImageDTO get(String cameraId, Date createDate); |
| | | |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.service; |
| | | |
| | | import com.iailab.framework.common.page.PageData; |
| | | import com.iailab.framework.common.service.BaseService; |
| | | import com.iailab.module.data.dev.dto.DevLogDTO; |
| | | import com.iailab.module.data.dev.entity.DevLogEntity; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年03月06日 |
| | | */ |
| | | public interface DevLogService extends BaseService<DevLogEntity> { |
| | | |
| | | PageData<DevLogDTO> page(Map<String, Object> params); |
| | | |
| | | List<DevLogDTO> list(Map<String, Object> params); |
| | | |
| | | DevLogDTO get(String id); |
| | | |
| | | void save(DevLogDTO dto); |
| | | |
| | | void update(DevLogDTO dto); |
| | | |
| | | void delete(String[] ids); |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.service; |
| | | |
| | | |
| | | import com.iailab.framework.common.page.PageData; |
| | | import com.iailab.framework.common.pojo.PageResult; |
| | | import com.iailab.framework.common.service.BaseService; |
| | | import com.iailab.module.data.dev.controller.admin.nvr.vo.DevNvrPageReqVO; |
| | | import com.iailab.module.data.dev.controller.admin.nvr.vo.DevNvrSaveReqVO; |
| | | import com.iailab.module.data.dev.dto.DevNvrDTO; |
| | | import com.iailab.module.data.dev.entity.DevNvrEntity; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年03月06日 |
| | | */ |
| | | public interface DevNvrService extends BaseService<DevNvrEntity> { |
| | | |
| | | PageResult<DevNvrDTO> getPage(DevNvrPageReqVO pageReqVO); |
| | | |
| | | List<DevNvrDTO> list(Map<String, Object> params); |
| | | |
| | | DevNvrDTO get(String id); |
| | | |
| | | DevNvrDTO getByCode(String code); |
| | | |
| | | String save(DevNvrSaveReqVO saveReqVO); |
| | | |
| | | String update(DevNvrSaveReqVO saveReqVO); |
| | | |
| | | void delete(Long id); |
| | | |
| | | // Long cheack(DevNvrDTO dto); |
| | | |
| | | DevNvrDTO getByIp(String ip); |
| | | |
| | | void setStatus(String ip, Integer status); |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.service.impl; |
| | | |
| | | import com.iailab.framework.common.service.impl.BaseServiceImpl; |
| | | import com.iailab.module.data.dev.dao.AlarmCameraDao; |
| | | import com.iailab.module.data.dev.dto.AlarmCameraDTO; |
| | | import com.iailab.module.data.dev.entity.AlarmCameraEntity; |
| | | import com.iailab.module.data.dev.enums.AlarmStatusEnum; |
| | | import com.iailab.module.data.dev.service.AlarmCameraService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年03月09日 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class AlarmCameraServiceImpl extends BaseServiceImpl<AlarmCameraDao, AlarmCameraEntity> implements AlarmCameraService { |
| | | |
| | | |
| | | @Override |
| | | public void updateStatus(Integer cameraCode, AlarmStatusEnum alarmStatusEnum) { |
| | | AlarmCameraDTO alarmCamera = this.getByCameraCode(cameraCode); |
| | | AlarmCameraEntity entity = new AlarmCameraEntity(); |
| | | entity.setId(alarmCamera.getId()); |
| | | entity.setAlarmStatus(alarmStatusEnum.getCode()); |
| | | baseDao.updateById(entity); |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public List<AlarmCameraDTO> list(Map<String, Object> params) { |
| | | List<AlarmCameraDTO> list = baseDao.getList(params); |
| | | return list; |
| | | } |
| | | |
| | | @Override |
| | | public AlarmCameraDTO getByCameraCode(Integer cameraCode) { |
| | | return baseDao.getByCameraCode(cameraCode); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.iailab.framework.common.constant.Constant; |
| | | import com.iailab.framework.common.page.PageData; |
| | | import com.iailab.framework.common.pojo.PageResult; |
| | | import com.iailab.framework.common.service.impl.BaseServiceImpl; |
| | | import com.iailab.framework.common.util.object.BeanUtils; |
| | | import com.iailab.framework.common.util.object.ConvertUtils; |
| | | import com.iailab.module.data.dev.controller.admin.camera.vo.DevCameraPageReqVO; |
| | | import com.iailab.module.data.dev.dao.DevCameraDao; |
| | | import com.iailab.module.data.dev.dto.DevCameraDTO; |
| | | import com.iailab.module.data.dev.entity.DevCameraEntity; |
| | | import com.iailab.module.data.dev.service.DevCameraService; |
| | | import org.apache.commons.lang3.ObjectUtils; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.validation.Valid; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年02月27日 |
| | | */ |
| | | @Service |
| | | public class DevCameraServiceImpl extends BaseServiceImpl<DevCameraDao, DevCameraEntity> implements DevCameraService { |
| | | |
| | | @Resource |
| | | private DevCameraDao devCameraDao; |
| | | |
| | | @Override |
| | | public PageResult<DevCameraDTO> getPage(DevCameraPageReqVO cameraPageReqVO) { |
| | | PageResult<DevCameraEntity> pageResult = devCameraDao.selectPage(cameraPageReqVO); |
| | | return BeanUtils.toBean(pageResult, DevCameraDTO.class); |
| | | } |
| | | |
| | | @Override |
| | | public List<DevCameraDTO> list(@Valid DevCameraPageReqVO cameraPageReqVO) { |
| | | QueryWrapper<DevCameraEntity> queryWrapper = getWrapper(cameraPageReqVO); |
| | | queryWrapper.orderByDesc(Constant.CREATE_DATE); |
| | | List<DevCameraEntity> list = baseDao.selectList(queryWrapper); |
| | | return ConvertUtils.sourceToTarget(list, DevCameraDTO.class); |
| | | } |
| | | |
| | | @Override |
| | | public List<DevCameraDTO> apiCameraList(Map<String, Object> params) { |
| | | return baseDao.apiCameraList(); |
| | | } |
| | | |
| | | @Override |
| | | public List<DevCameraDTO> getByNVRId(String nvrId) { |
| | | QueryWrapper<DevCameraEntity> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("nvr_id", nvrId).orderByAsc("channel"); |
| | | List<DevCameraEntity> list = baseDao.selectList(queryWrapper); |
| | | return ConvertUtils.sourceToTarget(list, DevCameraDTO.class); |
| | | } |
| | | |
| | | @Override |
| | | public DevCameraDTO get(String id) { |
| | | DevCameraEntity entity = baseDao.selectById(id); |
| | | |
| | | return ConvertUtils.sourceToTarget(entity, DevCameraDTO.class); |
| | | } |
| | | |
| | | @Override |
| | | public DevCameraDTO getByCode(Integer code) { |
| | | QueryWrapper<DevCameraEntity> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("code", code); |
| | | DevCameraEntity entity = baseDao.selectOne(wrapper); |
| | | |
| | | return ConvertUtils.sourceToTarget(entity, DevCameraDTO.class); |
| | | } |
| | | |
| | | private QueryWrapper<DevCameraEntity> getWrapper(DevCameraPageReqVO cameraPageReqVO){ |
| | | String location = cameraPageReqVO.getLocation(); |
| | | QueryWrapper<DevCameraEntity> wrapper = new QueryWrapper<>(); |
| | | wrapper.like(StringUtils.isNotBlank(location), "location", location); |
| | | return wrapper; |
| | | } |
| | | |
| | | @Override |
| | | public void save(DevCameraDTO dto) { |
| | | DevCameraEntity entity = ConvertUtils.sourceToTarget(dto, DevCameraEntity.class); |
| | | entity.setCreateDate(new Date()); |
| | | insert(entity); |
| | | } |
| | | |
| | | @Override |
| | | public void update(DevCameraDTO dto) { |
| | | DevCameraEntity entity = ConvertUtils.sourceToTarget(dto, DevCameraEntity.class); |
| | | entity.setUpdateDate(new Date()); |
| | | updateById(entity); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void delete(String[] ids) { |
| | | baseDao.deleteBatchIds(Arrays.asList(ids)); |
| | | } |
| | | |
| | | @Override |
| | | public Long cheack(DevCameraDTO dto) { |
| | | String id = dto.getId(); |
| | | Integer code = dto.getCode(); |
| | | QueryWrapper<DevCameraEntity> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.ne(StringUtils.isNotBlank(id), "id", id); |
| | | queryWrapper.and(wrapper -> wrapper.eq("code", code)); |
| | | return baseDao.selectCount(queryWrapper); |
| | | } |
| | | |
| | | @Override |
| | | public List<String> getLocation() { |
| | | QueryWrapper<DevCameraEntity> wrapper = new QueryWrapper<>(); |
| | | List<DevCameraEntity> devCameraEntities = baseDao.selectList(wrapper); |
| | | List<String> locations = new ArrayList<>(); |
| | | if(ObjectUtils.isNotEmpty(devCameraEntities)) { |
| | | devCameraEntities.stream().forEach(cameraEntity -> { |
| | | locations.add(cameraEntity.getLocation()); |
| | | }); |
| | | } |
| | | return locations; |
| | | } |
| | | |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.iailab.framework.common.constant.Constant; |
| | | import com.iailab.framework.common.page.PageData; |
| | | import com.iailab.framework.common.service.impl.BaseServiceImpl; |
| | | import com.iailab.framework.common.util.object.ConvertUtils; |
| | | import com.iailab.module.data.dev.dao.DevImageDao; |
| | | import com.iailab.module.data.dev.dto.DevImageDTO; |
| | | import com.iailab.module.data.dev.entity.DataEntity; |
| | | import com.iailab.module.data.dev.entity.DevImageEntity; |
| | | import com.iailab.module.data.dev.service.DevImageService; |
| | | import org.apache.commons.lang3.ObjectUtils; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年02月27日 |
| | | */ |
| | | @Service |
| | | public class DevImageServiceImpl extends BaseServiceImpl<DevImageDao, DevImageEntity> implements DevImageService { |
| | | |
| | | @Override |
| | | public PageData<DevImageDTO> page(Map<String, Object> params) { |
| | | IPage<DevImageEntity> page = baseDao.selectPage( |
| | | getPage(params, Constant.CREATE_DATE, false), |
| | | getWrapper(params) |
| | | ); |
| | | return getPageData(page, DevImageDTO.class); |
| | | } |
| | | |
| | | @Override |
| | | public DevImageDTO get(String id) { |
| | | DevImageEntity entity = baseDao.selectById(id); |
| | | |
| | | return ConvertUtils.sourceToTarget(entity, DevImageDTO.class); |
| | | } |
| | | |
| | | private QueryWrapper<DevImageEntity> getWrapper(Map<String, Object> params){ |
| | | String cameraId = (String)params.get("cameraId"); |
| | | String startTime = (String)params.get("startTime"); |
| | | String endTime = (String)params.get("endTime"); |
| | | |
| | | QueryWrapper<DevImageEntity> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq(StringUtils.isNotBlank(cameraId), "camera_id", cameraId) |
| | | .ge(StringUtils.isNotBlank(startTime), "create_date", startTime) |
| | | .le(StringUtils.isNotBlank(endTime), "create_date", endTime); |
| | | |
| | | return wrapper; |
| | | } |
| | | |
| | | @Override |
| | | public List<DataEntity> getValueList(String cameraId, Date startTime, Date endTime) { |
| | | QueryWrapper<DevImageEntity> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq( "camera_id", cameraId) |
| | | .ge( "create_date", startTime) |
| | | .le( "create_date", endTime) |
| | | .orderByAsc("create_date"); |
| | | List<DataEntity> result = new ArrayList<>(); |
| | | List<DevImageEntity> list = baseDao.selectList(wrapper); |
| | | if (CollectionUtils.isEmpty(list)) { |
| | | return result; |
| | | } |
| | | list.forEach(item -> { |
| | | DataEntity dataEntity = new DataEntity(); |
| | | dataEntity.setDataValue(item.getImagePath()); |
| | | dataEntity.setTimeStamp(item.getCreateDate()); |
| | | result.add(dataEntity); |
| | | }); |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public String getUrl(String cameraId, String imagePath) { |
| | | String result = ""; |
| | | QueryWrapper<DevImageEntity> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq( "camera_id", cameraId) |
| | | .eq( "image_path", imagePath) |
| | | .orderByDesc("create_date"); |
| | | List<DevImageEntity> devImageEntities = baseDao.selectList(wrapper); |
| | | DevImageEntity entity = new DevImageEntity(); |
| | | if (ObjectUtils.isNotEmpty(devImageEntities)) { |
| | | entity = devImageEntities.get(0); |
| | | } |
| | | if (entity != null) { |
| | | return entity.getImageUrl(); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public void save(DevImageDTO dto) { |
| | | DevImageEntity entity = ConvertUtils.sourceToTarget(dto, DevImageEntity.class); |
| | | |
| | | //保存菜单 |
| | | insert(entity); |
| | | } |
| | | |
| | | @Override |
| | | public void update(DevImageDTO dto) { |
| | | DevImageEntity entity = ConvertUtils.sourceToTarget(dto, DevImageEntity.class); |
| | | |
| | | //更新菜单 |
| | | updateById(entity); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void delete(String[] ids) { |
| | | //删除菜单 |
| | | baseDao.deleteBatchIds(Arrays.asList(ids)); |
| | | } |
| | | |
| | | @Override |
| | | public DevImageDTO get(String cameraId, Date createDate) { |
| | | QueryWrapper<DevImageEntity> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq( "camera_id", cameraId) |
| | | .eq( "create_date", createDate); |
| | | DevImageEntity entity = new DevImageEntity(); |
| | | List<DevImageEntity> devImageEntities = baseDao.selectList(wrapper); |
| | | if (ObjectUtils.isNotEmpty(devImageEntities)) { |
| | | entity = devImageEntities.get(0); |
| | | } |
| | | return ConvertUtils.sourceToTarget(entity, DevImageDTO.class); |
| | | } |
| | | |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.iailab.framework.common.constant.Constant; |
| | | import com.iailab.framework.common.page.PageData; |
| | | import com.iailab.framework.common.service.impl.BaseServiceImpl; |
| | | import com.iailab.framework.common.util.object.ConvertUtils; |
| | | import com.iailab.module.data.dev.dao.DevLogDao; |
| | | import com.iailab.module.data.dev.dto.DevLogDTO; |
| | | import com.iailab.module.data.dev.entity.DevLogEntity; |
| | | import com.iailab.module.data.dev.service.DevLogService; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年03月07日 |
| | | */ |
| | | @Service |
| | | public class DevLogServiceImpl extends BaseServiceImpl<DevLogDao, DevLogEntity> implements DevLogService { |
| | | |
| | | @Override |
| | | public PageData<DevLogDTO> page(Map<String, Object> params) { |
| | | IPage<DevLogEntity> page = baseDao.selectPage( |
| | | getPage(params, Constant.CREATE_DATE, false), |
| | | getWrapper(params) |
| | | ); |
| | | return getPageData(page, DevLogDTO.class); |
| | | } |
| | | |
| | | @Override |
| | | public List<DevLogDTO> list(Map<String, Object> params) { |
| | | QueryWrapper<DevLogEntity> queryWrapper = getWrapper(params); |
| | | queryWrapper.orderByDesc(Constant.CREATE_DATE); |
| | | List<DevLogEntity> list = baseDao.selectList(queryWrapper); |
| | | return ConvertUtils.sourceToTarget(list, DevLogDTO.class); |
| | | } |
| | | |
| | | @Override |
| | | public DevLogDTO get(String id) { |
| | | DevLogEntity entity = baseDao.selectById(id); |
| | | |
| | | return ConvertUtils.sourceToTarget(entity, DevLogDTO.class); |
| | | } |
| | | |
| | | private QueryWrapper<DevLogEntity> getWrapper(Map<String, Object> params){ |
| | | String code = (String)params.get("code"); |
| | | String location = (String)params.get("location"); |
| | | Integer status = params.get("status") == null ? null : Integer.parseInt(params.get("status").toString()); |
| | | |
| | | QueryWrapper<DevLogEntity> wrapper = new QueryWrapper<>(); |
| | | wrapper.like(StringUtils.isNotBlank(code), "code", code) |
| | | .like(StringUtils.isNotBlank(location), "location", location) |
| | | .eq(status != null, "status", status); |
| | | |
| | | return wrapper; |
| | | } |
| | | |
| | | @Override |
| | | public void save(DevLogDTO dto) { |
| | | DevLogEntity entity = ConvertUtils.sourceToTarget(dto, DevLogEntity.class); |
| | | |
| | | insert(entity); |
| | | } |
| | | |
| | | @Override |
| | | public void update(DevLogDTO dto) { |
| | | DevLogEntity entity = ConvertUtils.sourceToTarget(dto, DevLogEntity.class); |
| | | updateById(entity); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void delete(String[] ids) { |
| | | baseDao.deleteBatchIds(Arrays.asList(ids)); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.iailab.framework.common.constant.Constant; |
| | | import com.iailab.framework.common.page.PageData; |
| | | import com.iailab.framework.common.pojo.PageResult; |
| | | import com.iailab.framework.common.service.impl.BaseServiceImpl; |
| | | import com.iailab.framework.common.util.object.BeanUtils; |
| | | import com.iailab.framework.common.util.object.ConvertUtils; |
| | | import com.iailab.module.data.dev.controller.admin.nvr.vo.DevNvrPageReqVO; |
| | | import com.iailab.module.data.dev.controller.admin.nvr.vo.DevNvrSaveReqVO; |
| | | import com.iailab.module.data.dev.dahua.DHCapturePictureClient; |
| | | import com.iailab.module.data.dev.dahua.DHClientFactory; |
| | | import com.iailab.module.data.dev.dao.DevNvrDao; |
| | | import com.iailab.module.data.dev.dto.DevNvrDTO; |
| | | import com.iailab.module.data.dev.entity.DevNvrEntity; |
| | | import com.iailab.module.data.dev.service.DevNvrService; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年03月07日 |
| | | */ |
| | | @Service |
| | | public class DevNvrServiceImpl extends BaseServiceImpl<DevNvrDao, DevNvrEntity> implements DevNvrService { |
| | | |
| | | @Resource |
| | | private DevNvrDao devNvrDao; |
| | | |
| | | @Resource |
| | | private DHClientFactory dhClientFactory; |
| | | |
| | | @Override |
| | | public PageResult<DevNvrDTO> getPage(DevNvrPageReqVO pageReqVO) { |
| | | PageResult<DevNvrEntity> pageResult = devNvrDao.selectPage(pageReqVO); |
| | | // List<DevNvrEntity> list = pageResult.getList(); |
| | | // dhClientFactory.getNvrOnlineStatus(list); |
| | | return BeanUtils.toBean(pageResult, DevNvrDTO.class); |
| | | } |
| | | |
| | | @Override |
| | | public List<DevNvrDTO> list(Map<String, Object> params) { |
| | | QueryWrapper<DevNvrEntity> queryWrapper = getWrapper(params); |
| | | queryWrapper.orderByDesc(Constant.CREATE_DATE); |
| | | List<DevNvrEntity> list = baseDao.selectList(queryWrapper); |
| | | return ConvertUtils.sourceToTarget(list, DevNvrDTO.class); |
| | | } |
| | | |
| | | @Override |
| | | public DevNvrDTO get(String id) { |
| | | DevNvrEntity entity = baseDao.selectById(id); |
| | | |
| | | return ConvertUtils.sourceToTarget(entity, DevNvrDTO.class); |
| | | } |
| | | |
| | | @Override |
| | | public DevNvrDTO getByIp(String ip) { |
| | | QueryWrapper<DevNvrEntity> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("ip", ip); |
| | | DevNvrEntity entity = baseDao.selectOne(wrapper); |
| | | |
| | | return ConvertUtils.sourceToTarget(entity, DevNvrDTO.class); |
| | | } |
| | | |
| | | @Override |
| | | public DevNvrDTO getByCode(String code) { |
| | | QueryWrapper<DevNvrEntity> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("code", code); |
| | | DevNvrEntity entity = baseDao.selectOne(wrapper); |
| | | |
| | | return ConvertUtils.sourceToTarget(entity, DevNvrDTO.class); |
| | | } |
| | | |
| | | private QueryWrapper<DevNvrEntity> getWrapper(Map<String, Object> params) { |
| | | String code = (String) params.get("code"); |
| | | String location = (String) params.get("location"); |
| | | String nvrId = (String) params.get("nvrId"); |
| | | Integer status = params.get("status") == null ? null : Integer.parseInt(params.get("status").toString()); |
| | | |
| | | QueryWrapper<DevNvrEntity> wrapper = new QueryWrapper<>(); |
| | | wrapper.like(StringUtils.isNotBlank(code), "code", code) |
| | | .like(StringUtils.isNotBlank(location), "location", location) |
| | | .eq(StringUtils.isNotBlank(nvrId), "nvr_id", nvrId) |
| | | .eq(status != null, "status", status); |
| | | |
| | | return wrapper; |
| | | } |
| | | |
| | | @Override |
| | | public String save(DevNvrSaveReqVO saveReqVO) { |
| | | DevNvrEntity entity = BeanUtils.toBean(saveReqVO, DevNvrEntity.class); |
| | | entity.setCreateDate(new Date()); |
| | | insert(entity); |
| | | return entity.getId(); |
| | | } |
| | | |
| | | @Override |
| | | public String update(DevNvrSaveReqVO saveReqVO) { |
| | | DevNvrEntity entity = BeanUtils.toBean(saveReqVO, DevNvrEntity.class); |
| | | entity.setCreateDate(new Date()); |
| | | updateById(entity); |
| | | return entity.getId(); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void delete(Long id) { |
| | | devNvrDao.deleteById(id); |
| | | } |
| | | |
| | | // @Override |
| | | // public Long cheack(DevNvrDTO dto) { |
| | | // Long id = dto.getId(); |
| | | // String code = dto.getCode(); |
| | | // String name = dto.getName(); |
| | | // QueryWrapper<DevNvrEntity> queryWrapper = new QueryWrapper<>(); |
| | | // queryWrapper.ne(StringUtils.isNotBlank(id.toString()), "id", id); |
| | | // queryWrapper.and(wrapper -> wrapper.eq("code", code).or(). |
| | | // eq(StringUtils.isNotBlank(name), "name", name)); |
| | | // return baseDao.selectCount(queryWrapper); |
| | | // } |
| | | |
| | | @Override |
| | | public void setStatus(String ip, Integer status) { |
| | | QueryWrapper<DevNvrEntity> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("ip", ip); |
| | | DevNvrEntity entity = new DevNvrEntity(); |
| | | entity.setIp(ip); |
| | | entity.setStatus(status); |
| | | baseDao.update(entity, wrapper); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.data.dev.task; |
| | | |
| | | import com.iailab.module.data.dev.dto.AlarmCameraDTO; |
| | | import com.iailab.module.data.dev.enums.AlarmStatusEnum; |
| | | import com.iailab.module.data.dev.service.AlarmCameraService; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.time.LocalDateTime; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年04月08日 |
| | | */ |
| | | @Component("cameraHeartTask") |
| | | public class CameraHeartTask implements ITask { |
| | | |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | public static Map<Integer, Long> cameraCapTime = new ConcurrentHashMap<>(); |
| | | |
| | | private long EXP_TIME = 1000 * 60 * 3; |
| | | |
| | | @Autowired |
| | | private AlarmCameraService alarmCameraService; |
| | | |
| | | @Override |
| | | public void run(String params){ |
| | | logger.info("CameraHeartTask定时任务正在执行,参数为:{}", params); |
| | | try { |
| | | List<AlarmCameraDTO> alarmCameraList = alarmCameraService.list(new HashMap<>()); |
| | | if (CollectionUtils.isEmpty(alarmCameraList)) { |
| | | return; |
| | | } |
| | | alarmCameraList.forEach(item -> { |
| | | if (!cameraCapTime.containsKey(item.getCameraCode())) { |
| | | cameraCapTime.put(item.getCameraCode(), 0L); |
| | | } |
| | | }); |
| | | if (CollectionUtils.isEmpty(cameraCapTime)) { |
| | | return; |
| | | } |
| | | cameraCapTime.forEach((k, v) -> { |
| | | if ((v + EXP_TIME) < System.currentTimeMillis()) { |
| | | logger.info("EXCEPTION CODE=" + k); |
| | | alarmCameraService.updateStatus(k, AlarmStatusEnum.EXCEPTION); |
| | | } |
| | | }); |
| | | |
| | | logger.info("CameraHeartTask定时任务执行完成:" + LocalDateTime.now()); |
| | | } catch (Exception ex) { |
| | | ex.printStackTrace(); |
| | | logger.info("CameraHeartTask定时任务失败时间:" + LocalDateTime.now()); |
| | | } |
| | | } |
| | | } |
对比新文件 |
| | |
| | | /** |
| | | * Copyright (c) 2018 人人开源 All rights reserved. |
| | | * |
| | | * https://www.renren.io |
| | | * |
| | | * 版权所有,侵权必究! |
| | | */ |
| | | |
| | | package com.iailab.module.data.dev.task; |
| | | |
| | | /** |
| | | * 定时任务接口,所有定时任务都要实现该接口 |
| | | * |
| | | * @author Mark sunlightcs@gmail.com |
| | | * @since 1.0.0 |
| | | */ |
| | | public interface ITask { |
| | | |
| | | /** |
| | | * 执行定时任务接口 |
| | | * |
| | | * @param params 参数,多参数使用JSON数据 |
| | | */ |
| | | void run(String params); |
| | | } |
对比新文件 |
| | |
| | | /* |
| | | * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. |
| | | * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. |
| | | * |
| | | * |
| | | * |
| | | * |
| | | * |
| | | * |
| | | * |
| | | * |
| | | * |
| | | * |
| | | * |
| | | * |
| | | * |
| | | * |
| | | * |
| | | * |
| | | * |
| | | * |
| | | * |
| | | * |
| | | */ |
| | | |
| | | |
| | | // Base64解码 使用1.8版本源码 鉴于1.8部分特性1.6版本使用不到 故只保留能使用到的代码 其余删除 |
| | | package com.netsdk.common; |
| | | import java.nio.ByteBuffer; |
| | | import java.nio.charset.Charset; |
| | | import java.util.Arrays; |
| | | |
| | | /** |
| | | * This class consists exclusively of static methods for obtaining |
| | | * encoders and decoders for the Base64 encoding scheme. The |
| | | * implementation of this class supports the following types of Base64 |
| | | * as specified in |
| | | * <a href="http://www.ietf.org/rfc/rfc4648.txt">RFC 4648</a> and |
| | | * |
| | | * <ul> |
| | | * <li><a name="basic"><b>Basic</b></a> |
| | | * <p> Uses "The Base64 Alphabet" as specified in Table 1 of |
| | | * RFC 4648 and RFC 2045 for encoding and decoding operation. |
| | | * The encoder does not add any line feed (line separator) |
| | | * character. The decoder rejects data that contains characters |
| | | * outside the base64 alphabet.</p></li> |
| | | * |
| | | * <p> Unless otherwise noted, passing a {@code null} argument to a |
| | | * method of this class will cause a {@link NullPointerException |
| | | * NullPointerException} to be thrown. |
| | | * |
| | | * @author Xueming Shen |
| | | * @since 1.8 |
| | | */ |
| | | |
| | | public class Base64 { |
| | | |
| | | private Base64() {} |
| | | |
| | | /** |
| | | * Returns a {@link Encoder} that encodes using the |
| | | * <a href="#basic">Basic</a> type base64 encoding scheme. |
| | | * |
| | | * @return A Base64 encoder. |
| | | */ |
| | | public static Encoder getEncoder() { |
| | | return Encoder.RFC4648; |
| | | } |
| | | |
| | | /** |
| | | * This class implements an encoder for encoding byte data using |
| | | * the Base64 encoding scheme as specified in RFC 4648 and RFC 2045. |
| | | * |
| | | * <p> Instances of {@link Encoder} class are safe for use by |
| | | * multiple concurrent threads. |
| | | * |
| | | * <p> Unless otherwise noted, passing a {@code null} argument to |
| | | * a method of this class will cause a |
| | | * {@link NullPointerException NullPointerException} to |
| | | * be thrown. |
| | | * |
| | | * @see Decoder |
| | | * @since 1.8 |
| | | */ |
| | | public static class Encoder { |
| | | |
| | | private final byte[] newline; |
| | | private final int linemax; |
| | | private final boolean isURL; |
| | | private final boolean doPadding; |
| | | |
| | | private Encoder(boolean isURL, byte[] newline, int linemax, boolean doPadding) { |
| | | this.isURL = isURL; |
| | | this.newline = newline; |
| | | this.linemax = linemax; |
| | | this.doPadding = doPadding; |
| | | } |
| | | |
| | | /** |
| | | * This array is a lookup table that translates 6-bit positive integer |
| | | * index values into their "Base64 Alphabet" equivalents as specified |
| | | * in "Table 1: The Base64 Alphabet" of RFC 2045 (and RFC 4648). |
| | | */ |
| | | private static final char[] toBase64 = { |
| | | 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', |
| | | 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', |
| | | 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', |
| | | 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', |
| | | '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' |
| | | }; |
| | | |
| | | /** |
| | | * It's the lookup table for "URL and Filename safe Base64" as specified |
| | | * in Table 2 of the RFC 4648, with the '+' and '/' changed to '-' and |
| | | * '_'. This table is used when BASE64_URL is specified. |
| | | */ |
| | | private static final char[] toBase64URL = { |
| | | 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', |
| | | 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', |
| | | 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', |
| | | 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', |
| | | '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '_' |
| | | }; |
| | | |
| | | static final Encoder RFC4648 = new Encoder(false, null, -1, true); |
| | | |
| | | private final int outLength(int srclen) { |
| | | int len = 0; |
| | | if (doPadding) { |
| | | len = 4 * ((srclen + 2) / 3); |
| | | } else { |
| | | int n = srclen % 3; |
| | | len = 4 * (srclen / 3) + (n == 0 ? 0 : n + 1); |
| | | } |
| | | if (linemax > 0) // line separators |
| | | len += (len - 1) / linemax * newline.length; |
| | | return len; |
| | | } |
| | | |
| | | /** |
| | | * Encodes all bytes from the specified byte array into a newly-allocated |
| | | * byte array using the {@link Base64} encoding scheme. The returned byte |
| | | * array is of the length of the resulting bytes. |
| | | * |
| | | * @param src |
| | | * the byte array to encode |
| | | * @return A newly-allocated byte array containing the resulting |
| | | * encoded bytes. |
| | | */ |
| | | public byte[] encode(byte[] src) { |
| | | int len = outLength(src.length); // dst array size |
| | | byte[] dst = new byte[len]; |
| | | int ret = encode0(src, 0, src.length, dst); |
| | | if (ret != dst.length) |
| | | return Arrays.copyOf(dst, ret); |
| | | return dst; |
| | | } |
| | | |
| | | /** |
| | | * Encodes all bytes from the specified byte array using the |
| | | * {@link Base64} encoding scheme, writing the resulting bytes to the |
| | | * given output byte array, starting at offset 0. |
| | | * |
| | | * <p> It is the responsibility of the invoker of this method to make |
| | | * sure the output byte array {@code dst} has enough space for encoding |
| | | * all bytes from the input byte array. No bytes will be written to the |
| | | * output byte array if the output byte array is not big enough. |
| | | * |
| | | * @param src |
| | | * the byte array to encode |
| | | * @param dst |
| | | * the output byte array |
| | | * @return The number of bytes written to the output byte array |
| | | * |
| | | * @throws IllegalArgumentException if {@code dst} does not have enough |
| | | * space for encoding all input bytes. |
| | | */ |
| | | public int encode(byte[] src, byte[] dst) { |
| | | int len = outLength(src.length); // dst array size |
| | | if (dst.length < len) |
| | | throw new IllegalArgumentException( |
| | | "Output byte array is too small for encoding all input bytes"); |
| | | return encode0(src, 0, src.length, dst); |
| | | } |
| | | |
| | | /** |
| | | * Encodes the specified byte array into a String using the {@link Base64} |
| | | * encoding scheme. |
| | | * |
| | | * <p> In other words, an invocation of this method has exactly the same |
| | | * effect as invoking |
| | | * {@code new String(encode(src), StandardCharsets.ISO_8859_1)}. |
| | | * |
| | | * @param src |
| | | * the byte array to encode |
| | | * @return A String containing the resulting Base64 encoded characters |
| | | */ |
| | | @SuppressWarnings("deprecation") |
| | | public String encodeToString(byte[] src) { |
| | | byte[] encoded = encode(src); |
| | | return new String(encoded, 0, 0, encoded.length); |
| | | } |
| | | |
| | | /** |
| | | * Returns an encoder instance that encodes equivalently to this one, |
| | | * but without adding any padding character at the end of the encoded |
| | | * byte data. |
| | | * |
| | | * <p> The encoding scheme of this encoder instance is unaffected by |
| | | * this invocation. The returned encoder instance should be used for |
| | | * non-padding encoding operation. |
| | | * |
| | | * @return an equivalent encoder that encodes without adding any |
| | | * padding character at the end |
| | | */ |
| | | public Encoder withoutPadding() { |
| | | if (!doPadding) |
| | | return this; |
| | | return new Encoder(isURL, newline, linemax, false); |
| | | } |
| | | |
| | | private int encode0(byte[] src, int off, int end, byte[] dst) { |
| | | char[] base64 = isURL ? toBase64URL : toBase64; |
| | | int sp = off; |
| | | int slen = (end - off) / 3 * 3; |
| | | int sl = off + slen; |
| | | if (linemax > 0 && slen > linemax / 4 * 3) |
| | | slen = linemax / 4 * 3; |
| | | int dp = 0; |
| | | while (sp < sl) { |
| | | int sl0 = Math.min(sp + slen, sl); |
| | | for (int sp0 = sp, dp0 = dp ; sp0 < sl0; ) { |
| | | int bits = (src[sp0++] & 0xff) << 16 | |
| | | (src[sp0++] & 0xff) << 8 | |
| | | (src[sp0++] & 0xff); |
| | | dst[dp0++] = (byte)base64[(bits >>> 18) & 0x3f]; |
| | | dst[dp0++] = (byte)base64[(bits >>> 12) & 0x3f]; |
| | | dst[dp0++] = (byte)base64[(bits >>> 6) & 0x3f]; |
| | | dst[dp0++] = (byte)base64[bits & 0x3f]; |
| | | } |
| | | int dlen = (sl0 - sp) / 3 * 4; |
| | | dp += dlen; |
| | | sp = sl0; |
| | | if (dlen == linemax && sp < end) { |
| | | for (byte b : newline){ |
| | | dst[dp++] = b; |
| | | } |
| | | } |
| | | } |
| | | if (sp < end) { // 1 or 2 leftover bytes |
| | | int b0 = src[sp++] & 0xff; |
| | | dst[dp++] = (byte)base64[b0 >> 2]; |
| | | if (sp == end) { |
| | | dst[dp++] = (byte)base64[(b0 << 4) & 0x3f]; |
| | | if (doPadding) { |
| | | dst[dp++] = '='; |
| | | dst[dp++] = '='; |
| | | } |
| | | } else { |
| | | int b1 = src[sp++] & 0xff; |
| | | dst[dp++] = (byte)base64[(b0 << 4) & 0x3f | (b1 >> 4)]; |
| | | dst[dp++] = (byte)base64[(b1 << 2) & 0x3f]; |
| | | if (doPadding) { |
| | | dst[dp++] = '='; |
| | | } |
| | | } |
| | | } |
| | | return dp; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Returns a {@link Decoder} that decodes using the |
| | | * <a href="#basic">Basic</a> type base64 encoding scheme. |
| | | * |
| | | * @return A Base64 decoder. |
| | | */ |
| | | public static Decoder getDecoder() { |
| | | return Decoder.RFC4648; |
| | | } |
| | | /** |
| | | * This class implements a decoder for decoding byte data using the |
| | | * Base64 encoding scheme as specified in RFC 4648 and RFC 2045. |
| | | * |
| | | * <p> The Base64 padding character {@code '='} is accepted and |
| | | * interpreted as the end of the encoded byte data, but is not |
| | | * required. So if the final unit of the encoded byte data only has |
| | | * two or three Base64 characters (without the corresponding padding |
| | | * character(s) padded), they are decoded as if followed by padding |
| | | * character(s). If there is a padding character present in the |
| | | * final unit, the correct number of padding character(s) must be |
| | | * present, otherwise {@code IllegalArgumentException} ( |
| | | * {@code IOException} when reading from a Base64 stream) is thrown |
| | | * during decoding. |
| | | * |
| | | * <p> Instances of {@link Decoder} class are safe for use by |
| | | * multiple concurrent threads. |
| | | * |
| | | * <p> Unless otherwise noted, passing a {@code null} argument to |
| | | * a method of this class will cause a |
| | | * {@link NullPointerException NullPointerException} to |
| | | * be thrown. |
| | | * |
| | | * @see Encoder |
| | | * @since 1.8 |
| | | */ |
| | | public static class Decoder { |
| | | |
| | | private final boolean isURL; |
| | | private final boolean isMIME; |
| | | |
| | | private Decoder(boolean isURL, boolean isMIME) { |
| | | this.isURL = isURL; |
| | | this.isMIME = isMIME; |
| | | } |
| | | |
| | | /** |
| | | * Lookup table for decoding unicode characters drawn from the |
| | | * "Base64 Alphabet" (as specified in Table 1 of RFC 2045) into |
| | | * their 6-bit positive integer equivalents. Characters that |
| | | * are not in the Base64 alphabet but fall within the bounds of |
| | | * the array are encoded to -1. |
| | | * |
| | | */ |
| | | private static final int[] fromBase64 = new int[256]; |
| | | static { |
| | | Arrays.fill(fromBase64, -1); |
| | | for (int i = 0; i < Encoder.toBase64.length; i++) |
| | | fromBase64[Encoder.toBase64[i]] = i; |
| | | fromBase64['='] = -2; |
| | | } |
| | | |
| | | /** |
| | | * Lookup table for decoding "URL and Filename safe Base64 Alphabet" |
| | | * as specified in Table2 of the RFC 4648. |
| | | */ |
| | | private static final int[] fromBase64URL = new int[256]; |
| | | |
| | | static { |
| | | Arrays.fill(fromBase64URL, -1); |
| | | for (int i = 0; i < Encoder.toBase64URL.length; i++) |
| | | fromBase64URL[Encoder.toBase64URL[i]] = i; |
| | | fromBase64URL['='] = -2; |
| | | } |
| | | |
| | | static final Decoder RFC4648 = new Decoder(false, false); |
| | | static final Decoder RFC4648_URLSAFE = new Decoder(true, false); |
| | | static final Decoder RFC2045 = new Decoder(false, true); |
| | | |
| | | /** |
| | | * Decodes all bytes from the input byte array using the {@link Base64} |
| | | * encoding scheme, writing the results into a newly-allocated output |
| | | * byte array. The returned byte array is of the length of the resulting |
| | | * bytes. |
| | | * |
| | | * @param src |
| | | * the byte array to decode |
| | | * |
| | | * @return A newly-allocated byte array containing the decoded bytes. |
| | | * |
| | | * @throws IllegalArgumentException |
| | | * if {@code src} is not in valid Base64 scheme |
| | | */ |
| | | public byte[] decode(byte[] src) { |
| | | byte[] dst = new byte[outLength(src, 0, src.length)]; |
| | | int ret = decode0(src, 0, src.length, dst); |
| | | if (ret != dst.length) { |
| | | dst = Arrays.copyOf(dst, ret); |
| | | } |
| | | return dst; |
| | | } |
| | | |
| | | public byte[] decode(String src) { |
| | | return decode(src.getBytes(Charset.forName("ISO-8859-1"))); |
| | | } |
| | | |
| | | /** |
| | | * Decodes all bytes from the input byte array using the {@link Base64} |
| | | * encoding scheme, writing the results into the given output byte array, |
| | | * starting at offset 0. |
| | | * |
| | | * <p> It is the responsibility of the invoker of this method to make |
| | | * sure the output byte array {@code dst} has enough space for decoding |
| | | * all bytes from the input byte array. No bytes will be be written to |
| | | * the output byte array if the output byte array is not big enough. |
| | | * |
| | | * <p> If the input byte array is not in valid Base64 encoding scheme |
| | | * then some bytes may have been written to the output byte array before |
| | | * IllegalargumentException is thrown. |
| | | * |
| | | * @param src |
| | | * the byte array to decode |
| | | * @param dst |
| | | * the output byte array |
| | | * |
| | | * @return The number of bytes written to the output byte array |
| | | * |
| | | * @throws IllegalArgumentException |
| | | * if {@code src} is not in valid Base64 scheme, or {@code dst} |
| | | * does not have enough space for decoding all input bytes. |
| | | */ |
| | | public int decode(byte[] src, byte[] dst) { |
| | | int len = outLength(src, 0, src.length); |
| | | if (dst.length < len) |
| | | throw new IllegalArgumentException( |
| | | "Output byte array is too small for decoding all input bytes"); |
| | | return decode0(src, 0, src.length, dst); |
| | | } |
| | | |
| | | /** |
| | | * Decodes all bytes from the input byte buffer using the {@link Base64} |
| | | * encoding scheme, writing the results into a newly-allocated ByteBuffer. |
| | | * |
| | | * <p> Upon return, the source buffer's position will be updated to |
| | | * its limit; its limit will not have been changed. The returned |
| | | * output buffer's position will be zero and its limit will be the |
| | | * number of resulting decoded bytes |
| | | * |
| | | * <p> {@code IllegalArgumentException} is thrown if the input buffer |
| | | * is not in valid Base64 encoding scheme. The position of the input |
| | | * buffer will not be advanced in this case. |
| | | * |
| | | * @param buffer |
| | | * the ByteBuffer to decode |
| | | * |
| | | * @return A newly-allocated byte buffer containing the decoded bytes |
| | | * |
| | | * @throws IllegalArgumentException |
| | | * if {@code src} is not in valid Base64 scheme. |
| | | */ |
| | | public ByteBuffer decode(ByteBuffer buffer) { |
| | | int pos0 = buffer.position(); |
| | | try { |
| | | byte[] src; |
| | | int sp, sl; |
| | | if (buffer.hasArray()) { |
| | | src = buffer.array(); |
| | | sp = buffer.arrayOffset() + buffer.position(); |
| | | sl = buffer.arrayOffset() + buffer.limit(); |
| | | buffer.position(buffer.limit()); |
| | | } else { |
| | | src = new byte[buffer.remaining()]; |
| | | buffer.get(src); |
| | | sp = 0; |
| | | sl = src.length; |
| | | } |
| | | byte[] dst = new byte[outLength(src, sp, sl)]; |
| | | return ByteBuffer.wrap(dst, 0, decode0(src, sp, sl, dst)); |
| | | } catch (IllegalArgumentException iae) { |
| | | buffer.position(pos0); |
| | | throw iae; |
| | | } |
| | | } |
| | | |
| | | private int outLength(byte[] src, int sp, int sl) { |
| | | int[] base64 = isURL ? fromBase64URL : fromBase64; |
| | | int paddings = 0; |
| | | int len = sl - sp; |
| | | if (len == 0) |
| | | return 0; |
| | | if (len < 2) { |
| | | if (isMIME && base64[0] == -1) |
| | | return 0; |
| | | throw new IllegalArgumentException( |
| | | "Input byte[] should at least have 2 bytes for base64 bytes"); |
| | | } |
| | | if (isMIME) { |
| | | // scan all bytes to fill out all non-alphabet. a performance |
| | | // trade-off of pre-scan or Arrays.copyOf |
| | | int n = 0; |
| | | while (sp < sl) { |
| | | int b = src[sp++] & 0xff; |
| | | if (b == '=') { |
| | | len -= (sl - sp + 1); |
| | | break; |
| | | } |
| | | if ((b = base64[b]) == -1) |
| | | n++; |
| | | } |
| | | len -= n; |
| | | } else { |
| | | if (src[sl - 1] == '=') { |
| | | paddings++; |
| | | if (src[sl - 2] == '=') |
| | | paddings++; |
| | | } |
| | | } |
| | | if (paddings == 0 && (len & 0x3) != 0) |
| | | paddings = 4 - (len & 0x3); |
| | | return 3 * ((len + 3) / 4) - paddings; |
| | | } |
| | | |
| | | private int decode0(byte[] src, int sp, int sl, byte[] dst) { |
| | | int[] base64 = isURL ? fromBase64URL : fromBase64; |
| | | int dp = 0; |
| | | int bits = 0; |
| | | int shiftto = 18; // pos of first byte of 4-byte atom |
| | | while (sp < sl) { |
| | | int b = src[sp++] & 0xff; |
| | | if ((b = base64[b]) < 0) { |
| | | if (b == -2) { // padding byte '=' |
| | | // = shiftto==18 unnecessary padding |
| | | // x= shiftto==12 a dangling single x |
| | | // x to be handled together with non-padding case |
| | | // xx= shiftto==6&&sp==sl missing last = |
| | | // xx=y shiftto==6 last is not = |
| | | if (shiftto == 6 && (sp == sl || src[sp++] != '=') || |
| | | shiftto == 18) { |
| | | throw new IllegalArgumentException( |
| | | "Input byte array has wrong 4-byte ending unit"); |
| | | } |
| | | break; |
| | | } |
| | | if (isMIME) // skip if for rfc2045 |
| | | continue; |
| | | else |
| | | throw new IllegalArgumentException( |
| | | "Illegal base64 character " + |
| | | Integer.toString(src[sp - 1], 16)); |
| | | } |
| | | bits |= (b << shiftto); |
| | | shiftto -= 6; |
| | | if (shiftto < 0) { |
| | | dst[dp++] = (byte)(bits >> 16); |
| | | dst[dp++] = (byte)(bits >> 8); |
| | | dst[dp++] = (byte)(bits); |
| | | shiftto = 18; |
| | | bits = 0; |
| | | } |
| | | } |
| | | // reached end of byte array or hit padding '=' characters. |
| | | if (shiftto == 6) { |
| | | dst[dp++] = (byte)(bits >> 16); |
| | | } else if (shiftto == 0) { |
| | | dst[dp++] = (byte)(bits >> 16); |
| | | dst[dp++] = (byte)(bits >> 8); |
| | | } else if (shiftto == 12) { |
| | | // dangling single "x", incorrectly encoded. |
| | | throw new IllegalArgumentException( |
| | | "Last unit does not have enough valid bits"); |
| | | } |
| | | // anything left is invalid, if is not MIME. |
| | | // if MIME, ignore all non-base64 character |
| | | while (sp < sl) { |
| | | if (isMIME && base64[src[sp++]] < 0) |
| | | continue; |
| | | throw new IllegalArgumentException( |
| | | "Input byte array has incorrect ending byte at " + sp); |
| | | } |
| | | return dp; |
| | | } |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.common; |
| | | |
| | | import javax.swing.BorderFactory; |
| | | import javax.swing.JComponent; |
| | | import javax.swing.border.Border; |
| | | |
| | | /* |
| | | * 边框设置 |
| | | */ |
| | | public class BorderEx { |
| | | public static void set(JComponent object, String title, int width) { |
| | | Border innerBorder = BorderFactory.createTitledBorder(title); |
| | | Border outerBorder = BorderFactory.createEmptyBorder(width, width, width, width); |
| | | object.setBorder(BorderFactory.createCompoundBorder(outerBorder, innerBorder)); |
| | | } |
| | | |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.common; |
| | | |
| | | import java.lang.reflect.Method; |
| | | import java.util.NoSuchElementException; |
| | | import java.util.Scanner; |
| | | import java.util.Vector; |
| | | |
| | | public class CaseMenu { |
| | | |
| | | public static class Item { |
| | | private Object object; |
| | | private String itemName; |
| | | private String methodName; |
| | | |
| | | public Item(Object object, String itemName, String methodName) { |
| | | super(); |
| | | this.object = object; |
| | | this.itemName = itemName; |
| | | this.methodName = methodName; |
| | | } |
| | | |
| | | public Object getObject() { |
| | | return object; |
| | | } |
| | | |
| | | public String getItemName() { |
| | | return itemName; |
| | | } |
| | | |
| | | public String getMethodName() { |
| | | return methodName; |
| | | } |
| | | } |
| | | |
| | | private Vector<Item> items; |
| | | |
| | | public CaseMenu() { |
| | | super(); |
| | | items = new Vector<Item>(); |
| | | } |
| | | |
| | | public void addItem(Item item) { |
| | | items.add(item); |
| | | } |
| | | |
| | | private void showItem() { |
| | | final String format = "%2d\t%-20s\n"; |
| | | int index = 0; |
| | | System.out.printf(format, index++, "exit App"); |
| | | for (Item item : items) { |
| | | System.out.printf(format, index++, item.getItemName()); |
| | | } |
| | | System.out.println("Please input a item index to invoke the method:"); |
| | | } |
| | | |
| | | public void run() { |
| | | Scanner scanner = new Scanner(System.in); |
| | | while(true) { |
| | | showItem(); |
| | | try { |
| | | int input = Integer.parseInt(scanner.nextLine()); |
| | | |
| | | if (input <= 0 ) { |
| | | System.err.println("input <= 0 || scanner.nextLine() == null"); |
| | | // scanner.close(); |
| | | // System.exit(0); |
| | | break; |
| | | } |
| | | |
| | | if (input < 0 || input > items.size()) { |
| | | System.err.println("Input Error Item Index."); |
| | | continue; |
| | | } |
| | | |
| | | Item item = items.get(input - 1); |
| | | Class<?> itemClass = item.getObject().getClass(); |
| | | Method method = itemClass.getMethod(item.getMethodName()); |
| | | method.invoke(item.getObject()); |
| | | } catch (NoSuchElementException e) { |
| | | // scanner.close(); |
| | | // System.exit(0); |
| | | break; |
| | | } catch (NumberFormatException e) { |
| | | System.err.println("Input Error NumberFormat."); |
| | | continue; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | scanner.close(); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.common; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.Color; |
| | | import java.awt.Cursor; |
| | | import java.awt.Dimension; |
| | | import java.awt.FlowLayout; |
| | | import java.awt.Font; |
| | | import java.awt.GridLayout; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | import java.awt.event.MouseEvent; |
| | | import java.awt.event.MouseListener; |
| | | import java.awt.event.WindowAdapter; |
| | | import java.awt.event.WindowEvent; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | |
| | | import javax.swing.JButton; |
| | | import javax.swing.JDialog; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.JSpinner; |
| | | import javax.swing.SpinnerNumberModel; |
| | | import javax.swing.SwingConstants; |
| | | import javax.swing.UIManager; |
| | | import javax.swing.border.LineBorder; |
| | | import javax.swing.event.ChangeEvent; |
| | | import javax.swing.event.ChangeListener; |
| | | |
| | | /** |
| | | * 时间选择器, 年月日-时分秒 |
| | | */ |
| | | public class DateChooserJButton extends JButton { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | int startYear = 1980; // 默认【最小】显示年份 |
| | | int lastYear = 2050; // 默认【最大】显示年份 |
| | | |
| | | private DateChooser dateChooser = null; |
| | | private String preLabel = ""; |
| | | private String originalText = null; |
| | | private SimpleDateFormat sdf = null; |
| | | |
| | | private JSpinner yearSpin; |
| | | private JSpinner monthSpin; |
| | | private JSpinner daySpin; |
| | | private JSpinner hourSpin; |
| | | private JSpinner minuteSpin; |
| | | private JSpinner secondSpin; |
| | | |
| | | public DateChooserJButton() { |
| | | this(getNowDate()); |
| | | |
| | | try { |
| | | UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | public DateChooserJButton(String dateString) { |
| | | this(); |
| | | |
| | | setText(getDefaultDateFormat(), dateString); |
| | | //保存原始是日期时间 |
| | | initOriginalText(dateString); |
| | | } |
| | | |
| | | public DateChooserJButton(SimpleDateFormat df, String dateString) { |
| | | this(); |
| | | setText(df, dateString); |
| | | |
| | | //记忆当前的日期格式化器 |
| | | this.sdf = df; |
| | | |
| | | //记忆原始日期时间 |
| | | Date originalDate = null; |
| | | try { |
| | | originalDate = df.parse(dateString); |
| | | } catch (ParseException ex) { |
| | | originalDate = getNowDate(); |
| | | } |
| | | initOriginalText(originalDate); |
| | | } |
| | | |
| | | public DateChooserJButton(Date date) { |
| | | this("", date); |
| | | //记忆原始日期时间 |
| | | initOriginalText(date); |
| | | } |
| | | |
| | | public DateChooserJButton(String preLabel, Date date) { |
| | | if (preLabel != null) { |
| | | this.preLabel = preLabel; |
| | | } |
| | | setDate(date); |
| | | //记忆原始是日期时间 |
| | | initOriginalText(date); |
| | | |
| | | setBorder(null); |
| | | setCursor(new Cursor(Cursor.HAND_CURSOR)); |
| | | super.addActionListener(new ActionListener() { |
| | | |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | if (dateChooser == null) { |
| | | dateChooser = new DateChooser(); |
| | | } |
| | | |
| | | dateChooser.showDateChooser(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | public DateChooserJButton(int startYear, int lastYear) { |
| | | this(); |
| | | this.startYear = startYear; |
| | | this.lastYear = lastYear; |
| | | } |
| | | |
| | | private static Date getNowDate() { |
| | | return Calendar.getInstance().getTime(); |
| | | } |
| | | |
| | | private static SimpleDateFormat getDefaultDateFormat() { |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | } |
| | | |
| | | /** |
| | | * 得到当前使用的日期格式化器 |
| | | * @return 日期格式化器 |
| | | */ |
| | | public SimpleDateFormat getCurrentSimpleDateFormat(){ |
| | | if(this.sdf != null){ |
| | | return sdf; |
| | | }else{ |
| | | return getDefaultDateFormat(); |
| | | } |
| | | } |
| | | |
| | | |
| | | //保存原始是日期时间 |
| | | private void initOriginalText(String dateString) { |
| | | this.originalText = dateString; |
| | | } |
| | | |
| | | //保存原始是日期时间 |
| | | private void initOriginalText(Date date) { |
| | | this.originalText = preLabel + getDefaultDateFormat().format(date); |
| | | } |
| | | |
| | | /** |
| | | * 得到当前记忆的原始日期时间 |
| | | * @return 当前记忆的原始日期时间(未修改前的日期时间) |
| | | */ |
| | | public String getOriginalText() { |
| | | return originalText; |
| | | } |
| | | |
| | | // 覆盖父类的方法 |
| | | @Override |
| | | public void setText(String s) { |
| | | Date date; |
| | | try { |
| | | date = getDefaultDateFormat().parse(s); |
| | | } catch (ParseException e) { |
| | | date = getNowDate(); |
| | | } |
| | | setDate(date); |
| | | initOriginalText(date); |
| | | } |
| | | |
| | | public void setText(SimpleDateFormat df, String s) { |
| | | Date date; |
| | | try { |
| | | date = df.parse(s); |
| | | } catch (ParseException e) { |
| | | date = getNowDate(); |
| | | } |
| | | setDate(date); |
| | | initOriginalText(date); |
| | | } |
| | | |
| | | public void setDate(Date date) { |
| | | super.setText(preLabel + getDefaultDateFormat().format(date)); |
| | | } |
| | | |
| | | public Date getDate() { |
| | | String dateString = getText().substring(preLabel.length()); |
| | | try { |
| | | SimpleDateFormat currentSdf = getCurrentSimpleDateFormat(); |
| | | return currentSdf.parse(dateString); |
| | | } catch (ParseException e) { |
| | | return getNowDate(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 覆盖父类的方法使之无效 |
| | | * @param listener 响应监听器 |
| | | */ |
| | | @Override |
| | | public void addActionListener(ActionListener listener) { |
| | | } |
| | | |
| | | /** |
| | | * 内部类,主要是定义一个JPanel,然后把日历相关的所有内容填入本JPanel, |
| | | * 然后再创建一个JDialog,把本内部类定义的JPanel放入JDialog的内容区 |
| | | */ |
| | | private class DateChooser extends JPanel implements MouseListener, ChangeListener { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | JLabel yearLabel; |
| | | JLabel monthLabel; |
| | | JLabel dayLabel; |
| | | JLabel hourLabel; |
| | | JLabel minuteLabel; |
| | | JLabel secondLabel; |
| | | |
| | | int width = 485; // 界面宽度 |
| | | int height = 230; // 界面高度 |
| | | Color backGroundColor = Color.gray; // 底色 |
| | | // 月历表格配色----------------// |
| | | Color palletTableColor = Color.white; // 日历表底色 |
| | | Color todayBackColor = Color.orange; // 今天背景色 |
| | | Color weekFontColor = Color.blue; // 星期文字色 |
| | | Color dateFontColor = Color.black; // 日期文字色 |
| | | Color weekendFontColor = Color.red; // 周末文字色 |
| | | // 控制条配色------------------// |
| | | Color controlLineColor = Color.pink; // 控制条底色 |
| | | Color controlTextColor = Color.white; // 控制条标签文字色 |
| | | |
| | | /** 点击DateChooserButton时弹出的对话框,日历内容在这个对话框内 */ |
| | | JDialog dialog; |
| | | JLabel[][] daysLabels = new JLabel[6][7]; |
| | | |
| | | DateChooser() { |
| | | setLayout(new BorderLayout()); |
| | | setBorder(new LineBorder(backGroundColor, 2)); |
| | | setBackground(backGroundColor); |
| | | |
| | | JPanel topYearAndMonth = createYearAndMonthPanal(); |
| | | add(topYearAndMonth, BorderLayout.NORTH); |
| | | JPanel centerWeekAndDay = createWeekAndDayPanal(); |
| | | add(centerWeekAndDay, BorderLayout.CENTER); |
| | | JPanel buttonBarPanel = createButtonBarPanel(); |
| | | this.add(buttonBarPanel, BorderLayout.SOUTH); |
| | | } |
| | | |
| | | private JPanel createYearAndMonthPanal() { |
| | | Calendar c = getCalendar(); |
| | | int currentYear = c.get(Calendar.YEAR); |
| | | int currentMonth = c.get(Calendar.MONTH) + 1; |
| | | int currentDay = c.get(Calendar.DAY_OF_MONTH); |
| | | int currentHour = c.get(Calendar.HOUR_OF_DAY); |
| | | int currentMinute = c.get(Calendar.MINUTE); |
| | | int currentSecond = c.get(Calendar.SECOND); |
| | | |
| | | JPanel result = new JPanel(); |
| | | result.setLayout(new FlowLayout()); |
| | | result.setBackground(controlLineColor); |
| | | |
| | | yearSpin = new JSpinner(new SpinnerNumberModel(currentYear, startYear, lastYear, 1)); |
| | | yearSpin.setPreferredSize(new Dimension(48, 20)); |
| | | yearSpin.setName("Year"); |
| | | yearSpin.setEditor(new JSpinner.NumberEditor(yearSpin, "####")); |
| | | yearSpin.addChangeListener(this); |
| | | result.add(yearSpin); |
| | | |
| | | yearLabel = new JLabel(Res.string().getYear()); |
| | | yearLabel.setForeground(controlTextColor); |
| | | result.add(yearLabel); |
| | | |
| | | monthSpin = new JSpinner(new SpinnerNumberModel(currentMonth, 1, 12, 1)); |
| | | monthSpin.setPreferredSize(new Dimension(35, 20)); |
| | | monthSpin.setName("Month"); |
| | | monthSpin.addChangeListener(this); |
| | | result.add(monthSpin); |
| | | |
| | | monthLabel = new JLabel(Res.string().getMonth()); |
| | | monthLabel.setForeground(controlTextColor); |
| | | result.add(monthLabel); |
| | | |
| | | //如果这里要能够选择,会要判断很多东西,比如每个月分别由多少日,以及闰年问题.所以,就干脆把Enable设为false |
| | | daySpin = new JSpinner(new SpinnerNumberModel(currentDay, 1, 31, 1)); |
| | | daySpin.setPreferredSize(new Dimension(35, 20)); |
| | | daySpin.setName("Day"); |
| | | daySpin.addChangeListener(this); |
| | | daySpin.setEnabled(false); |
| | | result.add(daySpin); |
| | | |
| | | dayLabel = new JLabel(Res.string().getDay()); |
| | | dayLabel.setForeground(controlTextColor); |
| | | result.add(dayLabel); |
| | | |
| | | hourSpin = new JSpinner(new SpinnerNumberModel(currentHour, 0, 23, 1)); |
| | | hourSpin.setPreferredSize(new Dimension(35, 20)); |
| | | hourSpin.setName("Hour"); |
| | | hourSpin.addChangeListener(this); |
| | | result.add(hourSpin); |
| | | |
| | | hourLabel = new JLabel(Res.string().getHour()); |
| | | hourLabel.setForeground(controlTextColor); |
| | | result.add(hourLabel); |
| | | |
| | | minuteSpin = new JSpinner(new SpinnerNumberModel(currentMinute, 0, 59, 1)); |
| | | minuteSpin.setPreferredSize(new Dimension(35, 20)); |
| | | minuteSpin.setName("Minute"); |
| | | minuteSpin.addChangeListener(this); |
| | | result.add(minuteSpin); |
| | | |
| | | minuteLabel = new JLabel(Res.string().getMinute()); |
| | | minuteLabel.setForeground(controlTextColor); |
| | | result.add(minuteLabel); |
| | | |
| | | secondSpin = new JSpinner(new SpinnerNumberModel(currentSecond, 0, 59, 1)); |
| | | secondSpin.setPreferredSize(new Dimension(35, 20)); |
| | | secondSpin.setName("Second"); |
| | | secondSpin.addChangeListener(this); |
| | | result.add(secondSpin); |
| | | |
| | | secondLabel = new JLabel(Res.string().getSecond()); |
| | | secondLabel.setForeground(controlTextColor); |
| | | result.add(secondLabel); |
| | | |
| | | return result; |
| | | } |
| | | |
| | | private JPanel createWeekAndDayPanal() { |
| | | Res.string().getWeek(); |
| | | JPanel result = new JPanel(); |
| | | // 设置固定字体,以免调用环境改变影响界面美观 |
| | | result.setFont(new Font("宋体", Font.PLAIN, 12)); |
| | | result.setLayout(new GridLayout(7, 7)); |
| | | result.setBackground(Color.white); |
| | | JLabel cell; |
| | | |
| | | for (int i = 0; i < 7; i++) { |
| | | cell = new JLabel(Res.string().getWeek()[i]); |
| | | cell.setHorizontalAlignment(JLabel.RIGHT); |
| | | if (i == 0 || i == 6) { |
| | | cell.setForeground(weekendFontColor); |
| | | } else { |
| | | cell.setForeground(weekFontColor); |
| | | } |
| | | result.add(cell); |
| | | } |
| | | |
| | | // int actionCommandId = 0; |
| | | for (int i = 0; i < 6; i++) { |
| | | for (int j = 0; j < 7; j++) { |
| | | JLabel numberLabel = new JLabel(); |
| | | numberLabel.setBorder(null); |
| | | numberLabel.setHorizontalAlignment(SwingConstants.RIGHT); |
| | | // numberLabel.setActionCommand(String.valueOf(actionCommandId)); |
| | | numberLabel.addMouseListener(this); |
| | | numberLabel.setBackground(palletTableColor); |
| | | numberLabel.setForeground(dateFontColor); |
| | | if (j == 0 || j == 6) { |
| | | numberLabel.setForeground(weekendFontColor); |
| | | } else { |
| | | numberLabel.setForeground(dateFontColor); |
| | | } |
| | | daysLabels[i][j] = numberLabel; |
| | | result.add(numberLabel); |
| | | // actionCommandId++; |
| | | } |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | /** 得到DateChooserButton的当前text,本方法是为按钮事件匿名类准备的。 */ |
| | | public String getTextOfDateChooserButton() { |
| | | return getText(); |
| | | } |
| | | |
| | | /** 恢复DateChooserButton的原始日期时间text,本方法是为按钮事件匿名类准备的。 */ |
| | | public void restoreTheOriginalDate() { |
| | | String originalText = getOriginalText(); |
| | | setText(originalText); |
| | | } |
| | | |
| | | private JPanel createButtonBarPanel() { |
| | | JPanel panel = new JPanel(); |
| | | panel.setLayout(new GridLayout(1, 2)); |
| | | |
| | | JButton ok = new JButton(Res.string().getConfirm()); |
| | | ok.addActionListener(new ActionListener() { |
| | | |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | //记忆原始日期时间 |
| | | initOriginalText(getTextOfDateChooserButton()); |
| | | //隐藏日历对话框 |
| | | dialog.setVisible(false); |
| | | } |
| | | }); |
| | | panel.add(ok); |
| | | |
| | | JButton cancel = new JButton(Res.string().getCancel()); |
| | | cancel.addActionListener(new ActionListener() { |
| | | |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | //恢复原始的日期时间 |
| | | restoreTheOriginalDate(); |
| | | //隐藏日历对话框 |
| | | dialog.setVisible(false); |
| | | } |
| | | }); |
| | | |
| | | panel.add(cancel); |
| | | return panel; |
| | | } |
| | | |
| | | private JDialog createDialog() { |
| | | JDialog result = new JDialog(); |
| | | result.setTitle(Res.string().getDateChooser()); |
| | | result.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); |
| | | result.getContentPane().add(this, BorderLayout.CENTER); |
| | | result.pack(); |
| | | result.setSize(width, height); |
| | | result.setModal(true); |
| | | |
| | | result.addWindowListener(new WindowAdapter() { |
| | | public void windowClosing(WindowEvent e) { |
| | | //恢复原始的日期时间 |
| | | restoreTheOriginalDate(); |
| | | //隐藏日历对话框 |
| | | dialog.setVisible(false); |
| | | } |
| | | }); |
| | | |
| | | return result; |
| | | } |
| | | |
| | | void showDateChooser() { |
| | | if (dialog == null) { |
| | | dialog = createDialog(); |
| | | } |
| | | dialog.setLocationRelativeTo(null); |
| | | flushWeekAndDay(); |
| | | dialog.setVisible(true); |
| | | } |
| | | |
| | | private Calendar getCalendar() { |
| | | Calendar result = Calendar.getInstance(); |
| | | result.setTime(getDate()); |
| | | return result; |
| | | } |
| | | |
| | | private int getSelectedYear() { |
| | | return ((Integer) yearSpin.getValue()).intValue(); |
| | | } |
| | | |
| | | private int getSelectedMonth() { |
| | | return ((Integer) monthSpin.getValue()).intValue(); |
| | | } |
| | | |
| | | private int getSelectedHour() { |
| | | return ((Integer) hourSpin.getValue()).intValue(); |
| | | } |
| | | |
| | | private int getSelectedMinite() { |
| | | return ((Integer) minuteSpin.getValue()).intValue(); |
| | | } |
| | | |
| | | private int getSelectedSecond() { |
| | | return ((Integer) secondSpin.getValue()).intValue(); |
| | | } |
| | | |
| | | private void dayColorUpdate(boolean isOldDay) { |
| | | Calendar c = getCalendar(); |
| | | int day = c.get(Calendar.DAY_OF_MONTH); |
| | | c.set(Calendar.DAY_OF_MONTH, 1); |
| | | int actionCommandId = day - 2 + c.get(Calendar.DAY_OF_WEEK); |
| | | int i = actionCommandId / 7; |
| | | int j = actionCommandId % 7; |
| | | if (isOldDay) { |
| | | daysLabels[i][j].setForeground(dateFontColor); |
| | | } else { |
| | | daysLabels[i][j].setForeground(todayBackColor); |
| | | } |
| | | } |
| | | |
| | | private void flushWeekAndDay() { |
| | | Calendar c = getCalendar(); |
| | | c.set(Calendar.DAY_OF_MONTH, 1); |
| | | int maxDayNo = c.getActualMaximum(Calendar.DAY_OF_MONTH); |
| | | int dayNo = 2 - c.get(Calendar.DAY_OF_WEEK); |
| | | for (int i = 0; i < 6; i++) { |
| | | for (int j = 0; j < 7; j++) { |
| | | String s = ""; |
| | | if (dayNo >= 1 && dayNo <= maxDayNo) { |
| | | s = String.valueOf(dayNo); |
| | | } |
| | | daysLabels[i][j].setText(s); |
| | | dayNo++; |
| | | } |
| | | } |
| | | |
| | | // 打开日历时,根据按钮的时间,设置日历的时间 |
| | | String[] date1 = getText().split(" ")[0].split("-"); |
| | | String[] date2 = getText().split(" ")[1].split(":"); |
| | | |
| | | yearSpin.setValue(new Integer(date1[0])); |
| | | monthSpin.setValue(new Integer(date1[1])); |
| | | daySpin.setValue(new Integer(date1[2])); |
| | | hourSpin.setValue(new Integer(date2[0])); |
| | | minuteSpin.setValue(new Integer(date2[1])); |
| | | secondSpin.setValue(new Integer(date2[2])); |
| | | |
| | | // 重置日历天的数字颜色 |
| | | for(int i = 0; i < 6; i++) { |
| | | for(int j = 0; j < 7; j++) { |
| | | if(!daysLabels[i][j].getText().equals("")) { |
| | | daysLabels[i][j].setForeground(Color.BLACK); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 重置日历星期六、星期日的数字颜色 |
| | | for(int i = 0; i < 6; i++) { |
| | | if(!daysLabels[i][0].getText().equals("")) { |
| | | daysLabels[i][0].setForeground(weekendFontColor); |
| | | } |
| | | if(!daysLabels[i][6].getText().equals("")) { |
| | | daysLabels[i][6].setForeground(weekendFontColor); |
| | | } |
| | | } |
| | | |
| | | // 设置当天的数字颜色 |
| | | for(int i = 0; i < 6; i++) { |
| | | for(int j = 0; j < 7; j++) { |
| | | if(daysLabels[i][j].getText().equals(date1[2])) { |
| | | daysLabels[i][j].setForeground(todayBackColor); |
| | | } |
| | | } |
| | | } |
| | | |
| | | dayColorUpdate(false); |
| | | } |
| | | |
| | | /** |
| | | * 选择日期时的响应事件 |
| | | */ |
| | | @Override |
| | | public void stateChanged(ChangeEvent e) { |
| | | JSpinner source = (JSpinner) e.getSource(); |
| | | Calendar c = getCalendar(); |
| | | if (source.getName().equals("Hour")) { |
| | | c.set(Calendar.HOUR_OF_DAY, getSelectedHour()); |
| | | setDate(c.getTime()); |
| | | return; |
| | | } |
| | | if (source.getName().equals("Minute")) { |
| | | c.set(Calendar.MINUTE, getSelectedMinite()); |
| | | setDate(c.getTime()); |
| | | return; |
| | | } |
| | | if (source.getName().equals("Second")) { |
| | | c.set(Calendar.SECOND, getSelectedSecond()); |
| | | setDate(c.getTime()); |
| | | return; |
| | | } |
| | | |
| | | dayColorUpdate(true); |
| | | |
| | | if (source.getName().equals("Year")) { |
| | | c.set(Calendar.YEAR, getSelectedYear()); |
| | | } else if (source.getName().equals("Month")) { |
| | | c.set(Calendar.MONTH, getSelectedMonth() - 1); |
| | | } |
| | | setDate(c.getTime()); |
| | | flushWeekAndDay(); |
| | | } |
| | | |
| | | /** |
| | | * 选择日期时的响应事件 |
| | | */ |
| | | @Override |
| | | public void mouseClicked(MouseEvent e) { |
| | | JLabel source = (JLabel) e.getSource(); |
| | | if (source.getText().length() == 0) { |
| | | return; |
| | | } |
| | | dayColorUpdate(true); |
| | | source.setForeground(todayBackColor); |
| | | int newDay = Integer.parseInt(source.getText()); |
| | | Calendar c = getCalendar(); |
| | | c.set(Calendar.DAY_OF_MONTH, newDay); |
| | | setDate(c.getTime()); |
| | | //把daySpin中的值也变了 |
| | | daySpin.setValue(Integer.valueOf(newDay)); |
| | | } |
| | | |
| | | @Override |
| | | public void mouseEntered(MouseEvent arg0) { |
| | | // TODO Auto-generated method stub |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void mouseExited(MouseEvent arg0) { |
| | | // TODO Auto-generated method stub |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void mousePressed(MouseEvent arg0) { |
| | | // TODO Auto-generated method stub |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void mouseReleased(MouseEvent arg0) { |
| | | // TODO Auto-generated method stub |
| | | |
| | | } |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.common; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.Color; |
| | | import java.awt.Cursor; |
| | | import java.awt.Dimension; |
| | | import java.awt.FlowLayout; |
| | | import java.awt.Font; |
| | | import java.awt.GridLayout; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | import java.awt.event.MouseEvent; |
| | | import java.awt.event.MouseListener; |
| | | import java.awt.event.WindowAdapter; |
| | | import java.awt.event.WindowEvent; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | |
| | | import javax.swing.JButton; |
| | | import javax.swing.JDialog; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.JSpinner; |
| | | import javax.swing.SpinnerNumberModel; |
| | | import javax.swing.SwingConstants; |
| | | import javax.swing.UIManager; |
| | | import javax.swing.border.LineBorder; |
| | | import javax.swing.event.ChangeEvent; |
| | | import javax.swing.event.ChangeListener; |
| | | |
| | | /** |
| | | * 时间选择器, 年月日 |
| | | */ |
| | | public class DateChooserJButtonEx extends JButton { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | int startYear = 1980; // 默认【最小】显示年份 |
| | | int lastYear = 2050; // 默认【最大】显示年份 |
| | | |
| | | private DateChooser dateChooser = null; |
| | | private String preLabel = ""; |
| | | private String originalText = null; |
| | | private SimpleDateFormat sdf = null; |
| | | |
| | | private JSpinner yearSpin; |
| | | private JSpinner monthSpin; |
| | | private JSpinner daySpin; |
| | | private JSpinner hourSpin; |
| | | private JSpinner minuteSpin; |
| | | private JSpinner secondSpin; |
| | | |
| | | public DateChooserJButtonEx() { |
| | | this(getNowDate()); |
| | | |
| | | try { |
| | | UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | public DateChooserJButtonEx(String dateString) { |
| | | this(); |
| | | |
| | | setText(getDefaultDateFormat(), dateString); |
| | | //保存原始是日期时间 |
| | | initOriginalText(dateString); |
| | | } |
| | | |
| | | public DateChooserJButtonEx(SimpleDateFormat df, String dateString) { |
| | | this(); |
| | | setText(df, dateString); |
| | | |
| | | //记忆当前的日期格式化器 |
| | | this.sdf = df; |
| | | |
| | | //记忆原始日期时间 |
| | | Date originalDate = null; |
| | | try { |
| | | originalDate = df.parse(dateString); |
| | | } catch (ParseException ex) { |
| | | originalDate = getNowDate(); |
| | | } |
| | | initOriginalText(originalDate); |
| | | } |
| | | |
| | | public DateChooserJButtonEx(Date date) { |
| | | this("", date); |
| | | //记忆原始日期时间 |
| | | initOriginalText(date); |
| | | } |
| | | |
| | | public DateChooserJButtonEx(String preLabel, Date date) { |
| | | if (preLabel != null) { |
| | | this.preLabel = preLabel; |
| | | } |
| | | setDate(date); |
| | | //记忆原始是日期时间 |
| | | initOriginalText(date); |
| | | |
| | | setBorder(null); |
| | | setCursor(new Cursor(Cursor.HAND_CURSOR)); |
| | | super.addActionListener(new ActionListener() { |
| | | |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | if (dateChooser == null) { |
| | | dateChooser = new DateChooser(); |
| | | } |
| | | |
| | | dateChooser.showDateChooser(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | public void setStartYear(int startYear) { |
| | | this.startYear = startYear; |
| | | } |
| | | |
| | | public void setLastYear(int lastYear) { |
| | | this.lastYear = lastYear; |
| | | } |
| | | |
| | | private static Date getNowDate() { |
| | | return Calendar.getInstance().getTime(); |
| | | } |
| | | |
| | | private static SimpleDateFormat getDefaultDateFormat() { |
| | | return new SimpleDateFormat("yyyy-MM-dd"); |
| | | } |
| | | |
| | | /** |
| | | * 得到当前使用的日期格式化器 |
| | | * @return 日期格式化器 |
| | | */ |
| | | public SimpleDateFormat getCurrentSimpleDateFormat(){ |
| | | if(this.sdf != null){ |
| | | return sdf; |
| | | }else{ |
| | | return getDefaultDateFormat(); |
| | | } |
| | | } |
| | | |
| | | |
| | | //保存原始是日期时间 |
| | | private void initOriginalText(String dateString) { |
| | | this.originalText = dateString; |
| | | } |
| | | |
| | | //保存原始是日期时间 |
| | | private void initOriginalText(Date date) { |
| | | this.originalText = preLabel + getDefaultDateFormat().format(date); |
| | | } |
| | | |
| | | /** |
| | | * 得到当前记忆的原始日期时间 |
| | | * @return 当前记忆的原始日期时间(未修改前的日期时间) |
| | | */ |
| | | public String getOriginalText() { |
| | | return originalText; |
| | | } |
| | | |
| | | // 覆盖父类的方法 |
| | | @Override |
| | | public void setText(String s) { |
| | | Date date; |
| | | try { |
| | | date = getDefaultDateFormat().parse(s); |
| | | } catch (ParseException e) { |
| | | date = getNowDate(); |
| | | } |
| | | setDate(date); |
| | | initOriginalText(date); |
| | | } |
| | | |
| | | public void setText(SimpleDateFormat df, String s) { |
| | | Date date; |
| | | try { |
| | | date = df.parse(s); |
| | | } catch (ParseException e) { |
| | | date = getNowDate(); |
| | | } |
| | | setDate(date); |
| | | initOriginalText(date); |
| | | } |
| | | |
| | | public void setDate(Date date) { |
| | | super.setText(preLabel + getDefaultDateFormat().format(date)); |
| | | } |
| | | |
| | | public Date getDate() { |
| | | String dateString = getText().substring(preLabel.length()); |
| | | try { |
| | | SimpleDateFormat currentSdf = getCurrentSimpleDateFormat(); |
| | | return currentSdf.parse(dateString); |
| | | } catch (ParseException e) { |
| | | return getNowDate(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 覆盖父类的方法使之无效 |
| | | * @param listener 响应监听器 |
| | | */ |
| | | @Override |
| | | public void addActionListener(ActionListener listener) { |
| | | } |
| | | |
| | | /** |
| | | * 内部类,主要是定义一个JPanel,然后把日历相关的所有内容填入本JPanel, |
| | | * 然后再创建一个JDialog,把本内部类定义的JPanel放入JDialog的内容区 |
| | | */ |
| | | private class DateChooser extends JPanel implements MouseListener, ChangeListener { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | JLabel yearLabel; |
| | | JLabel monthLabel; |
| | | JLabel dayLabel; |
| | | |
| | | int width = 485; // 界面宽度 |
| | | int height = 230; // 界面高度 |
| | | Color backGroundColor = Color.gray; // 底色 |
| | | // 月历表格配色----------------// |
| | | Color palletTableColor = Color.white; // 日历表底色 |
| | | Color todayBackColor = Color.orange; // 今天背景色 |
| | | Color weekFontColor = Color.blue; // 星期文字色 |
| | | Color dateFontColor = Color.black; // 日期文字色 |
| | | Color weekendFontColor = Color.red; // 周末文字色 |
| | | // 控制条配色------------------// |
| | | Color controlLineColor = Color.pink; // 控制条底色 |
| | | Color controlTextColor = Color.white; // 控制条标签文字色 |
| | | |
| | | /** 点击DateChooserButton时弹出的对话框,日历内容在这个对话框内 */ |
| | | JDialog dialog; |
| | | JLabel[][] daysLabels = new JLabel[6][7]; |
| | | |
| | | DateChooser() { |
| | | setLayout(new BorderLayout()); |
| | | setBorder(new LineBorder(backGroundColor, 2)); |
| | | setBackground(backGroundColor); |
| | | |
| | | JPanel topYearAndMonth = createYearAndMonthPanal(); |
| | | add(topYearAndMonth, BorderLayout.NORTH); |
| | | JPanel centerWeekAndDay = createWeekAndDayPanal(); |
| | | add(centerWeekAndDay, BorderLayout.CENTER); |
| | | JPanel buttonBarPanel = createButtonBarPanel(); |
| | | this.add(buttonBarPanel, BorderLayout.SOUTH); |
| | | } |
| | | |
| | | private JPanel createYearAndMonthPanal() { |
| | | Calendar c = getCalendar(); |
| | | int currentYear = c.get(Calendar.YEAR); |
| | | int currentMonth = c.get(Calendar.MONTH) + 1; |
| | | int currentDay = c.get(Calendar.DAY_OF_MONTH); |
| | | |
| | | JPanel result = new JPanel(); |
| | | result.setLayout(new FlowLayout()); |
| | | result.setBackground(controlLineColor); |
| | | |
| | | yearSpin = new JSpinner(new SpinnerNumberModel(currentYear, startYear, lastYear, 1)); |
| | | yearSpin.setPreferredSize(new Dimension(48, 20)); |
| | | yearSpin.setName("Year"); |
| | | yearSpin.setEditor(new JSpinner.NumberEditor(yearSpin, "####")); |
| | | yearSpin.addChangeListener(this); |
| | | result.add(yearSpin); |
| | | |
| | | yearLabel = new JLabel(Res.string().getYear()); |
| | | yearLabel.setForeground(controlTextColor); |
| | | result.add(yearLabel); |
| | | |
| | | monthSpin = new JSpinner(new SpinnerNumberModel(currentMonth, 1, 12, 1)); |
| | | monthSpin.setPreferredSize(new Dimension(35, 20)); |
| | | monthSpin.setName("Month"); |
| | | monthSpin.addChangeListener(this); |
| | | result.add(monthSpin); |
| | | |
| | | monthLabel = new JLabel(Res.string().getMonth()); |
| | | monthLabel.setForeground(controlTextColor); |
| | | result.add(monthLabel); |
| | | |
| | | //如果这里要能够选择,会要判断很多东西,比如每个月分别由多少日,以及闰年问题.所以,就干脆把Enable设为false |
| | | daySpin = new JSpinner(new SpinnerNumberModel(currentDay, 1, 31, 1)); |
| | | daySpin.setPreferredSize(new Dimension(35, 20)); |
| | | daySpin.setName("Day"); |
| | | daySpin.addChangeListener(this); |
| | | daySpin.setEnabled(false); |
| | | result.add(daySpin); |
| | | |
| | | dayLabel = new JLabel(Res.string().getDay()); |
| | | dayLabel.setForeground(controlTextColor); |
| | | result.add(dayLabel); |
| | | |
| | | return result; |
| | | } |
| | | |
| | | private JPanel createWeekAndDayPanal() { |
| | | Res.string().getWeek(); |
| | | JPanel result = new JPanel(); |
| | | // 设置固定字体,以免调用环境改变影响界面美观 |
| | | result.setFont(new Font("宋体", Font.PLAIN, 12)); |
| | | result.setLayout(new GridLayout(7, 7)); |
| | | result.setBackground(Color.white); |
| | | JLabel cell; |
| | | |
| | | for (int i = 0; i < 7; i++) { |
| | | cell = new JLabel(Res.string().getWeek()[i]); |
| | | cell.setHorizontalAlignment(JLabel.RIGHT); |
| | | if (i == 0 || i == 6) { |
| | | cell.setForeground(weekendFontColor); |
| | | } else { |
| | | cell.setForeground(weekFontColor); |
| | | } |
| | | result.add(cell); |
| | | } |
| | | |
| | | // int actionCommandId = 0; |
| | | for (int i = 0; i < 6; i++) { |
| | | for (int j = 0; j < 7; j++) { |
| | | JLabel numberLabel = new JLabel(); |
| | | numberLabel.setBorder(null); |
| | | numberLabel.setHorizontalAlignment(SwingConstants.RIGHT); |
| | | // numberLabel.setActionCommand(String.valueOf(actionCommandId)); |
| | | numberLabel.addMouseListener(this); |
| | | numberLabel.setBackground(palletTableColor); |
| | | numberLabel.setForeground(dateFontColor); |
| | | if (j == 0 || j == 6) { |
| | | numberLabel.setForeground(weekendFontColor); |
| | | } else { |
| | | numberLabel.setForeground(dateFontColor); |
| | | } |
| | | daysLabels[i][j] = numberLabel; |
| | | result.add(numberLabel); |
| | | // actionCommandId++; |
| | | } |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | /** 得到DateChooserButton的当前text,本方法是为按钮事件匿名类准备的。 */ |
| | | public String getTextOfDateChooserButton() { |
| | | return getText(); |
| | | } |
| | | |
| | | /** 恢复DateChooserButton的原始日期时间text,本方法是为按钮事件匿名类准备的。 */ |
| | | public void restoreTheOriginalDate() { |
| | | String originalText = getOriginalText(); |
| | | setText(originalText); |
| | | } |
| | | |
| | | private JPanel createButtonBarPanel() { |
| | | JPanel panel = new JPanel(); |
| | | panel.setLayout(new GridLayout(1, 2)); |
| | | |
| | | JButton ok = new JButton(Res.string().getConfirm()); |
| | | ok.addActionListener(new ActionListener() { |
| | | |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | //记忆原始日期时间 |
| | | initOriginalText(getTextOfDateChooserButton()); |
| | | //隐藏日历对话框 |
| | | dialog.setVisible(false); |
| | | } |
| | | }); |
| | | panel.add(ok); |
| | | |
| | | JButton cancel = new JButton(Res.string().getCancel()); |
| | | cancel.addActionListener(new ActionListener() { |
| | | |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | //恢复原始的日期时间 |
| | | restoreTheOriginalDate(); |
| | | //隐藏日历对话框 |
| | | dialog.setVisible(false); |
| | | } |
| | | }); |
| | | |
| | | panel.add(cancel); |
| | | return panel; |
| | | } |
| | | |
| | | private JDialog createDialog() { |
| | | JDialog result = new JDialog(); |
| | | result.setTitle(Res.string().getDateChooser()); |
| | | result.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); |
| | | result.getContentPane().add(this, BorderLayout.CENTER); |
| | | result.pack(); |
| | | result.setSize(width, height); |
| | | result.setModal(true); |
| | | |
| | | result.addWindowListener(new WindowAdapter() { |
| | | public void windowClosing(WindowEvent e) { |
| | | //恢复原始的日期时间 |
| | | restoreTheOriginalDate(); |
| | | //隐藏日历对话框 |
| | | dialog.setVisible(false); |
| | | } |
| | | }); |
| | | |
| | | return result; |
| | | } |
| | | |
| | | void showDateChooser() { |
| | | if (dialog == null) { |
| | | dialog = createDialog(); |
| | | } |
| | | dialog.setLocationRelativeTo(null); |
| | | flushWeekAndDay(); |
| | | dialog.setVisible(true); |
| | | } |
| | | |
| | | private Calendar getCalendar() { |
| | | Calendar result = Calendar.getInstance(); |
| | | result.setTime(getDate()); |
| | | return result; |
| | | } |
| | | |
| | | private int getSelectedYear() { |
| | | return ((Integer) yearSpin.getValue()).intValue(); |
| | | } |
| | | |
| | | private int getSelectedMonth() { |
| | | return ((Integer) monthSpin.getValue()).intValue(); |
| | | } |
| | | |
| | | private int getSelectedHour() { |
| | | return ((Integer) hourSpin.getValue()).intValue(); |
| | | } |
| | | |
| | | private int getSelectedMinite() { |
| | | return ((Integer) minuteSpin.getValue()).intValue(); |
| | | } |
| | | |
| | | private int getSelectedSecond() { |
| | | return ((Integer) secondSpin.getValue()).intValue(); |
| | | } |
| | | |
| | | private void dayColorUpdate(boolean isOldDay) { |
| | | Calendar c = getCalendar(); |
| | | int day = c.get(Calendar.DAY_OF_MONTH); |
| | | c.set(Calendar.DAY_OF_MONTH, 1); |
| | | int actionCommandId = day - 2 + c.get(Calendar.DAY_OF_WEEK); |
| | | int i = actionCommandId / 7; |
| | | int j = actionCommandId % 7; |
| | | if (isOldDay) { |
| | | daysLabels[i][j].setForeground(dateFontColor); |
| | | } else { |
| | | daysLabels[i][j].setForeground(todayBackColor); |
| | | } |
| | | } |
| | | |
| | | private void flushWeekAndDay() { |
| | | Calendar c = getCalendar(); |
| | | c.set(Calendar.DAY_OF_MONTH, 1); |
| | | int maxDayNo = c.getActualMaximum(Calendar.DAY_OF_MONTH); |
| | | int dayNo = 2 - c.get(Calendar.DAY_OF_WEEK); |
| | | for (int i = 0; i < 6; i++) { |
| | | for (int j = 0; j < 7; j++) { |
| | | String s = ""; |
| | | if (dayNo >= 1 && dayNo <= maxDayNo) { |
| | | s = String.valueOf(dayNo); |
| | | } |
| | | daysLabels[i][j].setText(s); |
| | | dayNo++; |
| | | } |
| | | } |
| | | |
| | | // 打开日历时,根据按钮的时间,设置日历的时间 |
| | | String[] date1 = getText().split(" ")[0].split("-"); |
| | | |
| | | yearSpin.setValue(new Integer(date1[0])); |
| | | monthSpin.setValue(new Integer(date1[1])); |
| | | daySpin.setValue(new Integer(date1[2])); |
| | | |
| | | // 重置日历天的数字颜色 |
| | | for(int i = 0; i < 6; i++) { |
| | | for(int j = 0; j < 7; j++) { |
| | | if(!daysLabels[i][j].getText().equals("")) { |
| | | daysLabels[i][j].setForeground(Color.BLACK); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 重置日历星期六、星期日的数字颜色 |
| | | for(int i = 0; i < 6; i++) { |
| | | if(!daysLabels[i][0].getText().equals("")) { |
| | | daysLabels[i][0].setForeground(weekendFontColor); |
| | | } |
| | | if(!daysLabels[i][6].getText().equals("")) { |
| | | daysLabels[i][6].setForeground(weekendFontColor); |
| | | } |
| | | } |
| | | |
| | | // 设置当天的数字颜色 |
| | | for(int i = 0; i < 6; i++) { |
| | | for(int j = 0; j < 7; j++) { |
| | | if(daysLabels[i][j].getText().equals(date1[2])) { |
| | | daysLabels[i][j].setForeground(todayBackColor); |
| | | } |
| | | } |
| | | } |
| | | |
| | | dayColorUpdate(false); |
| | | } |
| | | |
| | | /** |
| | | * 选择日期时的响应事件 |
| | | */ |
| | | @Override |
| | | public void stateChanged(ChangeEvent e) { |
| | | JSpinner source = (JSpinner) e.getSource(); |
| | | Calendar c = getCalendar(); |
| | | if (source.getName().equals("Hour")) { |
| | | c.set(Calendar.HOUR_OF_DAY, getSelectedHour()); |
| | | setDate(c.getTime()); |
| | | return; |
| | | } |
| | | if (source.getName().equals("Minute")) { |
| | | c.set(Calendar.MINUTE, getSelectedMinite()); |
| | | setDate(c.getTime()); |
| | | return; |
| | | } |
| | | if (source.getName().equals("Second")) { |
| | | c.set(Calendar.SECOND, getSelectedSecond()); |
| | | setDate(c.getTime()); |
| | | return; |
| | | } |
| | | |
| | | dayColorUpdate(true); |
| | | |
| | | if (source.getName().equals("Year")) { |
| | | c.set(Calendar.YEAR, getSelectedYear()); |
| | | } else if (source.getName().equals("Month")) { |
| | | c.set(Calendar.MONTH, getSelectedMonth() - 1); |
| | | } |
| | | setDate(c.getTime()); |
| | | flushWeekAndDay(); |
| | | } |
| | | |
| | | /** |
| | | * 选择日期时的响应事件 |
| | | */ |
| | | @Override |
| | | public void mouseClicked(MouseEvent e) { |
| | | JLabel source = (JLabel) e.getSource(); |
| | | if (source.getText().length() == 0) { |
| | | return; |
| | | } |
| | | dayColorUpdate(true); |
| | | source.setForeground(todayBackColor); |
| | | int newDay = Integer.parseInt(source.getText()); |
| | | Calendar c = getCalendar(); |
| | | c.set(Calendar.DAY_OF_MONTH, newDay); |
| | | setDate(c.getTime()); |
| | | //把daySpin中的值也变了 |
| | | daySpin.setValue(Integer.valueOf(newDay)); |
| | | } |
| | | |
| | | @Override |
| | | public void mouseEntered(MouseEvent arg0) { |
| | | // TODO Auto-generated method stub |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void mouseExited(MouseEvent arg0) { |
| | | // TODO Auto-generated method stub |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void mousePressed(MouseEvent arg0) { |
| | | // TODO Auto-generated method stub |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void mouseReleased(MouseEvent arg0) { |
| | | // TODO Auto-generated method stub |
| | | |
| | | } |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.common; |
| | | |
| | | public interface DeviceManagerListener { |
| | | void onDeviceManager(String deviceId, String username, String password); |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.common; |
| | | |
| | | import com.netsdk.lib.LastError; |
| | | import com.netsdk.lib.NetSDKLib; |
| | | |
| | | /** |
| | | * 登录设备设备错误状态 |
| | | */ |
| | | public class ErrorCode { |
| | | |
| | | /** |
| | | * 登录设备设备错误状态中英文 |
| | | * @param err 接口CLIENT_GetLastError返回, error code: (0x80000000|" + (LoginModule.netsdk.CLIENT_GetLastError() & 0x7fffffff) +") |
| | | * @return |
| | | */ |
| | | public static String getErrorCode(int err) { |
| | | String msg = ""; |
| | | switch(err) { |
| | | case LastError.NET_NOERROR: // 0 没有错误 |
| | | msg = Res.string().getBundle().getString("NET_ERROR"); |
| | | break; |
| | | case LastError.NET_ERROR: // -1 未知错误 |
| | | msg = Res.string().getBundle().getString("NET_ERROR"); |
| | | break; |
| | | case LastError.NET_SYSTEM_ERROR: // (0x80000000|1) Windows系统出错 |
| | | msg = Res.string().getBundle().getString("NET_SYSTEM_ERROR"); |
| | | break; |
| | | case LastError.NET_NETWORK_ERROR: // (0x80000000|2) 网络错误,可能是因为网络超时 |
| | | msg = Res.string().getBundle().getString("NET_NETWORK_ERROR"); |
| | | break; |
| | | case LastError.NET_DEV_VER_NOMATCH: // (0x80000000|3) 设备协议不匹配 |
| | | msg = Res.string().getBundle().getString("NET_DEV_VER_NOMATCH"); |
| | | break; |
| | | case LastError.NET_INVALID_HANDLE: // (0x80000000|4) 句柄无效 |
| | | msg = Res.string().getBundle().getString("NET_INVALID_HANDLE"); |
| | | break; |
| | | case LastError.NET_OPEN_CHANNEL_ERROR: // (0x80000000|5) 打开通道失败 |
| | | msg = Res.string().getBundle().getString("NET_OPEN_CHANNEL_ERROR"); |
| | | break; |
| | | case LastError.NET_CLOSE_CHANNEL_ERROR: // (0x80000000|6) 关闭通道失败 |
| | | msg = Res.string().getBundle().getString("NET_CLOSE_CHANNEL_ERROR"); |
| | | break; |
| | | case LastError.NET_ILLEGAL_PARAM: // (0x80000000|7) 用户参数不合法 |
| | | msg = Res.string().getBundle().getString("NET_ILLEGAL_PARAM"); |
| | | break; |
| | | case LastError.NET_SDK_INIT_ERROR: // (0x80000000|8) SDK初始化出错 |
| | | msg = Res.string().getBundle().getString("NET_SDK_INIT_ERROR"); |
| | | break; |
| | | case LastError.NET_SDK_UNINIT_ERROR: // (0x80000000|9) SDK清理出错 |
| | | msg = Res.string().getBundle().getString("NET_SDK_UNINIT_ERROR"); |
| | | break; |
| | | case LastError.NET_RENDER_OPEN_ERROR: // (0x80000000|10) 申请render资源出错 |
| | | msg = Res.string().getBundle().getString("NET_RENDER_OPEN_ERROR"); |
| | | break; |
| | | case LastError.NET_DEC_OPEN_ERROR: // (0x80000000|11) 打开解码库出错 |
| | | msg = Res.string().getBundle().getString("NET_DEC_OPEN_ERROR"); |
| | | break; |
| | | case LastError.NET_DEC_CLOSE_ERROR: // (0x80000000|12) 关闭解码库出错 |
| | | msg = Res.string().getBundle().getString("NET_DEC_CLOSE_ERROR"); |
| | | break; |
| | | case LastError.NET_MULTIPLAY_NOCHANNEL: // (0x80000000|13) 多画面预览中检测到通道数为0 |
| | | msg = Res.string().getBundle().getString("NET_MULTIPLAY_NOCHANNEL"); |
| | | break; |
| | | case LastError.NET_TALK_INIT_ERROR: // (0x80000000|14) 录音库初始化失败 |
| | | msg = Res.string().getBundle().getString("NET_TALK_INIT_ERROR"); |
| | | break; |
| | | case LastError.NET_TALK_NOT_INIT: // (0x80000000|15) 录音库未经初始化 |
| | | msg = Res.string().getBundle().getString("NET_TALK_NOT_INIT"); |
| | | break; |
| | | case LastError.NET_TALK_SENDDATA_ERROR: // (0x80000000|16) 发送音频数据出错 |
| | | msg = Res.string().getBundle().getString("NET_TALK_SENDDATA_ERROR"); |
| | | break; |
| | | case LastError.NET_REAL_ALREADY_SAVING: // (0x80000000|17) 实时数据已经处于保存状态 |
| | | msg = Res.string().getBundle().getString("NET_REAL_ALREADY_SAVING"); |
| | | break; |
| | | case LastError.NET_NOT_SAVING: // (0x80000000|18) 未保存实时数据 |
| | | msg = Res.string().getBundle().getString("NET_NOT_SAVING"); |
| | | break; |
| | | case LastError.NET_OPEN_FILE_ERROR: // (0x80000000|19) 打开文件出错 |
| | | msg = Res.string().getBundle().getString("NET_OPEN_FILE_ERROR"); |
| | | break; |
| | | case LastError.NET_PTZ_SET_TIMER_ERROR: // (0x80000000|20) 启动云台控制定时器失败 |
| | | msg = Res.string().getBundle().getString("NET_PTZ_SET_TIMER_ERROR"); |
| | | break; |
| | | case LastError.NET_RETURN_DATA_ERROR: // (0x80000000|21) 对返回数据的校验出错 |
| | | msg = Res.string().getBundle().getString("NET_RETURN_DATA_ERROR"); |
| | | break; |
| | | case LastError.NET_INSUFFICIENT_BUFFER: // (0x80000000|22) 没有足够的缓存 |
| | | msg = Res.string().getBundle().getString("NET_INSUFFICIENT_BUFFER"); |
| | | break; |
| | | case LastError.NET_NOT_SUPPORTED: // (0x80000000|23) 当前SDK未支持该功能 |
| | | msg = Res.string().getBundle().getString("NET_NOT_SUPPORTED"); |
| | | break; |
| | | case LastError.NET_NO_RECORD_FOUND: // (0x80000000|24) 查询不到录像 |
| | | msg = Res.string().getBundle().getString("NET_NO_RECORD_FOUND"); |
| | | break; |
| | | case LastError.NET_NOT_AUTHORIZED: // (0x80000000|25) 无操作权限 |
| | | msg = Res.string().getBundle().getString("NET_NOT_AUTHORIZED"); |
| | | break; |
| | | case LastError.NET_NOT_NOW: // (0x80000000|26) 暂时无法执行 |
| | | msg = Res.string().getBundle().getString("NET_NOT_NOW"); |
| | | break; |
| | | case LastError.NET_NO_TALK_CHANNEL: // (0x80000000|27) 未发现对讲通道 |
| | | msg = Res.string().getBundle().getString("NET_NO_TALK_CHANNEL"); |
| | | break; |
| | | case LastError.NET_NO_AUDIO: // (0x80000000|28) 未发现音频 |
| | | msg = Res.string().getBundle().getString("NET_NO_AUDIO"); |
| | | break; |
| | | case LastError.NET_NO_INIT: // (0x80000000|29) 网络SDK未经初始化 |
| | | msg = Res.string().getBundle().getString("NET_NO_INIT"); |
| | | break; |
| | | case LastError.NET_DOWNLOAD_END: // (0x80000000|30) 下载已结束 |
| | | msg = Res.string().getBundle().getString("NET_DOWNLOAD_END"); |
| | | break; |
| | | case LastError.NET_EMPTY_LIST: // (0x80000000|31) 查询结果为空 |
| | | msg = Res.string().getBundle().getString("NET_EMPTY_LIST"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_SYSATTR: // (0x80000000|32) 获取系统属性配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_SYSATTR"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_SERIAL: // (0x80000000|33) 获取序列号失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_SERIAL"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_GENERAL: // (0x80000000|34) 获取常规属性失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_GENERAL"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_DSPCAP: // (0x80000000|35) 获取DSP能力描述失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_DSPCAP"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_NETCFG: // (0x80000000|36) 获取网络配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_NETCFG"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_CHANNAME: // (0x80000000|37) 获取通道名称失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_CHANNAME"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_VIDEO: // (0x80000000|38) 获取视频属性失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_VIDEO"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_RECORD: // (0x80000000|39) 获取录象配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_RECORD"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_PRONAME: // (0x80000000|40) 获取解码器协议名称失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_PRONAME"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_FUNCNAME: // (0x80000000|41) 获取232串口功能名称失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_FUNCNAME"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_485DECODER: // (0x80000000|42) 获取解码器属性失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_485DECODER"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_232COM: // (0x80000000|43) 获取232串口配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_232COM"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_ALARMIN: // (0x80000000|44) 获取外部报警输入配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_ALARMIN"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_ALARMDET: // (0x80000000|45) 获取动态检测报警失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_ALARMDET"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_SYSTIME: // (0x80000000|46) 获取设备时间失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_SYSTIME"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_PREVIEW: // (0x80000000|47) 获取预览参数失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_PREVIEW"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_AUTOMT: // (0x80000000|48) 获取自动维护配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_AUTOMT"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_VIDEOMTRX: // (0x80000000|49) 获取视频矩阵配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_VIDEOMTRX"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_COVER: // (0x80000000|50) 获取区域遮挡配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_COVER"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_WATERMAKE: // (0x80000000|51) 获取图象水印配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_WATERMAKE"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_MULTICAST: // (0x80000000|52) 获取配置失败位置:组播端口按通道配置 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_MULTICAST"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_GENERAL: // (0x80000000|55) 修改常规属性失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_GENERAL"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_NETCFG: // (0x80000000|56) 改网络配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_NETCFG"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_CHANNAME: // (0x80000000|57) 修改通道名称失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_CHANNAME"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_VIDEO: // (0x80000000|58) 修改视频属性失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_VIDEO"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_RECORD: // (0x80000000|59) 修改录象配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_RECORD"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_485DECODER: // (0x80000000|60) 修改解码器属性失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_485DECODER"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_232COM: // (0x80000000|61) 修改232串口配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_232COM"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_ALARMIN: // (0x80000000|62) 修改外部输入报警配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_ALARMIN"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_ALARMDET: // (0x80000000|63) 修改动态检测报警配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_ALARMDET"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_SYSTIME: // (0x80000000|64) 修改设备时间失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_SYSTIME"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_PREVIEW: // (0x80000000|65) 修改预览参数失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_PREVIEW"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_AUTOMT: // (0x80000000|66) 修改自动维护配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_AUTOMT"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_VIDEOMTRX: // (0x80000000|67) 修改视频矩阵配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_VIDEOMTRX"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_COVER: // (0x80000000|68) 修改区域遮挡配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_COVER"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_WATERMAKE: // (0x80000000|69) 修改图象水印配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_WATERMAKE"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_WLAN: // (0x80000000|70) 修改无线网络信息失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_WLAN"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_WLANDEV: // (0x80000000|71) 选择无线网络设备失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_WLANDEV"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_REGISTER: // (0x80000000|72) 修改主动注册参数配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_REGISTER"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_CAMERA: // (0x80000000|73) 修改摄像头属性配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_CAMERA"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_INFRARED: // (0x80000000|74) 修改红外报警配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_INFRARED"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_SOUNDALARM: // (0x80000000|75) 修改音频报警配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_SOUNDALARM"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_STORAGE: // (0x80000000|76) 修改存储位置配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_STORAGE"); |
| | | break; |
| | | case LastError.NET_AUDIOENCODE_NOTINIT: // (0x80000000|77) 音频编码接口没有成功初始化 |
| | | msg = Res.string().getBundle().getString("NET_AUDIOENCODE_NOTINIT"); |
| | | break; |
| | | case LastError.NET_DATA_TOOLONGH: // (0x80000000|78) 数据过长 |
| | | msg = Res.string().getBundle().getString("NET_DATA_TOOLONGH"); |
| | | break; |
| | | case LastError.NET_UNSUPPORTED: // (0x80000000|79) 备不支持该操作 |
| | | msg = Res.string().getBundle().getString("NET_UNSUPPORTED"); |
| | | break; |
| | | case LastError.NET_DEVICE_BUSY: // (0x80000000|80) 设备资源不足 |
| | | msg = Res.string().getBundle().getString("NET_DEVICE_BUSY"); |
| | | break; |
| | | case LastError.NET_SERVER_STARTED: // (0x80000000|81) 服务器已经启动 |
| | | msg = Res.string().getBundle().getString("NET_SERVER_STARTED"); |
| | | break; |
| | | case LastError.NET_SERVER_STOPPED: // (0x80000000|82) 服务器尚未成功启动 |
| | | msg = Res.string().getBundle().getString("NET_SERVER_STOPPED"); |
| | | break; |
| | | case LastError.NET_LISTER_INCORRECT_SERIAL: // (0x80000000|83) 输入序列号有误 |
| | | msg = Res.string().getBundle().getString("NET_LISTER_INCORRECT_SERIAL"); |
| | | break; |
| | | case LastError.NET_QUERY_DISKINFO_FAILED: // (0x80000000|84) 获取硬盘信息失败 |
| | | msg = Res.string().getBundle().getString("NET_QUERY_DISKINFO_FAILED"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_SESSION: // (0x80000000|85) 获取连接Session信息 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_SESSION"); |
| | | break; |
| | | case LastError.NET_USER_FLASEPWD_TRYTIME: // (0x80000000|86) 输入密码错误超过限制次数 |
| | | msg = Res.string().getBundle().getString("NET_USER_FLASEPWD_TRYTIME"); |
| | | break; |
| | | case LastError.NET_LOGIN_ERROR_PASSWORD: // (0x80000000|100) 密码不正确 |
| | | msg = Res.string().getBundle().getString("NET_LOGIN_ERROR_PASSWORD"); |
| | | break; |
| | | case LastError.NET_LOGIN_ERROR_USER: // (0x80000000|101) 帐户不存在 |
| | | msg = Res.string().getBundle().getString("NET_LOGIN_ERROR_USER"); |
| | | break; |
| | | case LastError.NET_LOGIN_ERROR_TIMEOUT: // (0x80000000|102) 等待登录返回超时 |
| | | msg = Res.string().getBundle().getString("NET_LOGIN_ERROR_TIMEOUT"); |
| | | break; |
| | | case LastError.NET_LOGIN_ERROR_RELOGGIN: // (0x80000000|103) 帐号已登录 |
| | | msg = Res.string().getBundle().getString("NET_LOGIN_ERROR_RELOGGIN"); |
| | | break; |
| | | case LastError.NET_LOGIN_ERROR_LOCKED: // (0x80000000|104) 帐号已被锁定 |
| | | msg = Res.string().getBundle().getString("NET_LOGIN_ERROR_LOCKED"); |
| | | break; |
| | | case LastError.NET_LOGIN_ERROR_BLACKLIST: // (0x80000000|105) 帐号已被列为禁止名单 |
| | | msg = Res.string().getBundle().getString("NET_LOGIN_ERROR_BLACKLIST"); |
| | | break; |
| | | case LastError.NET_LOGIN_ERROR_BUSY: // (0x80000000|106) 资源不足,系统忙 |
| | | msg = Res.string().getBundle().getString("NET_LOGIN_ERROR_BUSY"); |
| | | break; |
| | | case LastError.NET_LOGIN_ERROR_CONNECT: // (0x80000000|107) 登录设备超时,请检查网络并重试 |
| | | msg = Res.string().getBundle().getString("NET_LOGIN_ERROR_CONNECT"); |
| | | break; |
| | | case LastError.NET_LOGIN_ERROR_NETWORK: // (0x80000000|108) 网络连接失败 |
| | | msg = Res.string().getBundle().getString("NET_LOGIN_ERROR_NETWORK"); |
| | | break; |
| | | case LastError.NET_LOGIN_ERROR_SUBCONNECT: // (0x80000000|109) 登录设备成功,但无法创建视频通道,请检查网 |
| | | msg = Res.string().getBundle().getString("NET_LOGIN_ERROR_SUBCONNECT"); |
| | | break; |
| | | case LastError.NET_LOGIN_ERROR_MAXCONNECT: // (0x80000000|110) 超过最大连接数 |
| | | msg = Res.string().getBundle().getString("NET_LOGIN_ERROR_MAXCONNECT"); |
| | | break; |
| | | case LastError.NET_LOGIN_ERROR_PROTOCOL3_ONLY: // (0x80000000|111) 只支持3代协议 |
| | | msg = Res.string().getBundle().getString("NET_LOGIN_ERROR_PROTOCOL3_ONLY"); |
| | | break; |
| | | case LastError.NET_LOGIN_ERROR_UKEY_LOST: // (0x80000000|112) 插入U盾或U盾信息错误 |
| | | msg = Res.string().getBundle().getString("NET_LOGIN_ERROR_UKEY_LOST"); |
| | | break; |
| | | case LastError.NET_LOGIN_ERROR_NO_AUTHORIZED: // (0x80000000|113) 客户端IP地址没有登录权限 |
| | | msg = Res.string().getBundle().getString("NET_LOGIN_ERROR_NO_AUTHORIZED"); |
| | | break; |
| | | case LastError.NET_LOGIN_ERROR_USER_OR_PASSOWRD: // (0x80000000|117) 账号或密码错误 |
| | | msg = Res.string().getBundle().getString("NET_LOGIN_ERROR_USER_OR_PASSOWRD"); |
| | | break; |
| | | case LastError.NET_LOGIN_ERROR_DEVICE_NOT_INIT: // (0x80000000|118) 设备尚未初始化,不能登录,请先初始化设备 |
| | | msg = Res.string().getBundle().getString("NET_LOGIN_ERROR_DEVICE_NOT_INIT"); |
| | | break; |
| | | case LastError.NET_RENDER_SOUND_ON_ERROR: // (0x80000000|120) Render库打开音频出错 |
| | | msg = Res.string().getBundle().getString("NET_RENDER_SOUND_ON_ERROR"); |
| | | break; |
| | | case LastError.NET_RENDER_SOUND_OFF_ERROR: // (0x80000000|121) Render库关闭音频出错 |
| | | msg = Res.string().getBundle().getString("NET_RENDER_SOUND_OFF_ERROR"); |
| | | break; |
| | | case LastError.NET_RENDER_SET_VOLUME_ERROR: // (0x80000000|122) Render库控制音量出错 |
| | | msg = Res.string().getBundle().getString("NET_RENDER_SET_VOLUME_ERROR"); |
| | | break; |
| | | case LastError.NET_RENDER_ADJUST_ERROR: // (0x80000000|123) Render库设置画面参数出错 |
| | | msg = Res.string().getBundle().getString("NET_RENDER_ADJUST_ERROR"); |
| | | break; |
| | | case LastError.NET_RENDER_PAUSE_ERROR: // (0x80000000|124) Render库暂停播放出错 |
| | | msg = Res.string().getBundle().getString("NET_RENDER_PAUSE_ERROR"); |
| | | break; |
| | | case LastError.NET_RENDER_SNAP_ERROR: // (0x80000000|125) Render库抓图出错 |
| | | msg = Res.string().getBundle().getString("NET_RENDER_SNAP_ERROR"); |
| | | break; |
| | | case LastError.NET_RENDER_STEP_ERROR: // (0x80000000|126) Render库步进出错 |
| | | msg = Res.string().getBundle().getString("NET_RENDER_STEP_ERROR"); |
| | | break; |
| | | case LastError.NET_RENDER_FRAMERATE_ERROR: // (0x80000000|127) Render库设置帧率出错 |
| | | msg = Res.string().getBundle().getString("NET_RENDER_FRAMERATE_ERROR"); |
| | | break; |
| | | case LastError.NET_RENDER_DISPLAYREGION_ERROR: // (0x80000000|128) Render库设置显示区域出错 |
| | | msg = Res.string().getBundle().getString("NET_RENDER_DISPLAYREGION_ERROR"); |
| | | break; |
| | | case LastError.NET_RENDER_GETOSDTIME_ERROR: // (0x80000000|129) Render库获取当前播放时间出错 |
| | | msg = Res.string().getBundle().getString("NET_RENDER_GETOSDTIME_ERROR"); |
| | | break; |
| | | case LastError.NET_GROUP_EXIST: // (0x80000000|140) 组名已存在 |
| | | msg = Res.string().getBundle().getString("NET_GROUP_EXIST"); |
| | | break; |
| | | case LastError.NET_GROUP_NOEXIST: // (0x80000000|141) 组名不存在 |
| | | msg = Res.string().getBundle().getString("NET_GROUP_NOEXIST"); |
| | | break; |
| | | case LastError.NET_GROUP_RIGHTOVER: // (0x80000000|142) 组的权限超出权限列表范围 |
| | | msg = Res.string().getBundle().getString("NET_GROUP_RIGHTOVER"); |
| | | break; |
| | | case LastError.NET_GROUP_HAVEUSER: // (0x80000000|143) 组下有用户,不能删除 |
| | | msg = Res.string().getBundle().getString("NET_GROUP_HAVEUSER"); |
| | | break; |
| | | case LastError.NET_GROUP_RIGHTUSE: // (0x80000000|144) 组的某个权限被用户使用,不能出除 |
| | | msg = Res.string().getBundle().getString("NET_GROUP_RIGHTUSE"); |
| | | break; |
| | | case LastError.NET_GROUP_SAMENAME: // (0x80000000|145) 新组名同已有组名重复 |
| | | msg = Res.string().getBundle().getString("NET_GROUP_SAMENAME"); |
| | | break; |
| | | case LastError.NET_USER_EXIST: // (0x80000000|146) 用户已存在 |
| | | msg = Res.string().getBundle().getString("NET_USER_EXIST"); |
| | | break; |
| | | case LastError.NET_USER_NOEXIST: // (0x80000000|147) 用户不存在 |
| | | msg = Res.string().getBundle().getString("NET_USER_NOEXIST"); |
| | | break; |
| | | case LastError.NET_USER_RIGHTOVER: // (0x80000000|148) 用户权限超出组权限 |
| | | msg = Res.string().getBundle().getString("NET_USER_RIGHTOVER"); |
| | | break; |
| | | case LastError.NET_USER_PWD: // (0x80000000|149) 保留帐号,不容许修改密码 |
| | | msg = Res.string().getBundle().getString("NET_USER_PWD"); |
| | | break; |
| | | case LastError.NET_USER_FLASEPWD: // (0x80000000|150) 密码不正确 |
| | | msg = Res.string().getBundle().getString("NET_USER_FLASEPWD"); |
| | | break; |
| | | case LastError.NET_USER_NOMATCHING: // (0x80000000|151) 密码不匹配 |
| | | msg = Res.string().getBundle().getString("NET_USER_NOMATCHING"); |
| | | break; |
| | | case LastError.NET_USER_INUSE: // (0x80000000|152) 账号正在使用中 |
| | | msg = Res.string().getBundle().getString("NET_USER_INUSE"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_ETHERNET: // (0x80000000|300) 获取网卡配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_ETHERNET"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_WLAN: // (0x80000000|301) 获取无线网络信息失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_WLAN"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_WLANDEV: // (0x80000000|302) 获取无线网络设备失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_WLANDEV"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_REGISTER: // (0x80000000|303) 获取主动注册参数失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_REGISTER"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_CAMERA: // (0x80000000|304) 获取摄像头属性失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_CAMERA"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_INFRARED: // (0x80000000|305) 获取红外报警配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_INFRARED"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_SOUNDALARM: // (0x80000000|306) 获取音频报警配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_SOUNDALARM"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_STORAGE: // (0x80000000|307) 获取存储位置配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_STORAGE"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_MAIL: // (0x80000000|308) 获取邮件配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_MAIL"); |
| | | break; |
| | | case LastError.NET_CONFIG_DEVBUSY: // (0x80000000|309) 暂时无法设置 |
| | | msg = Res.string().getBundle().getString("NET_CONFIG_DEVBUSY"); |
| | | break; |
| | | case LastError.NET_CONFIG_DATAILLEGAL: // (0x80000000|310) 配置数据不合法 |
| | | msg = Res.string().getBundle().getString("NET_CONFIG_DATAILLEGAL"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_DST: // (0x80000000|311) 获取夏令时配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_DST"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_DST: // (0x80000000|312) 设置夏令时配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_DST"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_VIDEO_OSD: // (0x80000000|313) 获取视频OSD叠加配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_VIDEO_OSD"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_VIDEO_OSD: // (0x80000000|314) 设置视频OSD叠加配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_VIDEO_OSD"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_GPRSCDMA: // (0x80000000|315) 获取CDMA\GPRS网络配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_GPRSCDMA"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_GPRSCDMA: // (0x80000000|316) 设置CDMA\GPRS网络配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_GPRSCDMA"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_IPFILTER: // (0x80000000|317) 获取IP过滤配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_IPFILTER"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_IPFILTER: // (0x80000000|318) 设置IP过滤配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_IPFILTER"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_TALKENCODE: // (0x80000000|319) 获取语音对讲编码配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_TALKENCODE"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_TALKENCODE: // (0x80000000|320) 设置语音对讲编码配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_TALKENCODE"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_RECORDLEN: // (0x80000000|321) 获取录像打包长度配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_RECORDLEN"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_RECORDLEN: // (0x80000000|322) 设置录像打包长度配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_RECORDLEN"); |
| | | break; |
| | | case LastError.NET_DONT_SUPPORT_SUBAREA: // (0x80000000|323) 不支持网络硬盘分区 |
| | | msg = Res.string().getBundle().getString("NET_DONT_SUPPORT_SUBAREA"); |
| | | break; |
| | | case LastError.NET_ERROR_GET_AUTOREGSERVER: // (0x80000000|324) 获取设备上主动注册服务器信息失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GET_AUTOREGSERVER"); |
| | | break; |
| | | case LastError.NET_ERROR_CONTROL_AUTOREGISTER: // (0x80000000|325) 主动注册重定向注册错误 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_CONTROL_AUTOREGISTER"); |
| | | break; |
| | | case LastError.NET_ERROR_DISCONNECT_AUTOREGISTER: // (0x80000000|326) 断开主动注册服务器错误 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_DISCONNECT_AUTOREGISTER"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_MMS: // (0x80000000|327) 获取mms配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_MMS"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_MMS: // (0x80000000|328) 设置mms配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_MMS"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_SMSACTIVATION: // (0x80000000|329) 获取短信激活无线连接配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_SMSACTIVATION"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_SMSACTIVATION: // (0x80000000|330) 设置短信激活无线连接配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_SMSACTIVATION"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_DIALINACTIVATION: // (0x80000000|331) 获取拨号激活无线连接配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_DIALINACTIVATION"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_DIALINACTIVATION: // (0x80000000|332) 设置拨号激活无线连接配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_DIALINACTIVATION"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_VIDEOOUT: // (0x80000000|333) 查询视频输出参数配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_VIDEOOUT"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_VIDEOOUT: // (0x80000000|334) 设置视频输出参数配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_VIDEOOUT"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_OSDENABLE: // (0x80000000|335) 获取osd叠加使能配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_OSDENABLE"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_OSDENABLE: // (0x80000000|336) 设置osd叠加使能配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_OSDENABLE"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_ENCODERINFO: // (0x80000000|337) 设置数字通道前端编码接入配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_ENCODERINFO"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_TVADJUST: // (0x80000000|338) 获取TV调节配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_TVADJUST"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_TVADJUST: // (0x80000000|339) 设置TV调节配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_TVADJUST"); |
| | | break; |
| | | case LastError.NET_ERROR_CONNECT_FAILED: // (0x80000000|340) 请求建立连接失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_CONNECT_FAILED"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_BURNFILE: // (0x80000000|341) 请求刻录文件上传失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_BURNFILE"); |
| | | break; |
| | | case LastError.NET_ERROR_SNIFFER_GETCFG: // (0x80000000|342) 获取抓包配置信息失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SNIFFER_GETCFG"); |
| | | break; |
| | | case LastError.NET_ERROR_SNIFFER_SETCFG: // (0x80000000|343) 设置抓包配置信息失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SNIFFER_SETCFG"); |
| | | break; |
| | | case LastError.NET_ERROR_DOWNLOADRATE_GETCFG: // (0x80000000|344) 查询下载限制信息失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_DOWNLOADRATE_GETCFG"); |
| | | break; |
| | | case LastError.NET_ERROR_DOWNLOADRATE_SETCFG: // (0x80000000|345) 设置下载限制信息失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_DOWNLOADRATE_SETCFG"); |
| | | break; |
| | | case LastError.NET_ERROR_SEARCH_TRANSCOM: // (0x80000000|346) 查询串口参数失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SEARCH_TRANSCOM"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_POINT: // (0x80000000|347) 获取预制点信息错误 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_POINT"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_POINT: // (0x80000000|348) 设置预制点信息错误 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_POINT"); |
| | | break; |
| | | case LastError.NET_SDK_LOGOUT_ERROR: // (0x80000000|349) SDK没有正常登出设备 |
| | | msg = Res.string().getBundle().getString("NET_SDK_LOGOUT_ERROR"); |
| | | break; |
| | | case LastError.NET_ERROR_GET_VEHICLE_CFG: // (0x80000000|350) 获取车载配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GET_VEHICLE_CFG"); |
| | | break; |
| | | case LastError.NET_ERROR_SET_VEHICLE_CFG: // (0x80000000|351) 设置车载配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SET_VEHICLE_CFG"); |
| | | break; |
| | | case LastError.NET_ERROR_GET_ATM_OVERLAY_CFG: // (0x80000000|352) 获取atm叠加配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GET_ATM_OVERLAY_CFG"); |
| | | break; |
| | | case LastError.NET_ERROR_SET_ATM_OVERLAY_CFG: // (0x80000000|353) 设置atm叠加配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SET_ATM_OVERLAY_CFG"); |
| | | break; |
| | | case LastError.NET_ERROR_GET_ATM_OVERLAY_ABILITY: // (0x80000000|354) 获取atm叠加能力失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GET_ATM_OVERLAY_ABILITY"); |
| | | break; |
| | | case LastError.NET_ERROR_GET_DECODER_TOUR_CFG: // (0x80000000|355) 获取解码器解码轮巡配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GET_DECODER_TOUR_CFG"); |
| | | break; |
| | | case LastError.NET_ERROR_SET_DECODER_TOUR_CFG: // (0x80000000|356) 设置解码器解码轮巡配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SET_DECODER_TOUR_CFG"); |
| | | break; |
| | | case LastError.NET_ERROR_CTRL_DECODER_TOUR: // (0x80000000|357) 控制解码器解码轮巡失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_CTRL_DECODER_TOUR"); |
| | | break; |
| | | case LastError.NET_GROUP_OVERSUPPORTNUM: // (0x80000000|358) 超出设备支持最大用户组数目 |
| | | msg = Res.string().getBundle().getString("NET_GROUP_OVERSUPPORTNUM"); |
| | | break; |
| | | case LastError.NET_USER_OVERSUPPORTNUM: // (0x80000000|359) 超出设备支持最大用户数目 |
| | | msg = Res.string().getBundle().getString("NET_USER_OVERSUPPORTNUM"); |
| | | break; |
| | | case LastError.NET_ERROR_GET_SIP_CFG: // (0x80000000|368) 获取SIP配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GET_SIP_CFG"); |
| | | break; |
| | | case LastError.NET_ERROR_SET_SIP_CFG: // (0x80000000|369) 设置SIP配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SET_SIP_CFG"); |
| | | break; |
| | | case LastError.NET_ERROR_GET_SIP_ABILITY: // (0x80000000|370) 获取SIP能力失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GET_SIP_ABILITY"); |
| | | break; |
| | | case LastError.NET_ERROR_GET_WIFI_AP_CFG: // (0x80000000|371) 获取WIFI ap配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GET_WIFI_AP_CFG"); |
| | | break; |
| | | case LastError.NET_ERROR_SET_WIFI_AP_CFG: // (0x80000000|372) 设置WIFI ap配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SET_WIFI_AP_CFG"); |
| | | break; |
| | | case LastError.NET_ERROR_GET_DECODE_POLICY: // (0x80000000|373) 获取解码策略配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GET_DECODE_POLICY"); |
| | | break; |
| | | case LastError.NET_ERROR_SET_DECODE_POLICY: // (0x80000000|374) 设置解码策略配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SET_DECODE_POLICY"); |
| | | break; |
| | | case LastError.NET_ERROR_TALK_REJECT: // (0x80000000|375) 拒绝对讲 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_TALK_REJECT"); |
| | | break; |
| | | case LastError.NET_ERROR_TALK_OPENED: // (0x80000000|376) 对讲被其他客户端打开 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_TALK_OPENED"); |
| | | break; |
| | | case LastError.NET_ERROR_TALK_RESOURCE_CONFLICIT: // (0x80000000|377) 资源冲突 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_TALK_RESOURCE_CONFLICIT"); |
| | | break; |
| | | case LastError.NET_ERROR_TALK_UNSUPPORTED_ENCODE: // (0x80000000|378) 不支持的语音编码格式 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_TALK_UNSUPPORTED_ENCODE"); |
| | | break; |
| | | case LastError.NET_ERROR_TALK_RIGHTLESS: // (0x80000000|379) 无权限 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_TALK_RIGHTLESS"); |
| | | break; |
| | | case LastError.NET_ERROR_TALK_FAILED: // (0x80000000|380) 请求对讲失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_TALK_FAILED"); |
| | | break; |
| | | case LastError.NET_ERROR_GET_MACHINE_CFG: // (0x80000000|381) 获取机器相关配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GET_MACHINE_CFG"); |
| | | break; |
| | | case LastError.NET_ERROR_SET_MACHINE_CFG: // (0x80000000|382) 设置机器相关配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SET_MACHINE_CFG"); |
| | | break; |
| | | case LastError.NET_ERROR_GET_DATA_FAILED: // (0x80000000|383) 设备无法获取当前请求数据 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GET_DATA_FAILED"); |
| | | break; |
| | | case LastError.NET_ERROR_MAC_VALIDATE_FAILED: // (0x80000000|384) MAC地址验证失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_MAC_VALIDATE_FAILED"); |
| | | break; |
| | | case LastError.NET_ERROR_GET_INSTANCE: // (0x80000000|385) 获取服务器实例失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GET_INSTANCE"); |
| | | break; |
| | | case LastError.NET_ERROR_JSON_REQUEST: // (0x80000000|386) 生成的json字符串错误 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_JSON_REQUEST"); |
| | | break; |
| | | case LastError.NET_ERROR_JSON_RESPONSE: // (0x80000000|387) 响应的json字符串错误 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_JSON_RESPONSE"); |
| | | break; |
| | | case LastError.NET_ERROR_VERSION_HIGHER: // (0x80000000|388) 协议版本低于当前使用的版本 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_VERSION_HIGHER"); |
| | | break; |
| | | case LastError.NET_SPARE_NO_CAPACITY: // (0x80000000|389) 热备操作失败, 容量不足 |
| | | msg = Res.string().getBundle().getString("NET_SPARE_NO_CAPACITY"); |
| | | break; |
| | | case LastError.NET_ERROR_SOURCE_IN_USE: // (0x80000000|390) 显示源被其他输出占用 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SOURCE_IN_USE"); |
| | | break; |
| | | case LastError.NET_ERROR_REAVE: // (0x80000000|391) 高级用户抢占低级用户资源 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_REAVE"); |
| | | break; |
| | | case LastError.NET_ERROR_NETFORBID: // (0x80000000|392) 禁止入网 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_NETFORBID"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_MACFILTER: // (0x80000000|393) 获取MAC过滤配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_MACFILTER"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_MACFILTER: // (0x80000000|394) 设置MAC过滤配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_MACFILTER"); |
| | | break; |
| | | case LastError.NET_ERROR_GETCFG_IPMACFILTER: // (0x80000000|395) 获取IP/MAC过滤配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GETCFG_IPMACFILTER"); |
| | | break; |
| | | case LastError.NET_ERROR_SETCFG_IPMACFILTER: // (0x80000000|396) 设置IP/MAC过滤配置失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SETCFG_IPMACFILTER"); |
| | | break; |
| | | case LastError.NET_ERROR_OPERATION_OVERTIME: // (0x80000000|397) 当前操作超时 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_OPERATION_OVERTIME"); |
| | | break; |
| | | case LastError.NET_ERROR_SENIOR_VALIDATE_FAILED: // (0x80000000|398) 高级校验失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SENIOR_VALIDATE_FAILED"); |
| | | break; |
| | | case LastError.NET_ERROR_DEVICE_ID_NOT_EXIST: // (0x80000000|399) 设备ID不存在 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_DEVICE_ID_NOT_EXIST"); |
| | | break; |
| | | case LastError.NET_ERROR_UNSUPPORTED: // (0x80000000|400) 不支持当前操作 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_UNSUPPORTED"); |
| | | break; |
| | | case LastError.NET_ERROR_PROXY_DLLLOAD: // (0x80000000|401) 代理库加载失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_PROXY_DLLLOAD"); |
| | | break; |
| | | case LastError.NET_ERROR_PROXY_ILLEGAL_PARAM: // (0x80000000|402) 代理用户参数不合法 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_PROXY_ILLEGAL_PARAM"); |
| | | break; |
| | | case LastError.NET_ERROR_PROXY_INVALID_HANDLE: // (0x80000000|403) 代理句柄无效 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_PROXY_INVALID_HANDLE"); |
| | | break; |
| | | case LastError.NET_ERROR_PROXY_LOGIN_DEVICE_ERROR: // (0x80000000|404) 代理登入前端设备失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_PROXY_LOGIN_DEVICE_ERROR"); |
| | | break; |
| | | case LastError.NET_ERROR_PROXY_START_SERVER_ERROR: // (0x80000000|405) 启动代理服务失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_PROXY_START_SERVER_ERROR"); |
| | | break; |
| | | case LastError.NET_ERROR_SPEAK_FAILED: // (0x80000000|406) 请求喊话失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SPEAK_FAILED"); |
| | | break; |
| | | case LastError.NET_ERROR_NOT_SUPPORT_F6: // (0x80000000|407) 设备不支持此F6接口调用 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_NOT_SUPPORT_F6"); |
| | | break; |
| | | case LastError.NET_ERROR_CD_UNREADY: // (0x80000000|408) 光盘未就绪 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_CD_UNREADY"); |
| | | break; |
| | | case LastError.NET_ERROR_DIR_NOT_EXIST: // (0x80000000|409) 目录不存在 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_DIR_NOT_EXIST"); |
| | | break; |
| | | case LastError.NET_ERROR_UNSUPPORTED_SPLIT_MODE: // (0x80000000|410) 设备不支持的分割模式 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_UNSUPPORTED_SPLIT_MODE"); |
| | | break; |
| | | case LastError.NET_ERROR_OPEN_WND_PARAM: // (0x80000000|411) 开窗参数不合法 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_OPEN_WND_PARAM"); |
| | | break; |
| | | case LastError.NET_ERROR_LIMITED_WND_COUNT: // (0x80000000|412) 开窗数量超过限制 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_LIMITED_WND_COUNT"); |
| | | break; |
| | | case LastError.NET_ERROR_UNMATCHED_REQUEST: // (0x80000000|413) 请求命令与当前模式不匹配 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_UNMATCHED_REQUEST"); |
| | | break; |
| | | case LastError.NET_RENDER_ENABLELARGEPICADJUSTMENT_ERROR: // (0x80000000|414) Render库启用高清图像内部调整策略出错 |
| | | msg = Res.string().getBundle().getString("NET_RENDER_ENABLELARGEPICADJUSTMENT_ERROR"); |
| | | break; |
| | | case LastError.NET_ERROR_UPGRADE_FAILED: // (0x80000000|415) 设备升级失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_UPGRADE_FAILED"); |
| | | break; |
| | | case LastError.NET_ERROR_NO_TARGET_DEVICE: // (0x80000000|416) 找不到目标设备 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_NO_TARGET_DEVICE"); |
| | | break; |
| | | case LastError.NET_ERROR_NO_VERIFY_DEVICE: // (0x80000000|417) 找不到验证设备 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_NO_VERIFY_DEVICE"); |
| | | break; |
| | | case LastError.NET_ERROR_CASCADE_RIGHTLESS: // (0x80000000|418) 无级联权限 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_CASCADE_RIGHTLESS"); |
| | | break; |
| | | case LastError.NET_ERROR_LOW_PRIORITY: // (0x80000000|419) 低优先级 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_LOW_PRIORITY"); |
| | | break; |
| | | case LastError.NET_ERROR_REMOTE_REQUEST_TIMEOUT: // (0x80000000|420) 远程设备请求超时 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_REMOTE_REQUEST_TIMEOUT"); |
| | | break; |
| | | case LastError.NET_ERROR_LIMITED_INPUT_SOURCE: // (0x80000000|421) 输入源超出最大路数限制 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_LIMITED_INPUT_SOURCE"); |
| | | break; |
| | | case LastError.NET_ERROR_SET_LOG_PRINT_INFO: // (0x80000000|422) 设置日志打印失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SET_LOG_PRINT_INFO"); |
| | | break; |
| | | case LastError.NET_ERROR_PARAM_DWSIZE_ERROR: // (0x80000000|423) 入参的dwsize字段出错 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_PARAM_DWSIZE_ERROR"); |
| | | break; |
| | | case LastError.NET_ERROR_LIMITED_MONITORWALL_COUNT: // (0x80000000|424) 电视墙数量超过上限 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_LIMITED_MONITORWALL_COUNT"); |
| | | break; |
| | | case LastError.NET_ERROR_PART_PROCESS_FAILED: // (0x80000000|425) 部分过程执行失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_PART_PROCESS_FAILED"); |
| | | break; |
| | | case LastError.NET_ERROR_TARGET_NOT_SUPPORT: // (0x80000000|426) 该功能不支持转发 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_TARGET_NOT_SUPPORT"); |
| | | break; |
| | | case LastError.NET_ERROR_VISITE_FILE: // (0x80000000|510) 访问文件失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_VISITE_FILE"); |
| | | break; |
| | | case LastError.NET_ERROR_DEVICE_STATUS_BUSY: // (0x80000000|511) 设备忙 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_DEVICE_STATUS_BUSY"); |
| | | break; |
| | | case LastError.NET_USER_PWD_NOT_AUTHORIZED: // (0x80000000|512)修改密码无权限 |
| | | msg = Res.string().getBundle().getString("NET_USER_PWD_NOT_AUTHORIZED"); |
| | | break; |
| | | case LastError.NET_USER_PWD_NOT_STRONG: // (0x80000000|513) 密码强度不够 |
| | | msg = Res.string().getBundle().getString("NET_USER_PWD_NOT_STRONG"); |
| | | break; |
| | | case LastError.NET_ERROR_NO_SUCH_CONFIG: // (0x80000000|514) 没有对应的配置 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_NO_SUCH_CONFIG"); |
| | | break; |
| | | case LastError.NET_ERROR_AUDIO_RECORD_FAILED: // (0x80000000|515) 录音失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_AUDIO_RECORD_FAILED"); |
| | | break; |
| | | case LastError.NET_ERROR_SEND_DATA_FAILED: // (0x80000000|516) 数据发送失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SEND_DATA_FAILED"); |
| | | break; |
| | | case LastError.NET_ERROR_OBSOLESCENT_INTERFACE: // (0x80000000|517) 废弃接口 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_OBSOLESCENT_INTERFACE"); |
| | | break; |
| | | case LastError.NET_ERROR_INSUFFICIENT_INTERAL_BUF: // (0x80000000|518) 内部缓冲不足 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_INSUFFICIENT_INTERAL_BUF"); |
| | | break; |
| | | case LastError.NET_ERROR_NEED_ENCRYPTION_PASSWORD: // (0x80000000|519) 修改设备ip时,需要校验密码 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_NEED_ENCRYPTION_PASSWORD"); |
| | | break; |
| | | case LastError.NET_ERROR_NOSUPPORT_RECORD: // (0x80000000|520) 设备不支持此记录集 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_NOSUPPORT_RECORD"); |
| | | break; |
| | | case LastError.NET_ERROR_SERIALIZE_ERROR: // (0x80000000|1010) 数据序列化错误 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SERIALIZE_ERROR"); |
| | | break; |
| | | case LastError.NET_ERROR_DESERIALIZE_ERROR: // (0x80000000|1011) 数据反序列化错误 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_DESERIALIZE_ERROR"); |
| | | break; |
| | | case LastError.NET_ERROR_LOWRATEWPAN_ID_EXISTED: // (0x80000000|1012) 该无线ID已存在 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_LOWRATEWPAN_ID_EXISTED"); |
| | | break; |
| | | case LastError.NET_ERROR_LOWRATEWPAN_ID_LIMIT: // (0x80000000|1013) 无线ID数量已超限 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_LOWRATEWPAN_ID_LIMIT"); |
| | | break; |
| | | case LastError.NET_ERROR_LOWRATEWPAN_ID_ABNORMAL: // (0x80000000|1014) 无线异常添加 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_LOWRATEWPAN_ID_ABNORMAL"); |
| | | break; |
| | | case LastError.NET_ERROR_ENCRYPT: // (0x80000000|1015) 加密数据失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_ENCRYPT"); |
| | | break; |
| | | case LastError.NET_ERROR_PWD_ILLEGAL: // (0x80000000|1016) 新密码不合规范 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_PWD_ILLEGAL"); |
| | | break; |
| | | case LastError.NET_ERROR_DEVICE_ALREADY_INIT: // (0x80000000|1017) 设备已经初始化 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_DEVICE_ALREADY_INIT"); |
| | | break; |
| | | case LastError.NET_ERROR_SECURITY_CODE: // (0x80000000|1018) 安全码错误 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SECURITY_CODE"); |
| | | break; |
| | | case LastError.NET_ERROR_SECURITY_CODE_TIMEOUT: // (0x80000000|1019) 安全码超出有效期 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_SECURITY_CODE_TIMEOUT"); |
| | | break; |
| | | case LastError.NET_ERROR_GET_PWD_SPECI: // (0x80000000|1020) 获取密码规范失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_GET_PWD_SPECI"); |
| | | break; |
| | | case LastError.NET_ERROR_NO_AUTHORITY_OF_OPERATION: // (0x80000000|1021) 无权限进行该操作 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_NO_AUTHORITY_OF_OPERATION"); |
| | | break; |
| | | case LastError.NET_ERROR_DECRYPT: // (0x80000000|1022) 解密数据失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_DECRYPT"); |
| | | break; |
| | | case LastError.NET_ERROR_2D_CODE: // (0x80000000|1023) 2D code校验失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_2D_CODE"); |
| | | break; |
| | | case LastError.NET_ERROR_INVALID_REQUEST: // (0x80000000|1024) 非法的RPC请求 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_INVALID_REQUEST"); |
| | | break; |
| | | case LastError.NET_ERROR_PWD_RESET_DISABLE: // (0x80000000|1025) 密码重置功能已关闭 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_PWD_RESET_DISABLE"); |
| | | break; |
| | | case LastError.NET_ERROR_PLAY_PRIVATE_DATA: // (0x80000000|1026) 显示私有数据,比如规则框等失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_PLAY_PRIVATE_DATA"); |
| | | break; |
| | | case LastError.NET_ERROR_ROBOT_OPERATE_FAILED: // (0x80000000|1027) 机器人操作失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_ROBOT_OPERATE_FAILED"); |
| | | break; |
| | | case LastError.NET_ERROR_PHOTOSIZE_EXCEEDSLIMIT: // (0x80000000|1028) 图片大小超限 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_PHOTOSIZE_EXCEEDSLIMIT"); |
| | | break; |
| | | case LastError.NET_ERROR_USERID_INVALID: // (0x80000000|1029) 用户ID不存在 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_USERID_INVALID"); |
| | | break; |
| | | case LastError.NET_ERROR_EXTRACTFEATURE_FAILED: // (0x80000000|1030) 照片特征值提取失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_EXTRACTFEATURE_FAILED"); |
| | | break; |
| | | case LastError.NET_ERROR_PHOTO_EXIST: // (0x80000000|1031) 照片已存在 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_PHOTO_EXIST"); |
| | | break; |
| | | case LastError.NET_ERROR_PHOTO_OVERFLOW: // (0x80000000|1032) 照片数量超过上限 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_PHOTO_OVERFLOW"); |
| | | break; |
| | | case LastError.NET_ERROR_CHANNEL_ALREADY_OPENED: // (0x80000000|1033) 通道已经打开 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_CHANNEL_ALREADY_OPENED"); |
| | | break; |
| | | case LastError.NET_ERROR_CREATE_SOCKET: // (0x80000000|1034) 创建套接字失败 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_CREATE_SOCKET"); |
| | | break; |
| | | case LastError.NET_ERROR_CHANNEL_NUM: // (0x80000000|1035) 通道号错误 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_CHANNEL_NUM"); |
| | | break; |
| | | case LastError.NET_ERROR_FACE_RECOGNITION_SERVER_GROUP_ID_EXCEED: // (0x80000000|1051) 组ID超过最大值 |
| | | msg = Res.string().getBundle().getString("NET_ERROR_FACE_RECOGNITION_SERVER_GROUP_ID_EXCEED"); |
| | | break; |
| | | default: |
| | | msg = Res.string().getBundle().getString("NET_ERROR"); |
| | | break; |
| | | } |
| | | return msg; |
| | | } |
| | | |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.common; |
| | | import java.util.concurrent.ExecutorService; |
| | | import java.util.concurrent.Executors; |
| | | import java.util.concurrent.Future; |
| | | import java.util.concurrent.LinkedBlockingDeque; |
| | | |
| | | public class EventTaskCommonQueue { |
| | | |
| | | // 设置一个队列,容量看情况改 |
| | | private final int MAX_TASK_COUNT = 10000; // 队列容量 |
| | | private final LinkedBlockingDeque<EventTaskHandler> eventTasks = new LinkedBlockingDeque<EventTaskHandler>(MAX_TASK_COUNT); |
| | | |
| | | // 起一个线程池 |
| | | private final int MAX_THREAD_COUNT = 10; // 线程池容量 |
| | | private ExecutorService eventQueueService = Executors.newFixedThreadPool(MAX_THREAD_COUNT); |
| | | |
| | | // 用于检验服务运行状态 |
| | | private volatile boolean running = true; |
| | | |
| | | // 用于查看当前线程状态 |
| | | private Future<?> eventQueueThreadStatus; |
| | | |
| | | // 初始化 |
| | | public void init() { |
| | | eventQueueThreadStatus = eventQueueService.submit(new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | while (running) { |
| | | try { |
| | | EventTaskHandler task = eventTasks.take(); //开始一个任务 |
| | | try { |
| | | task.eventTaskProcess(); // 主要的运行函数 |
| | | } catch (Exception e) { |
| | | System.err.println("任务处理发生错误"); // error |
| | | } |
| | | } catch (InterruptedException e) { |
| | | System.err.println("任务已意外停止"); // error |
| | | running = false; |
| | | } |
| | | } |
| | | } |
| | | }, "Event call back thread init")); |
| | | } |
| | | |
| | | // 向队列添加新的任务 |
| | | public boolean addEvent(EventTaskHandler eventHandler) { |
| | | if (!running) { |
| | | System.out.println("任务已停止"); // warning |
| | | return false; |
| | | } |
| | | boolean success = eventTasks.offer(eventHandler); |
| | | if (!success) { |
| | | // 队列已满,无法再添加 |
| | | System.out.println("添加到事件队列失败"); |
| | | } |
| | | return success; |
| | | } |
| | | |
| | | |
| | | // 手动启动服务 |
| | | public void activeService() { |
| | | running = true; |
| | | if (eventQueueService.isShutdown()) { |
| | | eventQueueService = Executors.newFixedThreadPool(MAX_THREAD_COUNT);; |
| | | init(); |
| | | System.out.println("线程池已关闭,重新初始化线程池及任务"); |
| | | } |
| | | if (eventQueueThreadStatus.isDone()) { |
| | | init(); |
| | | System.out.println("线程池任务结束,重新初始化任务"); |
| | | } |
| | | } |
| | | |
| | | // 手动关闭服务 |
| | | public void destroy() { |
| | | running = false; |
| | | eventQueueService.shutdownNow(); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.common; |
| | | |
| | | public interface EventTaskHandler { |
| | | |
| | | void eventTaskProcess(); |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.common; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.GridLayout; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | import java.awt.event.WindowAdapter; |
| | | import java.awt.event.WindowEvent; |
| | | |
| | | import javax.swing.JButton; |
| | | import javax.swing.JFrame; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.SwingUtilities; |
| | | import javax.swing.border.EmptyBorder; |
| | | import com.netsdk.demo.frame.*; |
| | | import com.netsdk.demo.frame.Attendance.Attendance; |
| | | import com.netsdk.demo.frame.AutoRegister.AutoRegister; |
| | | import com.netsdk.demo.frame.TargetRecognition.NewLatticeScreen; |
| | | import com.netsdk.demo.frame.Gate.Gate; |
| | | import com.netsdk.demo.frame.TargetRecognition.TargetRecognition; |
| | | import com.netsdk.demo.frame.ThermalCamera.ThermalCamera; |
| | | import com.netsdk.demo.frame.scada.SCADADemo; |
| | | import com.netsdk.demo.frame.vto.VTODemo; |
| | | |
| | | /** |
| | | * 功能列表界面 |
| | | */ |
| | | public class FunctionList extends JFrame { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public FunctionList() { |
| | | setTitle(Res.string().getFunctionList()); |
| | | setLayout(new BorderLayout()); |
| | | pack(); |
| | | setSize(450, 300); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | |
| | | add(new FunctionPanel(), BorderLayout.CENTER); |
| | | |
| | | addWindowListener(new WindowAdapter() { |
| | | public void windowClosing(WindowEvent e) { |
| | | dispose(); |
| | | System.exit(0); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | public class FunctionPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public FunctionPanel() { |
| | | setLayout(new GridLayout(9, 2)); |
| | | |
| | | setBorder(new EmptyBorder(30, 50, 0, 50)); |
| | | |
| | | faceRecognitionBtn = new JButton(Res.string().getTargetRecognition()); |
| | | gateBtn = new JButton(Res.string().getGate()); |
| | | capturePictureBtn = new JButton(Res.string().getCapturePicture()); |
| | | realPlayBtn = new JButton(Res.string().getRealplay()); |
| | | itsEventBtn = new JButton(Res.string().getITSEvent()); |
| | | downloadBtn = new JButton(Res.string().getDownloadRecord()); |
| | | talkBtn = new JButton(Res.string().getTalk()); |
| | | deviceSearchAndInitBtn = new JButton(Res.string().getDeviceSearchAndInit()); |
| | | ptzBtn = new JButton(Res.string().getPTZ()); |
| | | deviceCtlBtn = new JButton(Res.string().getDeviceControl()); |
| | | alarmListenBtn = new JButton(Res.string().getAlarmListen()); |
| | | autoRegisterBtn = new JButton(Res.string().getAutoRegister()); |
| | | attendanceBtn = new JButton(Res.string().getAttendance()); |
| | | thermalCameraBtn = new JButton(Res.string().getThermalCamera()); |
| | | matrixScreenBtn = new JButton(Res.string().getmatrixScreen()); |
| | | humanNumberStatisticBtn = new JButton(Res.string().getHumanNumberStatistic()); |
| | | vtoBtn = new JButton(Res.string().getVTO()); |
| | | |
| | | SCADABtn = new JButton(Res.string().getSCADA()); |
| | | |
| | | trafficAllowListBtn = new JButton(Res.string().getTrafficAllowList()); |
| | | |
| | | |
| | | add(gateBtn); |
| | | add(faceRecognitionBtn); |
| | | add(deviceSearchAndInitBtn); |
| | | add(ptzBtn); |
| | | add(realPlayBtn); |
| | | add(capturePictureBtn); |
| | | add(talkBtn); |
| | | add(itsEventBtn); |
| | | add(downloadBtn); |
| | | add(deviceCtlBtn); |
| | | add(alarmListenBtn); |
| | | add(autoRegisterBtn); |
| | | //add(attendanceBtn); |
| | | add(thermalCameraBtn); |
| | | add(matrixScreenBtn); |
| | | add(humanNumberStatisticBtn); |
| | | add(vtoBtn); |
| | | add(SCADABtn); |
| | | add(trafficAllowListBtn); |
| | | gateBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | dispose(); |
| | | Gate.main(null); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | faceRecognitionBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | dispose(); |
| | | TargetRecognition.main(null); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | |
| | | capturePictureBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | dispose(); |
| | | CapturePicture.main(null); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | realPlayBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | dispose(); |
| | | RealPlay.main(null); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | downloadBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | dispose(); |
| | | DownLoadRecord.main(null); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | talkBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | dispose(); |
| | | Talk.main(null); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | itsEventBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | dispose(); |
| | | TrafficEvent.main(null); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | deviceSearchAndInitBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | dispose(); |
| | | DeviceSearchAndInit.main(null); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | ptzBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | dispose(); |
| | | PTZControl.main(null); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | deviceCtlBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | dispose(); |
| | | DeviceControl.main(null); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | alarmListenBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | dispose(); |
| | | AlarmListen.main(null); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | autoRegisterBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | dispose(); |
| | | AutoRegister.main(null); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | attendanceBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | dispose(); |
| | | Attendance.main(null); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | thermalCameraBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | dispose(); |
| | | ThermalCamera.main(null); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | |
| | | matrixScreenBtn.addActionListener(new ActionListener() { |
| | | @Override public void actionPerformed(ActionEvent e) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() |
| | | { |
| | | dispose(); |
| | | NewLatticeScreen.main(null); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | |
| | | humanNumberStatisticBtn.addActionListener(new ActionListener() { |
| | | |
| | | @Override public void actionPerformed(ActionEvent e) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() |
| | | { |
| | | dispose(); |
| | | HumanNumberStatistic.main(null); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | vtoBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | dispose(); |
| | | VTODemo.main(null); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | SCADABtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | dispose(); |
| | | SCADADemo.main(null); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | trafficAllowListBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | dispose(); |
| | | TrafficAllowList.main(null); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | |
| | | } |
| | | |
| | | /* |
| | | * 功能列表组件 |
| | | */ |
| | | private JButton faceRecognitionBtn; |
| | | private JButton capturePictureBtn; |
| | | private JButton realPlayBtn; |
| | | private JButton downloadBtn; |
| | | private JButton itsEventBtn; |
| | | private JButton talkBtn; |
| | | private JButton deviceSearchAndInitBtn; |
| | | private JButton ptzBtn; |
| | | private JButton deviceCtlBtn; |
| | | private JButton alarmListenBtn; |
| | | private JButton autoRegisterBtn; |
| | | private JButton attendanceBtn; |
| | | private JButton gateBtn; |
| | | private JButton thermalCameraBtn; |
| | | private JButton matrixScreenBtn; |
| | | private JButton humanNumberStatisticBtn; |
| | | private JButton vtoBtn; |
| | | |
| | | /** |
| | | * 动环主机按钮 |
| | | */ |
| | | private JButton SCADABtn; |
| | | |
| | | /** |
| | | * 允许名单注册 |
| | | */ |
| | | private JButton trafficAllowListBtn; |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.common; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.event.WindowAdapter; |
| | | import java.awt.event.WindowEvent; |
| | | |
| | | import javax.swing.JDialog; |
| | | |
| | | /* |
| | | * 智能交通列表双击展示图片框架 |
| | | */ |
| | | public class ListPictureShowDialog extends JDialog { |
| | | private static final long serialVersionUID = 1L; |
| | | public ListPictureShowDialog() { |
| | | setLayout(new BorderLayout()); |
| | | setModal(true); |
| | | pack(); |
| | | setSize(800, 600); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | setDefaultCloseOperation(DISPOSE_ON_CLOSE); // 释放窗体 |
| | | |
| | | |
| | | listPanel = new PaintPanel(); |
| | | add(listPanel, BorderLayout.CENTER); |
| | | |
| | | addWindowListener(new WindowAdapter() { |
| | | public void windowClosing(WindowEvent e) { |
| | | dispose(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | public PaintPanel listPanel; |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.common; |
| | | |
| | | import java.awt.Dimension; |
| | | import java.awt.FlowLayout; |
| | | import java.awt.event.ActionListener; |
| | | import javax.swing.JButton; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JOptionPane; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.JPasswordField; |
| | | import javax.swing.JTextField; |
| | | |
| | | import com.netsdk.lib.ToolKits; |
| | | |
| | | /* |
| | | * 登陆面板 |
| | | */ |
| | | public class LoginPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | //登陆参数 |
| | | private String s_strIp = "172.32.100.88";/*"172.23.12.17";*/ //"192.168.7.61"; |
| | | private Integer s_nPort = new Integer("37777"); |
| | | private String s_strUser = "admin"; |
| | | private String s_strPassword = "admin123"; |
| | | |
| | | public LoginPanel() { |
| | | BorderEx.set(this, Res.string().getLogin(), 2); |
| | | setLayout(new FlowLayout()); |
| | | |
| | | //////////////////////////////// |
| | | loginBtn = new JButton(Res.string().getLogin()); |
| | | logoutBtn = new JButton(Res.string().getLogout()); |
| | | ipLabel = new JLabel(Res.string().getDeviceIp()); |
| | | portLabel = new JLabel(" " + Res.string().getPort()); |
| | | nameLabel = new JLabel(" " + Res.string().getUserName()); |
| | | passwordLabel = new JLabel(" " + Res.string().getPassword()); |
| | | ipTextArea = new JTextField(s_strIp); |
| | | nameTextArea = new JTextField(s_strUser); |
| | | passwordTextArea = new JPasswordField(s_strPassword); |
| | | portTextArea = new JTextField(s_nPort.toString()); |
| | | |
| | | add(ipLabel); |
| | | add(ipTextArea); |
| | | add(portLabel); |
| | | add(portTextArea); |
| | | add(nameLabel); |
| | | add(nameTextArea); |
| | | add(passwordLabel); |
| | | add(passwordTextArea); |
| | | add(loginBtn); |
| | | add(logoutBtn); |
| | | |
| | | ipTextArea.setPreferredSize(new Dimension(90, 20)); |
| | | nameTextArea.setPreferredSize(new Dimension(90, 20)); |
| | | passwordTextArea.setPreferredSize(new Dimension(90, 20)); |
| | | portTextArea.setPreferredSize(new Dimension(90, 20)); |
| | | |
| | | loginBtn.setPreferredSize(new Dimension(80, 20)); |
| | | logoutBtn.setPreferredSize(new Dimension(80, 20)); |
| | | ToolKits.limitTextFieldLength(portTextArea, 6); |
| | | |
| | | logoutBtn.setEnabled(false); |
| | | } |
| | | |
| | | public void addLoginBtnActionListener(ActionListener e) { |
| | | loginBtn.addActionListener(e); |
| | | } |
| | | |
| | | public void addLogoutBtnActionListener(ActionListener e) { |
| | | logoutBtn.addActionListener(e); |
| | | } |
| | | |
| | | public void setButtonEnable(boolean bln) { |
| | | loginBtn.setEnabled(!bln); |
| | | logoutBtn.setEnabled(bln); |
| | | } |
| | | |
| | | public boolean checkLoginText() { |
| | | if(ipTextArea.getText().equals("")) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInputDeviceIP(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | |
| | | if(portTextArea.getText().equals("")) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInputDevicePort(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | |
| | | if(nameTextArea.getText().equals("")) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInputUsername(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | |
| | | if(new String(passwordTextArea.getPassword()).equals("")) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInputPassword(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | |
| | | public JLabel nameLabel; |
| | | public JLabel passwordLabel; |
| | | public JLabel ipLabel; |
| | | public JLabel portLabel; |
| | | |
| | | public JTextField ipTextArea; |
| | | public JTextField portTextArea; |
| | | public JTextField nameTextArea; |
| | | public JPasswordField passwordTextArea; |
| | | |
| | | public JButton loginBtn; |
| | | public JButton logoutBtn; |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.common; |
| | | |
| | | import java.awt.Color; |
| | | import java.awt.Graphics; |
| | | import java.awt.Image; |
| | | |
| | | import javax.swing.JPanel; |
| | | |
| | | /* |
| | | * 带背景的绘图面板 |
| | | */ |
| | | public class PaintPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | private Image image; //背景图片 |
| | | |
| | | public PaintPanel() { |
| | | super(); |
| | | setOpaque(true); //非透明 |
| | | setLayout(null); |
| | | setBackground(Color.GRAY); |
| | | setForeground(new Color(0, 0, 0)); |
| | | } |
| | | |
| | | //设置图片的方法 |
| | | public void setImage(Image image) { |
| | | this.image = image; |
| | | } |
| | | |
| | | protected void paintComponent(Graphics g) { //重写绘制组件外观 |
| | | if(image != null) { |
| | | g.drawImage(image, 0, 0, getWidth(), getHeight(), this);//绘制图片与组件大小相同 |
| | | } |
| | | super.paintComponent(g); // 执行超类方法 |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.common; |
| | | |
| | | import java.util.Locale; |
| | | import java.util.ResourceBundle; |
| | | |
| | | import com.netsdk.lib.NetSDKLib; |
| | | import com.netsdk.lib.NetSDKLib.*; |
| | | |
| | | public final class Res { |
| | | |
| | | private static ResourceBundle bundle; |
| | | |
| | | private Res() { |
| | | switchLanguage(LanguageType.Chinese); |
| | | } |
| | | |
| | | private static class StringBundleHolder { |
| | | private static Res instance = new Res(); |
| | | } |
| | | |
| | | public static Res string() { |
| | | return StringBundleHolder.instance; |
| | | } |
| | | |
| | | public static enum LanguageType { |
| | | English, |
| | | Chinese |
| | | } |
| | | |
| | | public ResourceBundle getBundle() { |
| | | return bundle; |
| | | } |
| | | |
| | | /** |
| | | * \if ENGLISH_LANG |
| | | * Switch between Chinese and English |
| | | * \else |
| | | * 中英文切换 |
| | | * \endif |
| | | */ |
| | | public void switchLanguage(LanguageType type) { |
| | | switch(type) { |
| | | case Chinese: |
| | | bundle = ResourceBundle.getBundle("res", new Locale("zh", "CN")); |
| | | break; |
| | | case English: |
| | | bundle = ResourceBundle.getBundle("res", new Locale("en", "US")); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | |
| | | public String getSwitchLanguage() { |
| | | return bundle.getString("SWITCH_LANGUAGE"); |
| | | } |
| | | |
| | | public String getRealplay() { |
| | | return bundle.getString("REALPLAY"); |
| | | } |
| | | |
| | | public String getMultiRealplay() { |
| | | return bundle.getString("MULTIREALPLAY"); |
| | | } |
| | | |
| | | public String getDownloadRecord() { |
| | | return bundle.getString("DOWNLOAD_RECORD"); |
| | | } |
| | | |
| | | public String getITSEvent() { |
| | | return bundle.getString("ITS_EVENT"); |
| | | } |
| | | |
| | | public String getOnline() { |
| | | return bundle.getString("ONLINE"); |
| | | } |
| | | |
| | | public String getDisConnectReconnecting() { |
| | | return bundle.getString("DISCONNECT_RECONNECTING"); |
| | | } |
| | | |
| | | public String getDisConnect() { |
| | | return bundle.getString("DISCONNECT"); |
| | | } |
| | | |
| | | public String getPromptMessage() { |
| | | return bundle.getString("PROMPT_MESSAGE"); |
| | | } |
| | | |
| | | public String getErrorMessage() { |
| | | return bundle.getString("ERROR_MESSAGE"); |
| | | } |
| | | |
| | | public String getReconnectSucceed() { |
| | | return bundle.getString("RECONNECT_SUCCEED"); |
| | | } |
| | | |
| | | public String getSucceed() { |
| | | return bundle.getString("SUCCEED"); |
| | | } |
| | | |
| | | public String getFailed() { |
| | | return bundle.getString("FAILED"); |
| | | } |
| | | |
| | | public String getYear() { |
| | | return bundle.getString("YEAR"); |
| | | } |
| | | |
| | | public String getMonth() { |
| | | return bundle.getString("MONTH"); |
| | | } |
| | | |
| | | public String getDay() { |
| | | return bundle.getString("DAY"); |
| | | } |
| | | |
| | | public String getHour() { |
| | | return bundle.getString("HOUR"); |
| | | } |
| | | |
| | | public String getMinute() { |
| | | return bundle.getString("MINUTE"); |
| | | } |
| | | |
| | | public String getSecond() { |
| | | return bundle.getString("SECOND"); |
| | | } |
| | | |
| | | public String getSunday() { |
| | | return bundle.getString("SUNDAY"); |
| | | } |
| | | |
| | | public String getMonday() { |
| | | return bundle.getString("MONDAY"); |
| | | } |
| | | |
| | | public String getTuesday() { |
| | | return bundle.getString("TUESDAY"); |
| | | } |
| | | |
| | | public String getWednesday() { |
| | | return bundle.getString("WEDNESDAY"); |
| | | } |
| | | |
| | | public String getThursday() { |
| | | return bundle.getString("THURSDAY"); |
| | | } |
| | | |
| | | public String getFriday() { |
| | | return bundle.getString("FRIDAY"); |
| | | } |
| | | |
| | | public String getSaturday() { |
| | | return bundle.getString("SATURDAY"); |
| | | } |
| | | |
| | | public String[] getWeek() { |
| | | String[] weekdays = {getSunday(), |
| | | getMonday(), |
| | | getTuesday(), |
| | | getWednesday(), |
| | | getThursday(), |
| | | getFriday(), |
| | | getSaturday() |
| | | }; |
| | | |
| | | return weekdays; |
| | | } |
| | | |
| | | public String getConfirm() { |
| | | return bundle.getString("CONFIRM"); |
| | | } |
| | | |
| | | public String getCancel() { |
| | | return bundle.getString("CANCEL"); |
| | | } |
| | | |
| | | public String getDateChooser() { |
| | | return bundle.getString("DATE_CHOOSER"); |
| | | } |
| | | |
| | | public String getFunctionList() { |
| | | return bundle.getString("FUNCTIONLIST"); |
| | | } |
| | | |
| | | public String getLogin() { |
| | | return bundle.getString("LOGIN"); |
| | | } |
| | | |
| | | public String getLoginSuccess() { |
| | | return bundle.getString("LOGIN_SUCCEED"); |
| | | } |
| | | |
| | | public String getFillingRules() { |
| | | return bundle.getString("FILLING_RULES"); |
| | | } |
| | | |
| | | public String getLogout() { |
| | | return bundle.getString("LOGOUT"); |
| | | } |
| | | |
| | | public String getDeviceIp() { |
| | | return bundle.getString("DEVICE_IP"); |
| | | } |
| | | |
| | | public String getIp() { |
| | | return bundle.getString("IP"); |
| | | } |
| | | |
| | | public String getPort() { |
| | | return bundle.getString("DEVICE_PORT"); |
| | | } |
| | | |
| | | public String getUserId() { |
| | | return bundle.getString("USER_ID"); |
| | | } |
| | | |
| | | public String getTemp() { |
| | | return bundle.getString("TEMPERATURE"); |
| | | } |
| | | |
| | | public String getMaskstutas() { |
| | | return bundle.getString("MASK_STATUS"); |
| | | } |
| | | |
| | | public String getUserName(boolean space) { |
| | | return bundle.getString("USER_NAME"); |
| | | } |
| | | |
| | | public String getCardNo() { |
| | | return bundle.getString("CARD_NO"); |
| | | } |
| | | |
| | | public String getUserName() { |
| | | return bundle.getString("USERNAME"); |
| | | } |
| | | |
| | | public String getPassword() { |
| | | return bundle.getString("PASSWORD"); |
| | | } |
| | | |
| | | |
| | | public String getLoginFailed() { |
| | | return bundle.getString("LOGIN_FAILED"); |
| | | } |
| | | |
| | | public String getInputDeviceIP() { |
| | | return bundle.getString("PLEASE_INPUT_DEVICE_IP"); |
| | | } |
| | | |
| | | public String getInputDevicePort() { |
| | | return bundle.getString("PLEASE_INPUT_DEVICE_PORT"); |
| | | } |
| | | |
| | | public String getInputUsername() { |
| | | return bundle.getString("PLEASE_INPUT_DEVICE_USERNAME"); |
| | | } |
| | | |
| | | public String getInputPassword() { |
| | | return bundle.getString("PLEASE_INPUT_DEVICE_PASSWORD"); |
| | | } |
| | | |
| | | public String getInputConfirmPassword() { |
| | | return bundle.getString("PLEASE_INPUT_CONFIRM_PASSWORD"); |
| | | } |
| | | |
| | | public String getStartRealPlay() { |
| | | return bundle.getString("START_REALPLAY"); |
| | | } |
| | | |
| | | public String getStopRealPlay() { |
| | | return bundle.getString("STOP_REALPLAY"); |
| | | } |
| | | |
| | | public String getChn() { |
| | | return bundle.getString("CHN"); |
| | | } |
| | | |
| | | public String getChannel() { |
| | | return bundle.getString("CHANNEL"); |
| | | } |
| | | |
| | | public String getStreamType() { |
| | | return bundle.getString("STREAM_TYPE"); |
| | | } |
| | | |
| | | public String getMasterAndSub() { |
| | | return bundle.getString("MASTER_AND_SUB_STREAM"); |
| | | } |
| | | |
| | | public String getMasterStream() { |
| | | return bundle.getString("MASTER_STREAM"); |
| | | } |
| | | |
| | | public String getSubStream() { |
| | | return bundle.getString("SUB_STREAM"); |
| | | } |
| | | |
| | | public String getPTZ() { |
| | | return bundle.getString("PTZ"); |
| | | } |
| | | |
| | | public String getPtzControlAndCapture() { |
| | | return bundle.getString("PTZCONTROL_CAPTURE"); |
| | | } |
| | | |
| | | public String getCapturePicture() { |
| | | return bundle.getString("CAPTURE_PICTURE"); |
| | | } |
| | | |
| | | public String getLocalCapture() { |
| | | return bundle.getString("LOCAL_CAPTURE"); |
| | | } |
| | | |
| | | public String getRemoteCapture() { |
| | | return bundle.getString("REMOTE_CAPTURE"); |
| | | } |
| | | |
| | | public String getTimerCapture() { |
| | | return bundle.getString("TIMER_CAPTURE"); |
| | | } |
| | | |
| | | public String getStopCapture() { |
| | | return bundle.getString("STOP_CAPTURE"); |
| | | } |
| | | |
| | | public String getInterval() { |
| | | return bundle.getString("INTERVAL"); |
| | | } |
| | | |
| | | public String getTimeIntervalIllegal() { |
| | | return bundle.getString("TIME_INTERVAL_ILLEGAL"); |
| | | } |
| | | |
| | | public String getNeedStartRealPlay() { |
| | | return bundle.getString("PLEASE_START_REALPLAY"); |
| | | } |
| | | |
| | | public String getPTZControl() { |
| | | return bundle.getString("PTZ_CONTROL"); |
| | | } |
| | | |
| | | public String getLeftUp() { |
| | | return bundle.getString("LEFT_UP"); |
| | | } |
| | | |
| | | public String getUp() { |
| | | return bundle.getString("UP"); |
| | | } |
| | | |
| | | public String getRightUp() { |
| | | return bundle.getString("RIGHT_UP"); |
| | | } |
| | | |
| | | public String getLeft() { |
| | | return bundle.getString("LEFT"); |
| | | } |
| | | |
| | | public String getRight() { |
| | | return bundle.getString("RIGHT"); |
| | | } |
| | | |
| | | public String getLeftDown() { |
| | | return bundle.getString("LEFT_DOWN"); |
| | | } |
| | | |
| | | public String getDown() { |
| | | return bundle.getString("DOWN"); |
| | | } |
| | | |
| | | public String getRightDown() { |
| | | return bundle.getString("RIGHT_DOWN"); |
| | | } |
| | | |
| | | public String getSpeed() { |
| | | return bundle.getString("SPEED"); |
| | | } |
| | | |
| | | public String getZoomAdd() { |
| | | return bundle.getString("ZOOM_ADD"); |
| | | } |
| | | |
| | | public String getZoomDec() { |
| | | return bundle.getString("ZOOM_DEC"); |
| | | } |
| | | |
| | | public String getFocusAdd() { |
| | | return bundle.getString("FOCUS_ADD"); |
| | | } |
| | | |
| | | public String getFocusDec() { |
| | | return bundle.getString("FOCUS_DEC"); |
| | | } |
| | | |
| | | public String getIrisAdd() { |
| | | return bundle.getString("IRIS_ADD"); |
| | | } |
| | | |
| | | public String getIrisDec() { |
| | | return bundle.getString("IRIS_DEC"); |
| | | } |
| | | |
| | | public String getIndex() { |
| | | return bundle.getString("INDEX"); |
| | | } |
| | | |
| | | public String getEventPicture() { |
| | | return bundle.getString("EVENT_PICTURE"); |
| | | } |
| | | |
| | | public String getPlatePicture() { |
| | | return bundle.getString("PLATE_PICTURE"); |
| | | } |
| | | |
| | | public String getEventName() { |
| | | return bundle.getString("EVENT_NAME"); |
| | | } |
| | | |
| | | public String getLicensePlate() { |
| | | return bundle.getString("LICENSE_PLATE"); |
| | | } |
| | | |
| | | public String getEventTime() { |
| | | return bundle.getString("EVENT_TIME"); |
| | | } |
| | | |
| | | public String getPlateType() { |
| | | return bundle.getString("PLATE_TYPE"); |
| | | } |
| | | |
| | | public String getPlateColor() { |
| | | return bundle.getString("PLATE_COLOR"); |
| | | } |
| | | |
| | | public String getVehicleColor() { |
| | | return bundle.getString("VEHICLE_COLOR"); |
| | | } |
| | | |
| | | public String getVehicleType() { |
| | | return bundle.getString("VEHICLE_TYPE"); |
| | | } |
| | | |
| | | public String getVehicleSize() { |
| | | return bundle.getString("VEHICLE_SIZE"); |
| | | } |
| | | |
| | | public String getFileCount() { |
| | | return bundle.getString("FILE_COUNT"); |
| | | } |
| | | |
| | | public String getFileIndex() { |
| | | return bundle.getString("FILE_INDEX"); |
| | | } |
| | | |
| | | public String getGroupId() { |
| | | return bundle.getString("GROUP_ID"); |
| | | } |
| | | |
| | | public String getIllegalPlace() { |
| | | return bundle.getString("ILLEGAL_PLACE"); |
| | | } |
| | | |
| | | public String getLaneNumber() { |
| | | return bundle.getString("LANE_NUMBER"); |
| | | } |
| | | |
| | | public String getEventInfo() { |
| | | return bundle.getString("EVENT_INFO"); |
| | | } |
| | | |
| | | public String getNoPlate() { |
| | | return bundle.getString("NO_PLATENUMBER"); |
| | | } |
| | | |
| | | public String[] getTrafficTableName() { |
| | | String[] name = {getIndex(), |
| | | getEventName(), |
| | | getLicensePlate(), |
| | | getEventTime(), |
| | | getPlateType(), |
| | | getPlateColor(), |
| | | getVehicleColor(), |
| | | getVehicleType(), |
| | | getVehicleSize(), |
| | | getFileCount(), |
| | | getFileIndex(), |
| | | getGroupId(), |
| | | getIllegalPlace(), |
| | | getLaneNumber()}; |
| | | return name; |
| | | } |
| | | |
| | | public String getOperate() { |
| | | return bundle.getString("OPERATE"); |
| | | } |
| | | |
| | | public String getAttach() { |
| | | return bundle.getString("ATTACH"); |
| | | } |
| | | |
| | | public String getDetach() { |
| | | return bundle.getString("DETACH"); |
| | | } |
| | | |
| | | public String getOpenStrobe() { |
| | | return bundle.getString("OPEN_STROBE"); |
| | | } |
| | | |
| | | public String getCloseStrobe() { |
| | | return bundle.getString("CLOSE_STROBE"); |
| | | } |
| | | |
| | | public String getOpenStrobeFailed() { |
| | | return bundle.getString("OPEN_STROBE_FAILED"); |
| | | } |
| | | |
| | | public String getManualCapture() { |
| | | return bundle.getString("MANUAL_CAPTURE"); |
| | | } |
| | | |
| | | public String getManualCaptureSucceed() { |
| | | return bundle.getString("MANUALSNAP_SUCCEED"); |
| | | } |
| | | |
| | | public String getManualCaptureFailed() { |
| | | return bundle.getString("MANUALSNAP_FAILED"); |
| | | } |
| | | |
| | | /* |
| | | * 车辆大小对照表 |
| | | */ |
| | | public String getTrafficSize(int nVehicleSize) { |
| | | String vehicleClass = ""; |
| | | for(int i = 0; i < 5; i++) { |
| | | if( ((byte)nVehicleSize & (1 << i)) > 0 ) { |
| | | switch (i) { |
| | | case 0: |
| | | vehicleClass = bundle.getString("LIGHT_DUTY"); |
| | | break; |
| | | case 1: |
| | | vehicleClass = bundle.getString("MEDIUM"); |
| | | break; |
| | | case 2: |
| | | vehicleClass = bundle.getString("OVER_SIZE"); |
| | | break; |
| | | case 3: |
| | | vehicleClass = bundle.getString("MINI_SIZE"); |
| | | break; |
| | | case 4: |
| | | vehicleClass = bundle.getString("LARGE_SIZE"); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | return vehicleClass; |
| | | } |
| | | |
| | | /* |
| | | * 获取事件名称 |
| | | */ |
| | | public String getEventName(int type) { |
| | | String name = ""; |
| | | switch (type) { |
| | | case NetSDKLib.EVENT_IVS_TRAFFICJUNCTION: ///< 交通路口事件 |
| | | name = bundle.getString("EVENT_IVS_TRAFFICJUNCTION"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_RUNREDLIGHT: ///< 闯红灯事件 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_RUNREDLIGHT"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_OVERLINE: ///< 压车道线事件 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_OVERLINE"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_RETROGRADE: ///< 逆行事件 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_RETROGRADE"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_TURNLEFT: ///< 违章左转 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_TURNLEFT"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_TURNRIGHT: ///< 违章右转 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_TURNRIGHT"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_UTURN: ///< 违章掉头 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_UTURN"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_OVERSPEED: ///< 超速 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_OVERSPEED"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_UNDERSPEED: ///< 低速 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_UNDERSPEED"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_PARKING: ///< 违章停车 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_PARKING"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_WRONGROUTE: ///< 不按车道行驶 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_WRONGROUTE"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_CROSSLANE: ///< 违章变道 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_CROSSLANE"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_OVERYELLOWLINE: ///< 压黄线 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_OVERYELLOWLINE"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_YELLOWPLATEINLANE: ///< 黄牌车占道事件 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_YELLOWPLATEINLANE"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_PEDESTRAINPRIORITY: ///< 斑马线行人优先事件 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_PEDESTRAINPRIORITY"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_MANUALSNAP: ///< 交通手动抓拍事件 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_MANUALSNAP"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_VEHICLEINROUTE: ///< 有车占道事件 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_VEHICLEINROUTE"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_VEHICLEINBUSROUTE: ///< 占用公交车道事件 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_VEHICLEINBUSROUTE"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_BACKING: ///< 违章倒车事件 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_BACKING"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_PARKINGSPACEPARKING: ///< 车位有车事件 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_PARKINGSPACEPARKING"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_PARKINGSPACENOPARKING: ///< 车位无车事件 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_PARKINGSPACENOPARKING"); |
| | | break; |
| | | case NetSDKLib.EVENT_IVS_TRAFFIC_WITHOUT_SAFEBELT: ///< 交通未系安全带事件 |
| | | name = bundle.getString("EVENT_IVS_TRAFFIC_WITHOUT_SAFEBELT"); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | |
| | | return name; |
| | | } |
| | | |
| | | public String getRecordType() { |
| | | return bundle.getString("RECORD_TYPE"); |
| | | } |
| | | |
| | | public String getStartTime() { |
| | | return bundle.getString("START_TIME"); |
| | | } |
| | | |
| | | public String getEndTime() { |
| | | return bundle.getString("END_TIME"); |
| | | } |
| | | |
| | | public String[] getDownloadTableName() { |
| | | String[] name = {getIndex(), |
| | | getChannel(), |
| | | getRecordType(), |
| | | getStartTime(), |
| | | getEndTime()}; |
| | | return name; |
| | | } |
| | | |
| | | public String getDownloadByFile() { |
| | | return bundle.getString("DOWNLOAD_RECORD_BYFILE"); |
| | | } |
| | | |
| | | public String getQuery() { |
| | | return bundle.getString("QUERY"); |
| | | } |
| | | |
| | | public String getDownload() { |
| | | return bundle.getString("DOWNLOAD"); |
| | | } |
| | | |
| | | public String getStopDownload() { |
| | | return bundle.getString("STOP_DOWNLOAD"); |
| | | } |
| | | |
| | | public String getDownloadByTime() { |
| | | return bundle.getString("DOWNLOAD_RECORD_BYTIME"); |
| | | } |
| | | |
| | | public String getSelectTimeAgain() { |
| | | return bundle.getString("PLEASE_SELECT_TIME_AGAIN"); |
| | | } |
| | | |
| | | public String getSelectRowWithData() { |
| | | return bundle.getString("PLEASE_FIRST_SELECT_ROW_WITH_DATA"); |
| | | } |
| | | |
| | | public String getQueryRecord() { |
| | | return bundle.getString("PLEASE_FIRST_QUERY_RECORD"); |
| | | } |
| | | |
| | | public String getDownloadCompleted() { |
| | | return bundle.getString("DOWNLOAD_COMPLETED"); |
| | | } |
| | | |
| | | /** |
| | | * 获取录像类型 |
| | | */ |
| | | public String getRecordTypeStr(int nRecordFileType) { |
| | | String recordTypeStr = ""; |
| | | switch(nRecordFileType) { |
| | | case 0: |
| | | recordTypeStr = bundle.getString("GENERAL_RECORD"); |
| | | break; |
| | | case 1: |
| | | recordTypeStr = bundle.getString("ALARM_RECORD"); |
| | | break; |
| | | case 2: |
| | | recordTypeStr = bundle.getString("MOTION_DETECTION"); |
| | | break; |
| | | case 3: |
| | | recordTypeStr = bundle.getString("CARD_NUMBER_RECORD"); |
| | | break; |
| | | case 5: |
| | | recordTypeStr = bundle.getString("INTELLIGENT_DETECTION"); |
| | | break; |
| | | case 19: |
| | | recordTypeStr = bundle.getString("POS_RECORD"); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | |
| | | return recordTypeStr; |
| | | } |
| | | |
| | | public int getRecordTypeInt(String recordFileStr) { |
| | | int recordType = -1; |
| | | if(recordFileStr.equals(bundle.getString("GENERAL_RECORD"))) { |
| | | recordType = 0; |
| | | } else if(recordFileStr.equals(bundle.getString("ALARM_RECORD"))) { |
| | | recordType = 1; |
| | | } else if(recordFileStr.equals(bundle.getString("MOTION_DETECTION"))) { |
| | | recordType = 2; |
| | | } else if(recordFileStr.equals(bundle.getString("CARD_NUMBER_RECORD"))) { |
| | | recordType = 3; |
| | | }else if(recordFileStr.equals(bundle.getString("INTELLIGENT_DETECTION"))){ |
| | | recordType=11; |
| | | }else if(recordFileStr.equals(bundle.getString("POS_RECORD"))){ |
| | | recordType=19; |
| | | } |
| | | |
| | | |
| | | return recordType; |
| | | } |
| | | |
| | | /** |
| | | * 语音对讲 |
| | | */ |
| | | public String getTalk() { |
| | | return bundle.getString("TALK"); |
| | | } |
| | | |
| | | public String getTransmitType() { |
| | | return bundle.getString("TRANSMIT_TYPE"); |
| | | } |
| | | |
| | | public String getLocalTransmitType() { |
| | | return bundle.getString("LOCAL_TRANSMIT_TYPE"); |
| | | } |
| | | |
| | | public String getRemoteTransmitType() { |
| | | return bundle.getString("REMOTE_TRANSMIT_TYPE"); |
| | | } |
| | | |
| | | public String getTransmitChannel() { |
| | | return bundle.getString("TRANSMIT_CHANNEL"); |
| | | } |
| | | |
| | | public String getStartTalk() { |
| | | return bundle.getString("START_TALK"); |
| | | } |
| | | |
| | | public String getStopTalk() { |
| | | return bundle.getString("STOP_TALK"); |
| | | } |
| | | |
| | | public String getTalkFailed() { |
| | | return bundle.getString("TALK_FAILED"); |
| | | } |
| | | |
| | | public String getDeviceSearchAndInit() { |
| | | return bundle.getString("DEVICESEARCH_DEVICEINIT"); |
| | | } |
| | | |
| | | public String getDeviceSearchOperate() { |
| | | return bundle.getString("DEVICESEARCH_OPERATE"); |
| | | } |
| | | |
| | | public String getDeviceSearchResult() { |
| | | return bundle.getString("DEVICESEARCH_RESULT"); |
| | | } |
| | | |
| | | public String getDeviceInit() { |
| | | return bundle.getString("DEVICEINIT"); |
| | | } |
| | | |
| | | public String getStartSearch() { |
| | | return bundle.getString("START_SEARCH"); |
| | | } |
| | | |
| | | public String getStopSearch() { |
| | | return bundle.getString("STOP_SEARCH"); |
| | | } |
| | | |
| | | public String getPleaseSelectInitializedDevice() { |
| | | return bundle.getString("PLEASE_FIRST_SELECT_INITIALIZED_DEVICE"); |
| | | } |
| | | |
| | | public String getDeviceSearch() { |
| | | return bundle.getString("DEVICESEARCH"); |
| | | } |
| | | |
| | | public String getDevicePointToPointSearch() { |
| | | return bundle.getString("DEVICE_POINT_TO_POINT_SEARCH"); |
| | | } |
| | | |
| | | public String getStartIp() { |
| | | return bundle.getString("START_IP"); |
| | | } |
| | | |
| | | public String getEndIp() { |
| | | return bundle.getString("END_IP"); |
| | | } |
| | | |
| | | public String getControlScope() { |
| | | return bundle.getString("THE_IP_CONTROL_SCOPE"); |
| | | } |
| | | |
| | | public String getDeviceType() { |
| | | return bundle.getString("DEVICE_TYPE"); |
| | | } |
| | | |
| | | public String getDeviceMac() { |
| | | return bundle.getString("MAC"); |
| | | } |
| | | |
| | | public String getDeviceSn() { |
| | | return bundle.getString("SN"); |
| | | } |
| | | |
| | | public String getDeviceInitState() { |
| | | return bundle.getString("DEVICE_INIT_STATE"); |
| | | } |
| | | |
| | | public String getInitPasswd() { |
| | | return bundle.getString("INIT_PASSWD"); |
| | | } |
| | | |
| | | public String[] getDeviceTableName() { |
| | | String[] name = {getIndex(), |
| | | getDeviceInitState(), |
| | | getIpVersion(), |
| | | getDeviceIp(), |
| | | getPort(), |
| | | getSubMask(), |
| | | getGetway(), |
| | | getDeviceMac(), |
| | | getDeviceType(), |
| | | getDetailType(), |
| | | getHttpPort()}; |
| | | |
| | | return name; |
| | | } |
| | | |
| | | public String getIpVersion() { |
| | | return bundle.getString("IP_VERSION"); |
| | | } |
| | | |
| | | public String getSubMask() { |
| | | return bundle.getString("SUB_MASK"); |
| | | } |
| | | |
| | | public String getGetway() { |
| | | return bundle.getString("GETWAY"); |
| | | } |
| | | |
| | | public String getDetailType() { |
| | | return bundle.getString("DETAIL_TYPE"); |
| | | } |
| | | |
| | | public String getHttpPort() { |
| | | return bundle.getString("HTTP_PORT"); |
| | | } |
| | | |
| | | public String getLocalIp() { |
| | | return bundle.getString("LOCAL_IP"); |
| | | } |
| | | |
| | | public String getInitialized() { |
| | | return bundle.getString("INITIALIZED"); |
| | | } |
| | | |
| | | public String getNotInitialized() { |
| | | return bundle.getString("NOT_INITIALIZED"); |
| | | } |
| | | |
| | | public String getOldDevice() { |
| | | return bundle.getString("OLD_DEVICE"); |
| | | } |
| | | |
| | | public String getNotSupportInitialization() { |
| | | return bundle.getString("DONOT_SUPPORT_INITIALIZATION"); |
| | | } |
| | | |
| | | public String getPhone() { |
| | | return bundle.getString("PHONE"); |
| | | } |
| | | |
| | | public String getMail() { |
| | | return bundle.getString("MAIL"); |
| | | } |
| | | |
| | | public String getInputPhone() { |
| | | return bundle.getString("PLEASE_INPUT_PHONE"); |
| | | } |
| | | |
| | | public String getInputMail() { |
| | | return bundle.getString("PLEASE_INPUT_MAIL"); |
| | | } |
| | | |
| | | public String getConfirmPassword() { |
| | | return bundle.getString("CONFIRM_PASSWORD"); |
| | | } |
| | | |
| | | public String getInconsistent() { |
| | | return bundle.getString("INCONSISTENT"); |
| | | } |
| | | |
| | | public String getCheckIp() { |
| | | return bundle.getString("PLEASE_CHECK_IP"); |
| | | } |
| | | |
| | | // 0-老设备,没有初始化功能 1-未初始化账号 2-已初始化账户 |
| | | public String getInitStateInfo(int initStatus) { |
| | | String initStateInfo = ""; |
| | | switch(initStatus) { |
| | | case 0: |
| | | initStateInfo = getInitialized(); |
| | | break; |
| | | case 1: |
| | | initStateInfo = getNotInitialized(); |
| | | break; |
| | | case 2: |
| | | initStateInfo = getInitialized(); |
| | | break; |
| | | } |
| | | return initStateInfo; |
| | | } |
| | | |
| | | public String getAlarmListen() { |
| | | return bundle.getString("ALARM_LISTEN"); |
| | | } |
| | | |
| | | public String getStartListen() { |
| | | return bundle.getString("START_LISTEN"); |
| | | } |
| | | |
| | | public String getStopListen() { |
| | | return bundle.getString("STOP_LISTEN"); |
| | | } |
| | | public String getStopListenFailed(){ |
| | | return bundle.getString("STOP_LISTEN_FAILED"); |
| | | } |
| | | public String getShowAlarmEvent() { |
| | | return bundle.getString("SHOW_ALARM_EVENT"); |
| | | } |
| | | |
| | | public String getAlarmMessage() { |
| | | return bundle.getString("ALARM_MESSAGE"); |
| | | } |
| | | |
| | | public String getExternalAlarm() { |
| | | return bundle.getString("EXTERNAL_ALARM"); |
| | | } |
| | | |
| | | public String getMotionAlarm() { |
| | | return bundle.getString("MOTION_ALARM"); |
| | | } |
| | | |
| | | public String getVideoLostAlarm() { |
| | | return bundle.getString("VIDEOLOST_ALARM"); |
| | | } |
| | | |
| | | public String getShelterAlarm() { |
| | | return bundle.getString("SHELTER_ALARM"); |
| | | } |
| | | |
| | | public String getDiskFullAlarm() { |
| | | return bundle.getString("DISKFULL_ALARM"); |
| | | } |
| | | |
| | | public String getDiskErrorAlarm() { |
| | | return bundle.getString("DISKERROR_ALARM"); |
| | | } |
| | | |
| | | public String getAlarmListenFailed() { |
| | | return bundle.getString("ALARM_LISTEN_FAILED"); |
| | | } |
| | | |
| | | public String getStart() { |
| | | return bundle.getString("START"); |
| | | } |
| | | |
| | | public String getStop() { |
| | | return bundle.getString("STOP"); |
| | | } |
| | | |
| | | public String getDeviceControl() { |
| | | return bundle.getString("DEVICE_CONTROL"); |
| | | } |
| | | |
| | | public String getDeviceReboot() { |
| | | return bundle.getString("DEVICE_REBOOT"); |
| | | } |
| | | |
| | | public String getSyncTime() { |
| | | return bundle.getString("SYNCHRONIZE_TIME"); |
| | | } |
| | | |
| | | public String getCurrentTime() { |
| | | return bundle.getString("CURRENT_TIME"); |
| | | } |
| | | |
| | | public String getReboot() { |
| | | return bundle.getString("REBOOT"); |
| | | } |
| | | |
| | | public String getRebootTips() { |
| | | return bundle.getString("REBOOT_TIPS"); |
| | | } |
| | | |
| | | public String getGetTime() { |
| | | return bundle.getString("GET_TIME"); |
| | | } |
| | | |
| | | public String getSetTime() { |
| | | return bundle.getString("SET_TIME"); |
| | | } |
| | | |
| | | public String getOperateSuccess() { |
| | | return bundle.getString("OPERATE_SUCCESS"); |
| | | } |
| | | |
| | | public String getTargetRecognition() { |
| | | return bundle.getString("TARGETRECOGNITION"); |
| | | } |
| | | |
| | | public String[] getGroupTable() { |
| | | String[] faceTable = {getFaceGroupId(), |
| | | getFaceGroupName(), |
| | | bundle.getString("PERSON_COUNT")}; |
| | | return faceTable; |
| | | } |
| | | |
| | | public String getFaceGroupId() { |
| | | return bundle.getString("FACE_GROUP_ID"); |
| | | } |
| | | |
| | | public String getFaceGroupName() { |
| | | return bundle.getString("FACE_GROUP_NAME"); |
| | | } |
| | | |
| | | public String getGroupOperate() { |
| | | return bundle.getString("GROUP_OPERATE"); |
| | | } |
| | | |
| | | public String getPersonOperate() { |
| | | return bundle.getString("PERSON_OPERATE"); |
| | | } |
| | | |
| | | public String getGlobalPicture() { |
| | | return bundle.getString("GLOBAL_PICTURE"); |
| | | } |
| | | |
| | | public String getPersonPicture() { |
| | | return bundle.getString("PERSON_PICTURE"); |
| | | } |
| | | |
| | | public String getCandidatePicture() { |
| | | return bundle.getString("CANDIDATE_PICTURE"); |
| | | } |
| | | |
| | | public String getTime() { |
| | | return bundle.getString("TIME"); |
| | | } |
| | | |
| | | public String getSex() { |
| | | return bundle.getString("SEX"); |
| | | } |
| | | |
| | | public String getAge() { |
| | | return bundle.getString("AGE"); |
| | | } |
| | | |
| | | |
| | | public String getColor() { |
| | | return bundle.getString("COLOR"); |
| | | } |
| | | |
| | | public String getEye() { |
| | | return bundle.getString("EYE"); |
| | | } |
| | | |
| | | public String getMouth() { |
| | | return bundle.getString("MOUTH"); |
| | | } |
| | | |
| | | public String getMask() { |
| | | return bundle.getString("MASK"); |
| | | } |
| | | |
| | | public String getBeard() { |
| | | return bundle.getString("BEARD"); |
| | | } |
| | | |
| | | public String getName() { |
| | | return bundle.getString("NAME"); |
| | | } |
| | | |
| | | public String getBirthday() { |
| | | return bundle.getString("BIRTHDAY"); |
| | | } |
| | | |
| | | public String getIdNo() { |
| | | return bundle.getString("ID_NO"); |
| | | } |
| | | |
| | | public String getIdType() { |
| | | return bundle.getString("ID_TYPE"); |
| | | } |
| | | |
| | | public String getSimilarity() { |
| | | return bundle.getString("SIMILARITY"); |
| | | } |
| | | |
| | | public String getTargetDetectEvent() { |
| | | return bundle.getString("TARGET_DETECT_EVENT"); |
| | | } |
| | | |
| | | public String getTargetRecognitionEvent() { |
| | | return bundle.getString("TARGET_RECOGNITION_EVENT"); |
| | | } |
| | | |
| | | public String getUid() { |
| | | return bundle.getString("UID"); |
| | | } |
| | | |
| | | public String getGlasses() { |
| | | return bundle.getString("GLASSES"); |
| | | } |
| | | |
| | | public String getPicturePath() { |
| | | return bundle.getString("PICTURE_PATH"); |
| | | } |
| | | |
| | | public String getFaceLibraryID() { |
| | | return bundle.getString("FACE_LIBRARY_ID"); |
| | | } |
| | | |
| | | public String getFaceLibraryName() { |
| | | return bundle.getString("FACE_LIBRARY_NAME"); |
| | | } |
| | | |
| | | public String[] getPersonTable() { |
| | | String[] personTable = {getUid(), getName(), getSex(), getBirthday(), getIdType(), getIdNo()}; |
| | | return personTable; |
| | | } |
| | | |
| | | public String[] getDispositionTable() { |
| | | String[] dispositionTable = {getChannel(), getSimilarity()}; |
| | | return dispositionTable; |
| | | } |
| | | |
| | | public String getUnKnow() { |
| | | return bundle.getString("UNKNOW"); |
| | | } |
| | | |
| | | public String getMale() { |
| | | return bundle.getString("MALE"); |
| | | } |
| | | |
| | | public String getFemale() { |
| | | return bundle.getString("FEMALE"); |
| | | } |
| | | |
| | | public String[] getSexStringsFind() { |
| | | String[] faceSexStr = {getUnLimited(), getMale(), getFemale()}; |
| | | return faceSexStr; |
| | | } |
| | | |
| | | public String[] getIdStringsFind() { |
| | | String[] idStr = {getUnLimited(), getIdCard(), getPassport(),}; |
| | | return idStr; |
| | | } |
| | | |
| | | public String[] getSexStrings() { |
| | | String[] faceSexStr = {getUnKnow(), getMale(), getFemale()}; |
| | | return faceSexStr; |
| | | } |
| | | |
| | | public String[] getIdStrings() { |
| | | String[] idStr = {getUnKnow(), getIdCard(), getPassport(),}; |
| | | return idStr; |
| | | } |
| | | |
| | | public String getIdCard() { |
| | | return bundle.getString("ID_CARD"); |
| | | } |
| | | |
| | | public String getPassport() { |
| | | return bundle.getString("PASSPORT"); |
| | | } |
| | | |
| | | public String getOfficeCard() { |
| | | return bundle.getString("OFFICE_CARD"); |
| | | } |
| | | |
| | | public String getIdType(int idType) { |
| | | String str = ""; |
| | | switch(idType) { |
| | | case 0: |
| | | str = getUnKnow(); |
| | | break; |
| | | case 1: |
| | | str = getIdCard(); |
| | | break; |
| | | case 2: |
| | | str = getPassport(); |
| | | break; |
| | | case 3: |
| | | str = getOfficeCard(); |
| | | break; |
| | | default : |
| | | str = getUnKnow(); |
| | | break; |
| | | } |
| | | return str; |
| | | } |
| | | |
| | | public String getSex(int sex) { |
| | | String str = ""; |
| | | switch(sex) { |
| | | case 0: |
| | | str = getUnKnow(); |
| | | break; |
| | | case 1: |
| | | str = getMale(); |
| | | break; |
| | | case 2: |
| | | str = getFemale(); |
| | | break; |
| | | default : |
| | | str = getUnKnow(); |
| | | break; |
| | | } |
| | | return str; |
| | | } |
| | | |
| | | public String getUnLimited() { |
| | | return bundle.getString("UNLIMITED"); |
| | | } |
| | | |
| | | public String getUnidentified() { |
| | | return bundle.getString("UNIDENTIFIED"); |
| | | } |
| | | |
| | | public String getHaveBeard() { |
| | | return bundle.getString("HAVE_BEARD"); |
| | | } |
| | | |
| | | public String getNoBeard() { |
| | | return bundle.getString("NO_BEARD"); |
| | | } |
| | | |
| | | public String getBeardState(int beard) { |
| | | String str = ""; |
| | | switch (beard) { |
| | | case 0: |
| | | str = getUnKnow(); |
| | | break; |
| | | case 1: |
| | | str = getUnidentified(); |
| | | break; |
| | | case 2: |
| | | str = getNoBeard(); |
| | | break; |
| | | case 3: |
| | | str = getHaveBeard(); |
| | | break; |
| | | default: |
| | | str = getUnKnow(); |
| | | break; |
| | | } |
| | | return str; |
| | | } |
| | | |
| | | public String getOpenMouth() { |
| | | return bundle.getString("OPEN_MOUTH"); |
| | | } |
| | | |
| | | public String getCloseMouth() { |
| | | return bundle.getString("CLOSE_MOUTH"); |
| | | } |
| | | |
| | | public String getMouthState(int mouth) { |
| | | String str = ""; |
| | | switch (mouth) { |
| | | case 0: |
| | | str = getUnKnow(); |
| | | break; |
| | | case 1: |
| | | str = getUnidentified(); |
| | | break; |
| | | case 2: |
| | | str = getCloseMouth(); |
| | | break; |
| | | case 3: |
| | | str = getOpenMouth(); |
| | | break; |
| | | default: |
| | | str = getUnKnow(); |
| | | break; |
| | | } |
| | | return str; |
| | | } |
| | | |
| | | public String getYellowColor() { |
| | | return bundle.getString("YELLOW_COLOR"); |
| | | } |
| | | |
| | | public String getBlackColor() { |
| | | return bundle.getString("BLACK_COLOR"); |
| | | } |
| | | |
| | | public String getWhiteColor() { |
| | | return bundle.getString("WHITE_COLOR"); |
| | | } |
| | | |
| | | public String getColor(int color) { |
| | | String str = ""; |
| | | switch (color) { |
| | | case 0: |
| | | str = getUnKnow(); |
| | | break; |
| | | case 1: |
| | | str = getUnidentified(); |
| | | break; |
| | | case 2: |
| | | str = getYellowColor(); |
| | | break; |
| | | case 3: |
| | | str = getBlackColor(); |
| | | break; |
| | | case 4: |
| | | str = getWhiteColor(); |
| | | break; |
| | | default: |
| | | str = getUnKnow(); |
| | | break; |
| | | } |
| | | return str; |
| | | } |
| | | |
| | | public String getOpenEye() { |
| | | return bundle.getString("OPEN_EYE"); |
| | | } |
| | | |
| | | public String getCloseEye() { |
| | | return bundle.getString("CLOSE_EYE"); |
| | | } |
| | | |
| | | public String getEyeState(int eye) { |
| | | String str = getUnidentified(); |
| | | switch (eye) { |
| | | case 0: |
| | | str = getUnKnow(); |
| | | break; |
| | | case 1: |
| | | str = getUnidentified(); |
| | | break; |
| | | case 2: |
| | | str = getCloseEye(); |
| | | break; |
| | | case 3: |
| | | str = getOpenEye(); |
| | | break; |
| | | default: |
| | | str = getUnKnow(); |
| | | break; |
| | | } |
| | | return str; |
| | | } |
| | | |
| | | public String getSmile() { |
| | | return bundle.getString("SMILE"); |
| | | } |
| | | |
| | | public String getAnger() { |
| | | return bundle.getString("ANGER"); |
| | | } |
| | | |
| | | public String getSadness() { |
| | | return bundle.getString("SADNESS"); |
| | | } |
| | | |
| | | public String getDisgust() { |
| | | return bundle.getString("DISGUST"); |
| | | } |
| | | |
| | | public String getFear() { |
| | | return bundle.getString("FEAR"); |
| | | } |
| | | |
| | | public String getSurprise() { |
| | | return bundle.getString("SURPRISE"); |
| | | } |
| | | |
| | | public String getNeutral() { |
| | | return bundle.getString("NEUTRAL"); |
| | | } |
| | | |
| | | public String getLaugh() { |
| | | return bundle.getString("LAUGH"); |
| | | } |
| | | |
| | | public String getFaceFeature(int type) { |
| | | String str = ""; |
| | | switch (type) { |
| | | case 0: |
| | | str = getUnKnow(); |
| | | break; |
| | | case 1: |
| | | str = getWearGlasses(); |
| | | break; |
| | | case 2: |
| | | str = getSmile(); |
| | | break; |
| | | case 3: |
| | | str = getAnger(); |
| | | break; |
| | | case 4: |
| | | str = getSadness(); |
| | | break; |
| | | case 5: |
| | | str = getDisgust(); |
| | | break; |
| | | case 6: |
| | | str = getFear(); |
| | | break; |
| | | case 7: |
| | | str = getSurprise(); |
| | | break; |
| | | case 8: |
| | | str = getNeutral(); |
| | | break; |
| | | case 9: |
| | | str = getLaugh(); |
| | | break; |
| | | default: |
| | | str = getUnKnow(); |
| | | break; |
| | | } |
| | | return str; |
| | | } |
| | | |
| | | public String getWearMask() { |
| | | return bundle.getString("WEAR_MASK"); |
| | | } |
| | | |
| | | public String geNoMask() { |
| | | return bundle.getString("NO_MASK"); |
| | | } |
| | | |
| | | public String getMaskState(int type) { |
| | | String maskStateStr = ""; |
| | | switch (type) { |
| | | case 0: |
| | | maskStateStr = getUnKnow(); |
| | | break; |
| | | case 1: |
| | | maskStateStr = getUnidentified(); |
| | | break; |
| | | case 2: |
| | | maskStateStr = geNoMask(); |
| | | break; |
| | | case 3: |
| | | maskStateStr = getWearMask(); |
| | | break; |
| | | default: |
| | | maskStateStr = getUnKnow(); |
| | | break; |
| | | } |
| | | return maskStateStr; |
| | | } |
| | | |
| | | public String getWearGlasses() { |
| | | return bundle.getString("WEAR_GLASSES"); |
| | | } |
| | | |
| | | public String getNoGlasses() { |
| | | return bundle.getString("NO_GLASSES"); |
| | | } |
| | | |
| | | public String getGlasses(int byGlasses) { |
| | | String glassesStr = ""; |
| | | switch (byGlasses) { |
| | | case 0: |
| | | glassesStr = getUnKnow(); |
| | | break; |
| | | case 1: |
| | | glassesStr = getNoGlasses(); |
| | | break; |
| | | case 2: |
| | | glassesStr = getWearGlasses(); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | return glassesStr; |
| | | } |
| | | |
| | | public String getAdd() { |
| | | return bundle.getString("ADD"); |
| | | } |
| | | |
| | | public String getModify() { |
| | | return bundle.getString("MODIFY"); |
| | | } |
| | | |
| | | public String getSelectData() { |
| | | return bundle.getString("SELECT_DATA"); |
| | | } |
| | | |
| | | public String getDelete() { |
| | | return bundle.getString("DELETE"); |
| | | } |
| | | |
| | | public String getFresh() { |
| | | return bundle.getString("FRESH"); |
| | | } |
| | | |
| | | public String getAddGroup() { |
| | | return bundle.getString("ADD_GROUP"); |
| | | } |
| | | |
| | | public String getModifyGroup() { |
| | | return bundle.getString("MODIFY_GROUP"); |
| | | } |
| | | |
| | | public String getDelGroup() { |
| | | return bundle.getString("DEL_GROUP"); |
| | | } |
| | | |
| | | public String getDisposition() { |
| | | return bundle.getString("DISPOSITION"); |
| | | } |
| | | |
| | | public String getDelDisposition() { |
| | | return bundle.getString("DEL_DISPOSITION"); |
| | | } |
| | | |
| | | public String getSimilarityRange() { |
| | | return bundle.getString("SIMILARITY_RANGE"); |
| | | } |
| | | |
| | | public String getFindCondition() { |
| | | return bundle.getString("FIND_CONDITION"); |
| | | } |
| | | |
| | | public String getFindPerson() { |
| | | return bundle.getString("FIND_PERSON"); |
| | | } |
| | | |
| | | public String getAddPerson() { |
| | | return bundle.getString("ADD_PERSON"); |
| | | } |
| | | |
| | | public String getModifyPerson() { |
| | | return bundle.getString("MODIFY_PERSON"); |
| | | } |
| | | |
| | | public String getDelPerson() { |
| | | return bundle.getString("DEL_PERSON"); |
| | | } |
| | | |
| | | public String getPreviousPage() { |
| | | return bundle.getString("PREVIOUSPAGE"); |
| | | } |
| | | |
| | | public String getLastPage() { |
| | | return bundle.getString("LASTPAGE"); |
| | | } |
| | | |
| | | public String getSelectPicture() { |
| | | return bundle.getString("SELECT_PICTURE"); |
| | | } |
| | | |
| | | public String getSearchByPic() { |
| | | return bundle.getString("SEARCH_BY_PIC"); |
| | | } |
| | | |
| | | public String getDownloadQueryPicture() { |
| | | return bundle.getString("DOWNLOAD_QUERY_PICTURE"); |
| | | } |
| | | |
| | | public String getFaceLibrary() { |
| | | return bundle.getString("FACE_LIBRARY"); |
| | | } |
| | | |
| | | public String getChooseFacePic() { |
| | | return bundle.getString("CHOOSE_FACE_PIC"); |
| | | } |
| | | |
| | | public String getHistoryLibrary() { |
| | | return bundle.getString("HISTORY_LIBRARY"); |
| | | } |
| | | |
| | | public String getEventType() { |
| | | return bundle.getString("EVENT_TYPE"); |
| | | } |
| | | |
| | | public String getStranger() { |
| | | return bundle.getString("STRANGER"); |
| | | } |
| | | |
| | | public String getInputGroupName() { |
| | | return bundle.getString("PLEASE_INPUT_GROUPNAME"); |
| | | } |
| | | |
| | | public String getSelectGroup() { |
| | | return bundle.getString("PLEASE_SELECT_GROUP"); |
| | | } |
| | | |
| | | public String getSelectPerson() { |
| | | return bundle.getString("PLEASE_SELECT_PERSON"); |
| | | } |
| | | |
| | | public String getAddDispositionInfo() { |
| | | return bundle.getString("PLEASE_ADD_DISPOSITION_INFO"); |
| | | } |
| | | |
| | | public String getSelectDelDispositionInfo() { |
| | | return bundle.getString("PLEASE_SELECT_DEL_DISPOSITION_INFO"); |
| | | } |
| | | |
| | | public String getPagesNumber() { |
| | | return bundle.getString("PAGES_NUMBER"); |
| | | } |
| | | |
| | | public String getAutoRegister() { |
| | | return bundle.getString("AUTOREGISTER"); |
| | | } |
| | | |
| | | public String getAutoRegisterListen() { |
| | | return bundle.getString("AUTOREGISTER_LISTEN"); |
| | | } |
| | | |
| | | public String getDeviceConfig() { |
| | | return bundle.getString("DEVICE_CONFIG"); |
| | | } |
| | | |
| | | public String getDeviceList() { |
| | | return bundle.getString("DEVICE_LIST"); |
| | | } |
| | | |
| | | public String getDeviceManager() { |
| | | return bundle.getString("DEVICE_MANAGER"); |
| | | } |
| | | |
| | | public String getAddDevice() { |
| | | return bundle.getString("ADD_DEVICE"); |
| | | } |
| | | |
| | | public String getModifyDevice() { |
| | | return bundle.getString("MODIFY_DEVICE"); |
| | | } |
| | | |
| | | public String getDeleteDevice() { |
| | | return bundle.getString("DELETE_DEVICE"); |
| | | } |
| | | |
| | | public String getClearDevice() { |
| | | return bundle.getString("CLEAR_DEVICE"); |
| | | } |
| | | |
| | | public String getImportDevice() { |
| | | return bundle.getString("IMPORT_DEVICE"); |
| | | } |
| | | |
| | | public String getExportDevice() { |
| | | return bundle.getString("EXPORT_DEVICE"); |
| | | } |
| | | |
| | | public String getFunctionOperate() { |
| | | return bundle.getString("FUNCTION") + bundle.getString("OPERATE"); |
| | | } |
| | | |
| | | public String getDeviceID() { |
| | | return bundle.getString("DEVICE_ID"); |
| | | } |
| | | |
| | | public String getEnable() { |
| | | return bundle.getString("ENABLE"); |
| | | } |
| | | |
| | | public String getRegisterAddress() { |
| | | return bundle.getString("REGISTER_ADDRESS"); |
| | | } |
| | | |
| | | public String getRegisterPort() { |
| | | return bundle.getString("REGISTER_PORT"); |
| | | } |
| | | |
| | | public String getGet() { |
| | | return bundle.getString("GET"); |
| | | } |
| | | |
| | | public String getSet() { |
| | | return bundle.getString("SET"); |
| | | } |
| | | |
| | | public String getAlreadyExisted() { |
| | | return bundle.getString("ALREADY_EXISTED"); |
| | | } |
| | | |
| | | public String getWhetherNoToCover() { |
| | | return bundle.getString("ALREADY_EXISTED_WHETHER_OR_NOT_TO_COVER"); |
| | | } |
| | | |
| | | public String getFileOpened(){ |
| | | return bundle.getString("FILE_OPEN_PLEASE_CLOSE_FILE"); |
| | | } |
| | | |
| | | public String getImportCompletion() { |
| | | return bundle.getString("IMPORT_COMPLETION"); |
| | | } |
| | | |
| | | public String getExportCompletion() { |
| | | return bundle.getString("EXPORT_COMPLETION"); |
| | | } |
| | | |
| | | public String getFileNotExist() { |
| | | return bundle.getString("FILE_NOT_EXIST"); |
| | | } |
| | | |
| | | public String getRecord() { |
| | | return bundle.getString("RECORD"); |
| | | } |
| | | |
| | | public String getInput() { |
| | | return bundle.getString("PLEASE_INPUT"); |
| | | } |
| | | |
| | | public String getMaximumSupport() { |
| | | return bundle.getString("MAX_SUPPORT_100"); |
| | | } |
| | | |
| | | public String getDeviceLogined() { |
| | | return bundle.getString("DEVICE_LOGIN"); |
| | | } |
| | | |
| | | public String getAttendance() { |
| | | return bundle.getString("ATTENDANCE"); |
| | | } |
| | | |
| | | public String getFingerPrintOperate() { |
| | | return bundle.getString("FINGERPRINT_OPERATE"); |
| | | } |
| | | |
| | | public String getUserOperate() { |
| | | return bundle.getString("USER_OPERATE"); |
| | | } |
| | | |
| | | public String getOperateByUserId() { |
| | | return bundle.getString("OPERATE_BY_USER_ID"); |
| | | } |
| | | |
| | | public String getOperateByFingerPrintId() { |
| | | return bundle.getString("OPERATE_BY_FINGERPRINT_ID"); |
| | | } |
| | | |
| | | public String getSearch() { |
| | | return bundle.getString("SEARCH"); |
| | | } |
| | | |
| | | public String getQueryCondition() { |
| | | return bundle.getString("QUERY_CONDITION"); |
| | | } |
| | | |
| | | public String getFingerPrintId() { |
| | | return bundle.getString("FINGERPRINT_ID"); |
| | | } |
| | | |
| | | public String getSearchFingerPrint() { |
| | | return bundle.getString("SEARCH_FINGERPRINT"); |
| | | } |
| | | |
| | | public String getAddFingerPrint() { |
| | | return bundle.getString("ADD_FINGERPRINT"); |
| | | } |
| | | |
| | | public String getDeleteFingerPrint() { |
| | | return bundle.getString("DELETE_FINGERPRINT"); |
| | | } |
| | | |
| | | public String getSubscribe() { |
| | | return bundle.getString("SUBSCRIBE"); |
| | | } |
| | | |
| | | public String getUnSubscribe() { |
| | | return bundle.getString("UNSUBSCRIBE"); |
| | | } |
| | | |
| | | public String getUserList() { |
| | | return bundle.getString("USER_LIST"); |
| | | } |
| | | |
| | | public String getNextPage() { |
| | | return bundle.getString("NEXT_PAGE"); |
| | | } |
| | | |
| | | public String getUserInfo() { |
| | | return bundle.getString("USER_INFO"); |
| | | } |
| | | |
| | | public String getDoorOpenMethod() { |
| | | return bundle.getString("DOOROPEN_METHOD"); |
| | | } |
| | | |
| | | public String getFingerPrint() { |
| | | return bundle.getString("FINGERPRINT"); |
| | | } |
| | | |
| | | public String getFingerPrintInfo() { |
| | | return bundle.getString("FINGERPRINT_INFO"); |
| | | } |
| | | |
| | | public String getFingerPrintData() { |
| | | return bundle.getString("FINGERPRINT_DATA"); |
| | | } |
| | | |
| | | public String getCard() { |
| | | return bundle.getString("CARD"); |
| | | } |
| | | |
| | | public String getDeleteFingerPrintPrompt() { |
| | | return bundle.getString("DELETE_FINGERPRINT_PROMPT"); |
| | | } |
| | | |
| | | public String getSubscribeFailed() { |
| | | return bundle.getString("SUBSCRIBE_FAILED"); |
| | | } |
| | | |
| | | public String getFingerPrintIdIllegal() { |
| | | return bundle.getString("FINGERPRINT_ID_ILLEGAL"); |
| | | } |
| | | |
| | | public String getcFingerPrintCollection() { |
| | | return bundle.getString("FINGERPRINT_COLLECTION"); |
| | | } |
| | | |
| | | public String getStartCollection() { |
| | | return bundle.getString("START_COLLECTION"); |
| | | } |
| | | |
| | | public String getStopCollection() { |
| | | return bundle.getString("STOP_COLLECTION"); |
| | | } |
| | | |
| | | public String getInCollection() { |
| | | return bundle.getString("IN_THE_COLLECTION"); |
| | | } |
| | | |
| | | public String getcCompleteCollection() { |
| | | return bundle.getString("COLLECTION_COMPLETED"); |
| | | } |
| | | |
| | | public String getCollectionFailed() { |
| | | return bundle.getString("COLLECTION_FAILED"); |
| | | } |
| | | |
| | | public String getFingerPrintIdNotExist() { |
| | | return bundle.getString("FINGERPRINT_ID_NOT_EXIST"); |
| | | } |
| | | |
| | | public String getUserIdExceedLength() { |
| | | return bundle.getString("USER_ID_EXCEED_LENGTH"); |
| | | } |
| | | |
| | | public String getUserNameExceedLength() { |
| | | return bundle.getString("USER_NAME_EXCEED_LENGTH"); |
| | | } |
| | | |
| | | public String getCardNoExceedLength() { |
| | | return bundle.getString("CARD_NO_EXCEED_LENGTH"); |
| | | } |
| | | |
| | | public String getCardNameExceedLength() { |
| | | return bundle.getString("CARD_NAME_EXCEED_LENGTH"); |
| | | } |
| | | |
| | | public String getCardPasswdExceedLength() { |
| | | return bundle.getString("CARD_PASSWD_EXCEED_LENGTH"); |
| | | } |
| | | |
| | | public String getGate() { |
| | | return bundle.getString("GATE"); |
| | | } |
| | | |
| | | public String getCardOperate() { |
| | | return bundle.getString("CARD_OPERATE"); |
| | | } |
| | | |
| | | public String getCardInfo() { |
| | | return bundle.getString("CARD_INFO"); |
| | | } |
| | | |
| | | public String getCardManager() { |
| | | return bundle.getString("CARD_MANAGER"); |
| | | } |
| | | |
| | | public String getClear() { |
| | | return bundle.getString("CLEAR"); |
| | | } |
| | | |
| | | public String getOpenStatus() { |
| | | return bundle.getString("OPEN_STATUS"); |
| | | } |
| | | |
| | | public String getOpenMethod() { |
| | | return bundle.getString("OPEN_METHOD"); |
| | | } |
| | | |
| | | public String getCardName() { |
| | | return bundle.getString("CARD_NAME"); |
| | | } |
| | | |
| | | public String getCardStatus() { |
| | | return bundle.getString("CARD_STATUS"); |
| | | } |
| | | |
| | | public String getCardPassword() { |
| | | return bundle.getString("CARD_PASSWORD"); |
| | | } |
| | | |
| | | public String getCardType() { |
| | | return bundle.getString("CARD_TYPE"); |
| | | } |
| | | |
| | | public String getCardNum() { |
| | | return bundle.getString("CARD_NUM"); |
| | | } |
| | | |
| | | public String getUseTimes() { |
| | | return bundle.getString("USE_TIMES"); |
| | | } |
| | | |
| | | public String getIsFirstEnter() { |
| | | return bundle.getString("IS_FIRST_ENTER"); |
| | | } |
| | | |
| | | public String getIsValid() { |
| | | return bundle.getString("IS_VALID"); |
| | | } |
| | | |
| | | public String getValidPeriod() { |
| | | return bundle.getString("VALID_PERIOD"); |
| | | } |
| | | |
| | | public String getValidStartTime() { |
| | | return bundle.getString("VALID_START_TIME"); |
| | | } |
| | | |
| | | public String getValidEndTime() { |
| | | return bundle.getString("VALID_END_TIME"); |
| | | } |
| | | |
| | | public String getRecordNo() { |
| | | return bundle.getString("RECORD_NO"); |
| | | } |
| | | |
| | | public String getFirstEnter() { |
| | | return bundle.getString("FIRST_ENTER"); |
| | | } |
| | | |
| | | public String getNoFirstEnter() { |
| | | return bundle.getString("NO_FIRST_ENTER"); |
| | | } |
| | | |
| | | public String getValid() { |
| | | return bundle.getString("VALID"); |
| | | } |
| | | |
| | | public String getInValid() { |
| | | return bundle.getString("INVALID"); |
| | | } |
| | | |
| | | public String getSelectCard() { |
| | | return bundle.getString("PLEASE_SELECT_CARD"); |
| | | } |
| | | |
| | | public String getInputCardNo() { |
| | | return bundle.getString("PLEASE_INPUT_CARDNO"); |
| | | } |
| | | |
| | | public String getInputUserId() { |
| | | return bundle.getString("PLEASE_INPUT_USERID"); |
| | | } |
| | | |
| | | public String getWantClearAllInfo() { |
| | | return bundle.getString("WANT_CLEAR_ALL_INFO"); |
| | | } |
| | | |
| | | public String getFailedAddCard() { |
| | | return bundle.getString("ADD_CARD_INDO_FAILED"); |
| | | } |
| | | |
| | | public String getSucceedAddCardAndPerson() { |
| | | return bundle.getString("ADD_CARD_INFO_AND_PERSON_PICTURE_SUCCEED"); |
| | | } |
| | | |
| | | public String getSucceedAddCardButFailedAddPerson() { |
| | | return bundle.getString("ADD_CARD_INFO_SUCCEED_BUT_ADD_PERSON_PICTURE_FAILED"); |
| | | } |
| | | |
| | | public String getCardExistedSucceedAddPerson() { |
| | | return bundle.getString("CARD_EXISTED_ADD_PERSON_PICTURE_SUCCEED"); |
| | | } |
| | | |
| | | public String getSucceedModifyCard() { |
| | | return bundle.getString("MODIFY_CARD_INFO_SUCCEED"); |
| | | } |
| | | |
| | | public String getFailedModifyCard() { |
| | | return bundle.getString("MODIFY_CARD_INFO_FAILED"); |
| | | } |
| | | |
| | | public String getSucceedModifyCardAndPerson() { |
| | | return bundle.getString("MODIFY_CARD_INFO_AND_PERSON_PICTURE_SUCCEED"); |
| | | } |
| | | |
| | | public String getSucceedModifyCardButFailedModifyPerson() { |
| | | return bundle.getString("MODIFY_CARD_INFO_SUCCEED_BUT_MODIFY_PERSON_PICTURE_FAILED"); |
| | | } |
| | | |
| | | public String[] getCardTable() { |
| | | return new String[] {getIndex(), |
| | | getCardNo(), |
| | | getCardName(), |
| | | getRecordNo(), |
| | | getUserId(), |
| | | getCardPassword(), |
| | | getCardStatus(), |
| | | getCardType(), |
| | | getUseTimes(), |
| | | getIsFirstEnter(), |
| | | getIsValid(), |
| | | getValidStartTime(), |
| | | getValidEndTime()}; |
| | | } |
| | | |
| | | /* |
| | | * 用于列表显示 |
| | | */ |
| | | public String getCardStatus(int status) { |
| | | String statusString = ""; |
| | | switch(status) { |
| | | case NET_ACCESSCTLCARD_STATE.NET_ACCESSCTLCARD_STATE_UNKNOWN: // 未知 |
| | | statusString = bundle.getString("STATE_UNKNOWN"); |
| | | break; |
| | | case NET_ACCESSCTLCARD_STATE.NET_ACCESSCTLCARD_STATE_NORMAL: // 正常 |
| | | statusString = bundle.getString("STATE_NORMAL"); |
| | | break; |
| | | case NET_ACCESSCTLCARD_STATE.NET_ACCESSCTLCARD_STATE_LOSE: // 挂失 |
| | | statusString = bundle.getString("STATE_LOSE"); |
| | | break; |
| | | case NET_ACCESSCTLCARD_STATE.NET_ACCESSCTLCARD_STATE_LOGOFF: // 注销 |
| | | statusString = bundle.getString("STATE_LOGOFF"); |
| | | break; |
| | | case NET_ACCESSCTLCARD_STATE.NET_ACCESSCTLCARD_STATE_FREEZE: // 冻结 |
| | | statusString = bundle.getString("STATE_FREEZE"); |
| | | break; |
| | | case NET_ACCESSCTLCARD_STATE.NET_ACCESSCTLCARD_STATE_ARREARAGE: // 欠费 |
| | | statusString = bundle.getString("STATE_ARREARS"); |
| | | break; |
| | | case NET_ACCESSCTLCARD_STATE.NET_ACCESSCTLCARD_STATE_OVERDUE: // 逾期 |
| | | statusString = bundle.getString("STATE_OVERDUE"); |
| | | break; |
| | | case NET_ACCESSCTLCARD_STATE.NET_ACCESSCTLCARD_STATE_PREARREARAGE: // 预欠费 |
| | | statusString = bundle.getString("STATE_PREARREARS"); |
| | | break; |
| | | default: |
| | | statusString = bundle.getString("STATE_UNKNOWN"); |
| | | break; |
| | | } |
| | | |
| | | return statusString; |
| | | } |
| | | |
| | | /* |
| | | * 根据控件的索引,获取对应的卡状态的Int值, 用于添加 和 修改卡信息 |
| | | */ |
| | | public int getCardStatusInt(int index) { |
| | | int status = 0; |
| | | switch(index) { |
| | | case 1: // 未知 |
| | | status = NET_ACCESSCTLCARD_STATE.NET_ACCESSCTLCARD_STATE_UNKNOWN; |
| | | break; |
| | | case 0: // 正常 |
| | | status = NET_ACCESSCTLCARD_STATE.NET_ACCESSCTLCARD_STATE_NORMAL; |
| | | break; |
| | | case 2: // 挂失 |
| | | status = NET_ACCESSCTLCARD_STATE.NET_ACCESSCTLCARD_STATE_LOSE; |
| | | break; |
| | | case 3: // 注销 |
| | | status = NET_ACCESSCTLCARD_STATE.NET_ACCESSCTLCARD_STATE_LOGOFF; |
| | | break; |
| | | case 4: // 冻结 |
| | | status = NET_ACCESSCTLCARD_STATE.NET_ACCESSCTLCARD_STATE_FREEZE; |
| | | break; |
| | | case 5: // 欠费 |
| | | status = NET_ACCESSCTLCARD_STATE.NET_ACCESSCTLCARD_STATE_ARREARAGE; |
| | | break; |
| | | case 6: // 逾期 |
| | | status = NET_ACCESSCTLCARD_STATE.NET_ACCESSCTLCARD_STATE_OVERDUE; |
| | | break; |
| | | case 7: // 预欠费 |
| | | status = NET_ACCESSCTLCARD_STATE.NET_ACCESSCTLCARD_STATE_PREARREARAGE; |
| | | break; |
| | | default: |
| | | status = NET_ACCESSCTLCARD_STATE.NET_ACCESSCTLCARD_STATE_UNKNOWN; |
| | | break; |
| | | } |
| | | |
| | | return status; |
| | | } |
| | | |
| | | /* |
| | | * 根据字符串,获取控件对应的索引 |
| | | */ |
| | | public int getCardStatusChomBoxIndex(String status) { |
| | | int index = 0; |
| | | |
| | | if(status.equals(bundle.getString("STATE_UNKNOWN"))) { |
| | | index = 1; |
| | | } else if(status.equals(bundle.getString("STATE_NORMAL"))){ |
| | | index = 0; |
| | | } else if(status.equals(bundle.getString("STATE_LOSE"))) { |
| | | index = 2; |
| | | } else if(status.equals(bundle.getString("STATE_LOGOFF"))) { |
| | | index = 3; |
| | | } else if(status.equals(bundle.getString("STATE_FREEZE"))) { |
| | | index = 4; |
| | | } else if(status.equals(bundle.getString("STATE_ARREARS"))) { |
| | | index = 5; |
| | | } else if(status.equals(bundle.getString("STATE_OVERDUE"))) { |
| | | index = 6; |
| | | } else if(status.equals(bundle.getString("STATE_PREARREARS"))) { |
| | | index = 7; |
| | | } |
| | | |
| | | return index; |
| | | } |
| | | |
| | | public String[] getCardStatusList() { |
| | | return new String[]{ |
| | | bundle.getString("STATE_NORMAL"), |
| | | bundle.getString("STATE_UNKNOWN"), |
| | | bundle.getString("STATE_LOSE"), |
| | | bundle.getString("STATE_LOGOFF"), |
| | | bundle.getString("STATE_FREEZE"), |
| | | bundle.getString("STATE_ARREARS"), |
| | | bundle.getString("STATE_OVERDUE"), |
| | | bundle.getString("STATE_PREARREARS")}; |
| | | } |
| | | |
| | | /* |
| | | * 用于列表显示 |
| | | */ |
| | | public String getCardType(int type) { |
| | | String cardTypeString = ""; |
| | | |
| | | switch(type) { |
| | | case NET_ACCESSCTLCARD_TYPE.NET_ACCESSCTLCARD_TYPE_UNKNOWN: // 未知 |
| | | cardTypeString = bundle.getString("CARD_UNKNOW"); |
| | | break; |
| | | case NET_ACCESSCTLCARD_TYPE.NET_ACCESSCTLCARD_TYPE_GENERAL: // 一般卡 |
| | | cardTypeString = bundle.getString("CARD_GENERAL"); |
| | | break; |
| | | case NET_ACCESSCTLCARD_TYPE.NET_ACCESSCTLCARD_TYPE_VIP: // |
| | | cardTypeString = bundle.getString("CARD_VIP"); |
| | | break; |
| | | case NET_ACCESSCTLCARD_TYPE.NET_ACCESSCTLCARD_TYPE_GUEST: // 来宾卡 |
| | | cardTypeString = bundle.getString("CARD_GUEST"); |
| | | break; |
| | | case NET_ACCESSCTLCARD_TYPE.NET_ACCESSCTLCARD_TYPE_PATROL: // 巡逻卡 |
| | | cardTypeString = bundle.getString("CARD_PATROL"); |
| | | break; |
| | | case NET_ACCESSCTLCARD_TYPE.NET_ACCESSCTLCARD_TYPE_BLACKLIST: // 禁止名单卡 |
| | | cardTypeString = bundle.getString("CARD_BACKLIST"); |
| | | break; |
| | | case NET_ACCESSCTLCARD_TYPE.NET_ACCESSCTLCARD_TYPE_CORCE: // 胁迫卡 |
| | | cardTypeString = bundle.getString("CARD_COERCE"); |
| | | break; |
| | | case NET_ACCESSCTLCARD_TYPE.NET_ACCESSCTLCARD_TYPE_POLLING: // 巡检卡 |
| | | cardTypeString = bundle.getString("CARD_POLLING"); |
| | | break; |
| | | case NET_ACCESSCTLCARD_TYPE.NET_ACCESSCTLCARD_TYPE_MOTHERCARD: // 母卡 |
| | | cardTypeString = bundle.getString("CARD_MOTHERCARD"); |
| | | break; |
| | | default: |
| | | cardTypeString = bundle.getString("CARD_UNKNOW"); |
| | | break; |
| | | } |
| | | |
| | | return cardTypeString; |
| | | } |
| | | |
| | | /* |
| | | * 根据控件索引,获取对应的卡类型Int值 |
| | | */ |
| | | public int getCardTypeInt(int index) { |
| | | int type = 0; |
| | | |
| | | switch(index) { |
| | | case 1: |
| | | type = NET_ACCESSCTLCARD_TYPE.NET_ACCESSCTLCARD_TYPE_UNKNOWN; |
| | | break; |
| | | case 0: |
| | | type = NET_ACCESSCTLCARD_TYPE.NET_ACCESSCTLCARD_TYPE_GENERAL; |
| | | break; |
| | | case 2: |
| | | type = NET_ACCESSCTLCARD_TYPE.NET_ACCESSCTLCARD_TYPE_VIP; |
| | | break; |
| | | case 3: |
| | | type = NET_ACCESSCTLCARD_TYPE.NET_ACCESSCTLCARD_TYPE_GUEST; |
| | | break; |
| | | case 4: |
| | | type = NET_ACCESSCTLCARD_TYPE.NET_ACCESSCTLCARD_TYPE_PATROL; |
| | | break; |
| | | case 5: |
| | | type = NET_ACCESSCTLCARD_TYPE.NET_ACCESSCTLCARD_TYPE_BLACKLIST; |
| | | break; |
| | | case 6: |
| | | type = NET_ACCESSCTLCARD_TYPE.NET_ACCESSCTLCARD_TYPE_CORCE; |
| | | break; |
| | | case 7: |
| | | type = NET_ACCESSCTLCARD_TYPE.NET_ACCESSCTLCARD_TYPE_POLLING; |
| | | break; |
| | | case 8: |
| | | type = NET_ACCESSCTLCARD_TYPE.NET_ACCESSCTLCARD_TYPE_MOTHERCARD; |
| | | break; |
| | | default: |
| | | type = NET_ACCESSCTLCARD_TYPE.NET_ACCESSCTLCARD_TYPE_UNKNOWN; |
| | | break; |
| | | } |
| | | |
| | | return type; |
| | | } |
| | | |
| | | /* |
| | | * 根据字符串,获取控件的索引 |
| | | */ |
| | | public int getCardTypeChomBoxIndex(String type) { |
| | | int index = 0; |
| | | |
| | | if(type.equals(bundle.getString("CARD_UNKNOW"))) { |
| | | index = 1; |
| | | } else if(type.equals(bundle.getString("CARD_GENERAL"))){ |
| | | index = 0; |
| | | } else if(type.equals(bundle.getString("CARD_VIP"))) { |
| | | index = 2; |
| | | } else if(type.equals(bundle.getString("CARD_GUEST"))) { |
| | | index = 3; |
| | | } else if(type.equals(bundle.getString("CARD_PATROL"))) { |
| | | index = 4; |
| | | } else if(type.equals(bundle.getString("CARD_BACKLIST"))) { |
| | | index = 5; |
| | | } else if(type.equals(bundle.getString("CARD_COERCE"))) { |
| | | index = 6; |
| | | } else if(type.equals(bundle.getString("CARD_POLLING"))) { |
| | | index = 7; |
| | | } else if(type.equals(bundle.getString("CARD_MOTHERCARD"))) { |
| | | index = 8; |
| | | } |
| | | |
| | | return index; |
| | | } |
| | | |
| | | public String[] getCardTypeList() { |
| | | return new String[]{ |
| | | bundle.getString("CARD_GENERAL"), |
| | | bundle.getString("CARD_UNKNOW"), |
| | | bundle.getString("CARD_VIP"), |
| | | bundle.getString("CARD_GUEST"), |
| | | bundle.getString("CARD_PATROL"), |
| | | bundle.getString("CARD_BACKLIST"), |
| | | bundle.getString("CARD_COERCE"), |
| | | bundle.getString("CARD_POLLING"), |
| | | bundle.getString("CARD_MOTHERCARD")}; |
| | | } |
| | | |
| | | public String getMaskStatus(int emMaskStatus) { |
| | | String MaskStatus = ""; |
| | | switch(emMaskStatus) { |
| | | case EM_MASK_STATE_TYPE.EM_MASK_STATE_UNKNOWN: |
| | | MaskStatus = bundle.getString("EM_MASK_STATE_UNKNOWN"); |
| | | break; |
| | | case EM_MASK_STATE_TYPE.EM_MASK_STATE_NODISTI: |
| | | MaskStatus = bundle.getString("EM_MASK_STATE_NODISTI"); |
| | | break; |
| | | case EM_MASK_STATE_TYPE.EM_MASK_STATE_NOMASK: |
| | | MaskStatus = bundle.getString("EM_MASK_STATE_NOMASK"); |
| | | break; |
| | | case EM_MASK_STATE_TYPE.EM_MASK_STATE_WEAR: |
| | | MaskStatus = bundle.getString("EM_MASK_STATE_WEAR"); |
| | | break; |
| | | } |
| | | return MaskStatus; |
| | | } |
| | | |
| | | public String getOpenMethods(int emOpenMethod) { |
| | | String openMethods = ""; |
| | | switch(emOpenMethod) { |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_UNKNOWN: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_UNKNOWN"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_PWD_ONLY: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_PWD_ONLY"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_CARD: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_CARD"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_CARD_FIRST: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_CARD_FIRST"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_PWD_FIRST: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_PWD_FIRST"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_REMOTE: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_REMOTE"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_BUTTON: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_BUTTON"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_PWD_CARD_FINGERPRINT: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_PWD_CARD_FINGERPRINT"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_PWD_FINGERPRINT: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_PWD_FINGERPRINT"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_CARD_FINGERPRINT: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_CARD_FINGERPRINT"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_PERSONS: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_PERSONS"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_KEY: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_KEY"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_COERCE_PWD: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_COERCE_PWD"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_QRCODE: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_QRCODE"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_FACE_RECOGNITION: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_FACE_RECOGNITION"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_FACEIDCARD: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_FACEIDCARD"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_FACEIDCARD_AND_IDCARD: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_FACEIDCARD_AND_IDCARD"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_BLUETOOTH: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_BLUETOOTH"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_CUSTOM_PASSWORD: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_CUSTOM_PASSWORD"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_USERID_AND_PWD: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_USERID_AND_PWD"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_FACE_AND_PWD: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_FACE_AND_PWD"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_AND_PWD: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_AND_PWD"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_AND_FACE: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_AND_FACE"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_CARD_AND_FACE: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_CARD_AND_FACE"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_FACE_OR_PWD: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_FACE_OR_PWD"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_OR_PWD: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_OR_PWD"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_OR_FACE: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_OR_FACE"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FACE: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FACE"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FINGERPRINT: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FINGERPRINT"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_AND_FACE_AND_PWD: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_AND_FACE_AND_PWD"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_CARD_AND_FACE_AND_PWD: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_CARD_AND_FACE_AND_PWD"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_CARD_AND_FINGERPRINT_AND_PWD: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_CARD_AND_FINGERPRINT_AND_PWD"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_CARD_AND_PWD_AND_FACE: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_CARD_AND_PWD_AND_FACE"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_OR_FACE_OR_PWD: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_OR_FACE_OR_PWD"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FACE_OR_PWD: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FACE_OR_PWD"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FINGERPRINT_OR_FACE: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FINGERPRINT_OR_FACE"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_CARD_AND_FINGERPRINT_AND_FACE_AND_PWD: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_CARD_AND_FINGERPRINT_AND_FACE_AND_PWD"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FINGERPRINT_OR_FACE_OR_PWD: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FINGERPRINT_OR_FACE_OR_PWD"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_FACEIPCARDANDIDCARD_OR_CARD_OR_FACE: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_FACEIPCARDANDIDCARD_OR_CARD_OR_FACE"); |
| | | break; |
| | | case NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_FACEIDCARD_OR_CARD_OR_FACE: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_FACEIDCARD_OR_CARD_OR_FACE"); |
| | | break; |
| | | default: |
| | | openMethods = bundle.getString("NET_ACCESS_DOOROPEN_METHOD_UNKNOWN"); |
| | | break; |
| | | } |
| | | |
| | | return openMethods; |
| | | } |
| | | |
| | | public String getShowInfo(String tag) { |
| | | try { |
| | | return bundle.getString(tag); |
| | | }catch(Exception e) { |
| | | return tag; |
| | | } |
| | | } |
| | | |
| | | public String getThermalCamera() { |
| | | return getShowInfo("THERMAL_CAMERA"); |
| | | } |
| | | |
| | | public String[] getMeterTypeList() { |
| | | String[] meterTypes = {getShowInfo("SPOT"), getShowInfo("LINE"), getShowInfo("AREA")}; |
| | | |
| | | return meterTypes; |
| | | } |
| | | |
| | | public String[] getTemperUnitList() { |
| | | return new String[]{getShowInfo("CENTIGRADE"), getShowInfo("FAHRENHEIT")}; |
| | | } |
| | | |
| | | public String[] getPeriodList() { |
| | | return new String[] {getShowInfo("FIVE_MINUTES"), getShowInfo("TEN_MINUTES"), |
| | | getShowInfo("FIFTEEN_MINUTES"), getShowInfo("THIRTY_MINUTES")}; |
| | | } |
| | | |
| | | public String[] getTemperStatusList() { |
| | | return new String[]{getShowInfo("IDLE"), getShowInfo("ACQUIRING")}; |
| | | } |
| | | |
| | | public String getSearchingWait() { |
| | | return bundle.getString("SEARCHING_WAITING"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | ///////////// Human Number Statistic /////////////// |
| | | |
| | | public String getHumanNumberStatistic() { |
| | | return bundle.getString("HUMAN_NUMBER_STATISTIC_TITLE"); |
| | | } |
| | | |
| | | public String getHumanNumberStatisticAttach() { |
| | | return bundle.getString("HUMAN_NUMBER_STATISTIC_CONTROL"); |
| | | } |
| | | |
| | | public String getHumanNumberStatisticEventTitle() { |
| | | return bundle.getString("HUMAN_NUMBER_STATISTIC_EVENT_TITLE"); |
| | | } |
| | | |
| | | public String getHumanNumberStatisticEventChannel() { |
| | | return bundle.getString("HUMAN_NUMBER_STATISTIC_EVENT_CHANNEL"); |
| | | } |
| | | |
| | | public String getHumanNumberStatisticEventTime() { |
| | | return bundle.getString("HUMAN_NUMBER_STATISTIC_EVENT_TIME"); |
| | | } |
| | | |
| | | public String getHumanNumberStatisticEventHourIn() { |
| | | return bundle.getString("HUMAN_NUMBER_STATISTIC_EVENT_HOUR_IN"); |
| | | } |
| | | |
| | | public String getHumanNumberStatisticEventHourOut() { |
| | | return bundle.getString("HUMAN_NUMBER_STATISTIC_EVENT_HOUR_OUT"); |
| | | } |
| | | |
| | | public String getHumanNumberStatisticEventTodayIn() { |
| | | return bundle.getString("HUMAN_NUMBER_STATISTIC_EVENT_TODAY_IN"); |
| | | } |
| | | |
| | | public String getHumanNumberStatisticEventTodayOut() { |
| | | return bundle.getString("HUMAN_NUMBER_STATISTIC_EVENT_TODAY_OUT"); |
| | | } |
| | | |
| | | public String getHumanNumberStatisticEventTotalIn() { |
| | | return bundle.getString("HUMAN_NUMBER_STATISTIC_EVENT_TOTAL_IN"); |
| | | } |
| | | |
| | | public String getHumanNumberStatisticEventTotalOut() { |
| | | return bundle.getString("HUMAN_NUMBER_STATISTIC_EVENT_TOTAL_OUT"); |
| | | } |
| | | |
| | | public String getHumanNumberStatisticEventClearOSD() { |
| | | return bundle.getString("HUMAN_NUMBER_STATIC_EVENT_OSD_CLEAR"); |
| | | } |
| | | public String getVTOAlarmEventRoomNo(){ |
| | | return bundle.getString("VTO_ALARM_EVENT_ROOM_NO"); |
| | | } |
| | | public String getVTOAlarmEventCardNo(){ |
| | | return bundle.getString("VTO_ALARM_EVENT_CARD_NO"); |
| | | } |
| | | |
| | | public String getVTOAlarmEventTime(){ |
| | | return bundle.getString("VTO_ALARM_EVENT_TIME"); |
| | | } |
| | | public String getVTOAlarmEventOpenMethod(){ |
| | | return bundle.getString("VTO_ALARM_EVENT_OPEN_METHOD"); |
| | | } |
| | | public String getVTOAlarmEventStatus(){ |
| | | return bundle.getString("VTO_ALARM_EVENT_STATUS"); |
| | | } |
| | | public String getVTORealLoadRoomNO(){ |
| | | return bundle.getString("VTO_REAL_LOAD_ROOM_NO"); |
| | | } |
| | | public String getVTORealLoadCardNo(){ |
| | | return bundle.getString("VTO_REAL_LOAD_CARD_NO"); |
| | | } |
| | | public String getVTORealLoadTime(){ |
| | | return bundle.getString("VTO_REAL_LOAD_TIME"); |
| | | } |
| | | public String getVTORealLoadEventInfo(){ |
| | | return bundle.getString("VTO_REAL_LOAD_EVENT_INFO"); |
| | | } |
| | | public String getVTOOperateManagerTitle(){ |
| | | return bundle.getString("VTO_OPERATE_MANAGER_TITLE"); |
| | | } |
| | | public String getInputRoomNo(){ |
| | | return bundle.getString("INPUT_ROOM_NO"); |
| | | } |
| | | public String getRoomNoExceedLength(){ |
| | | return bundle.getString("ROOM_NO_EXCEED_LENGTH"); |
| | | } |
| | | public String getVTOOperateManagerRecNo(){ |
| | | return bundle.getString("VTO_OPERATE_MANAGER_REC_NO"); |
| | | } |
| | | public String getVTOOperateManagerRoomNo(){ |
| | | return bundle.getString("VTO_OPERATE_MANAGER_ROOM_NO"); |
| | | } |
| | | public String getVTOOperateManagerCardNo(){ |
| | | return bundle.getString("VTO_OPERATE_MANAGER_CARD_NO"); |
| | | } |
| | | public String getVTOOperateManagerFingerPrintData(){ |
| | | return bundle.getString("VTO_OPERATE_MANAGER_FINGER_PRINT_DATA"); |
| | | } |
| | | public String getVTOOperateInfoTitle(){ |
| | | return bundle.getString("VTO_OPERATE_INFO_TITLE"); |
| | | } |
| | | public String getVTOOperateCollectionFingerPrintTitle(){ |
| | | return bundle.getString("VTO_OPERATE_COLLECTION_FINGER_PRINT_TITLE"); |
| | | } |
| | | public String getDoorOpen(){ |
| | | return bundle.getString("DOOR_OPEN"); |
| | | } |
| | | public String getDoorClose(){ |
| | | return bundle.getString("DOOR_CLOSE"); |
| | | } |
| | | public String getEventOperate(){ |
| | | return bundle.getString("EVENT_OPERATE"); |
| | | } |
| | | public String getStartRealLoad(){ |
| | | return bundle.getString("START_REAL_LOAD_PIC"); |
| | | } |
| | | public String getStopRealLoad(){ |
| | | return bundle.getString("STOP_REAL_LOAD_PIC"); |
| | | } |
| | | public String getAlarmEvent(){ |
| | | return bundle.getString("ALARM_EVENT"); |
| | | } |
| | | public String getRealLoadEvent(){ |
| | | return bundle.getString("REAL_LOAD_EVENT"); |
| | | } |
| | | public String getCollectionResult(){ |
| | | return bundle.getString("COLLECTION_RESULT"); |
| | | } |
| | | public String getNeedFingerPrint(){ |
| | | return bundle.getString("NEED_FINGER_PRINT"); |
| | | } |
| | | public String getFaceInfo(){ |
| | | return bundle.getString("FACE_INFO"); |
| | | } |
| | | public String getOpen(){ |
| | | return bundle.getString("OPEN"); |
| | | } |
| | | |
| | | ///////////////////////////////////点阵屏设置/////////////////////////////////////、 |
| | | public static String getmatrixScreen() { |
| | | // TODO Auto-generated method stub |
| | | return bundle.getString("MATRIX_SCREEN"); |
| | | } |
| | | public String getPassingState(){ |
| | | return bundle.getString("PASSING_STATE"); |
| | | } |
| | | public String getPassingCar(){ |
| | | return bundle.getString("PASSING_CAR"); |
| | | } |
| | | public String getNoCar(){ |
| | | return bundle.getString("NO_CAR"); |
| | | } |
| | | public String getInTime(){ |
| | | return bundle.getString("IN_TIME"); |
| | | } |
| | | public String getOutTime(){ |
| | | return bundle.getString("OUT_TIME"); |
| | | } |
| | | public String getPlateNumber(){ |
| | | return bundle.getString("PLATE_NUMBER"); |
| | | } |
| | | public String getCarOwner(){ |
| | | return bundle.getString("CAR_OWNER"); |
| | | } |
| | | public String getParkingTime(){ |
| | | return bundle.getString("PARKING_TIME"); |
| | | } |
| | | public String getUserType(){ |
| | | return bundle.getString("USER_TYPE"); |
| | | } |
| | | public String getMonthlyCardUser(){ |
| | | return bundle.getString("MONTHLY_CARD_USER"); |
| | | } |
| | | |
| | | public String getAnnualCardUser(){ |
| | | return bundle.getString("ANNUAL_CARD_USER"); |
| | | } |
| | | |
| | | public String getLongTermUser(){ |
| | | return bundle.getString("LONG_TERM_USER"); |
| | | } |
| | | |
| | | public String getTemporaryUser(){ |
| | | return bundle.getString("TEMPORARY_USER"); |
| | | } |
| | | |
| | | public String getParkingCharge(){ |
| | | return bundle.getString("PARKING_CHARGE"); |
| | | } |
| | | |
| | | public String getDaysDue(){ |
| | | return bundle.getString("DAYS_DUE"); |
| | | } |
| | | |
| | | public String getRemainingParkingSpaces(){ |
| | | return bundle.getString("REMAINING_PARKING_SPACES"); |
| | | } |
| | | |
| | | public String getVehiclesNotAllowedToPass(){ |
| | | return bundle.getString("VEHICLES_NOT_ALLOWED_TO_PASS"); |
| | | } |
| | | |
| | | public String getAllowedVehiclesToPass(){ |
| | | return bundle.getString("ALLOWED_VEHICLES_TO_PASS"); |
| | | } |
| | | |
| | | public String getSetUp(){ |
| | | return bundle.getString("SET_UP"); |
| | | } |
| | | |
| | | public String getSetUpSuccess(){ |
| | | return bundle.getString("SUCCESSFULLY_ISSUED"); |
| | | } |
| | | |
| | | public String getSetUpFailed(){ |
| | | return bundle.getString("DELIVERY_FAILED"); |
| | | } |
| | | |
| | | public String getCostomUserInfo(){ |
| | | return bundle.getString("CUSTOM_USER_CLASS"); |
| | | } |
| | | |
| | | public String getRemarksInfo(){ |
| | | return bundle.getString("REMARKS_INFORMATION"); |
| | | } |
| | | |
| | | public String getCostomInfo(){ |
| | | return bundle.getString("CUSTOM_INFORMATION"); |
| | | } |
| | | public String getVTO() {return bundle.getString("VTO");} |
| | | public String getSCADA() {return bundle.getString("SCADA");} |
| | | public String getTrafficAllowList(){return bundle.getString("TRAFFIC_ALLOW_LIST");} |
| | | public String getModifyCardFaceFailed(){ |
| | | return bundle.getString("MODIFY_CARD_FACE_FAILED"); |
| | | } |
| | | public String getRemoveCardFaceFailed(){ |
| | | return bundle.getString("REMOVE_CARD_FACE_FAILED"); |
| | | } |
| | | public String getDownLoadPicture(){ |
| | | return bundle.getString("DOWNLOAD_PICTURE"); |
| | | } |
| | | |
| | | public String getEnterPicturePath(){ |
| | | return bundle.getString("ENTER_PICTURE_PATH"); |
| | | } |
| | | |
| | | public String getLoading(){ |
| | | return bundle.getString("LOADING"); |
| | | } |
| | | |
| | | public String getEndSearch(){ |
| | | return bundle.getString("END_SEARCH"); |
| | | } |
| | | public String getRemoteOpenDoor(){return bundle.getString("REMOTE_OPEN_DOOR");} |
| | | public String getQueryCardExistFailed(){return bundle.getString("QUERY_CARD_EXIST_FAILED");} |
| | | public String getFindCardExist(){return bundle.getString("CARD_EXIST");} |
| | | |
| | | |
| | | public String getSCADADeviceList(){ |
| | | return bundle.getString("SCADA_DEVICE_LIST"); |
| | | } |
| | | |
| | | public String getSCADAPointList(){ |
| | | return bundle.getString("SCADA_POINT_LIST"); |
| | | } |
| | | |
| | | public String getSCADAAlarmAttachInfo(){ |
| | | return bundle.getString("SCADA_ATTACH_ALARM"); |
| | | } |
| | | |
| | | public String getSCADAAttachInfo(){ |
| | | return bundle.getString("SCADA_ATTACH_INFO"); |
| | | } |
| | | |
| | | public String getSCADAAttach(){ |
| | | return bundle.getString("SCADA_ATTACH"); |
| | | } |
| | | |
| | | public String getListBtn(){ |
| | | return bundle.getString("BTN_LIST"); |
| | | } |
| | | |
| | | public String getAllowlistOperation(){ |
| | | return bundle.getString("ALLOWLIST_OPERATION"); |
| | | } |
| | | |
| | | public String getSingleUpload(){ |
| | | return bundle.getString("SINGLE_UPLOAD"); |
| | | } |
| | | |
| | | public String getLicensePlateRun(){return bundle.getString("LICENSE_PLATE_RUN"); } |
| | | |
| | | public String getFuzzyQuery(){return bundle.getString("FUZZY_QUERY"); } |
| | | |
| | | public String getDeleteAll(){return bundle.getString("DELETE_ALL"); } |
| | | |
| | | public String getAuthorization(){return bundle.getString("AUTHORIZATION"); } |
| | | |
| | | public String getBatchUpload(){return bundle.getString("BATCH_UPLOAD"); } |
| | | |
| | | public String getBrowse(){return bundle.getString("BROWSE"); } |
| | | |
| | | public String getUpload(){return bundle.getString("UPLOAD"); } |
| | | |
| | | public String getQueryInformation(){return bundle.getString("QUERY_INFORMATION"); } |
| | | |
| | | public String getDialog(){return bundle.getString("DIALOG"); } |
| | | |
| | | public String getLicensePlateNumber(){return bundle.getString("LICENSE_PLATE_NUMBER"); } |
| | | |
| | | public String getModifyPanel(){return bundle.getString("MODIFY_PANEL"); } |
| | | |
| | | public String getSerialNumber(){return bundle.getString("SERIAL_NUMBER"); } |
| | | |
| | | public String getOpenModel(){return bundle.getString("OPEN_MODEL"); } |
| | | |
| | | public String getLicensePlateLengthTooLong(){return bundle.getString("LICENSE_PLATE_LENGTH_TOO_LONG"); } |
| | | |
| | | public String getNameTooLong(){return bundle.getString("NAME_TOO_LONG"); } |
| | | |
| | | public String getDataNumber(){return bundle.getString("DATA_NUMBER"); } |
| | | |
| | | public String getUnauthorization(){return bundle.getString("UNAUTHORIZATION"); } |
| | | |
| | | public String getAddSuccess(){return bundle.getString("ADD_SUCCESS"); } |
| | | |
| | | public String getAddFail(){return bundle.getString("ADD_FAIL"); } |
| | | |
| | | public String getDeleteSuccess(){return bundle.getString("DELETE_SUCCESS"); } |
| | | |
| | | public String getDeleteFail(){return bundle.getString("DELETE_FAIL"); } |
| | | |
| | | public String getModifySuccess(){return bundle.getString("MODIFY_SUCCESS"); } |
| | | |
| | | public String getModifyFail(){return bundle.getString("MODIFY_FAIL"); } |
| | | |
| | | public String getUploadSuccess(){return bundle.getString("UPLOAD_SUCCESS"); } |
| | | public String getUploadFail(){return bundle.getString("UPLOAD_FAIL"); } |
| | | public String getUploading(){return bundle.getString("UPLOADING"); } |
| | | public String getSureUpload(){return bundle.getString("SURE_UPLOAD"); } |
| | | |
| | | |
| | | public String getEnterQueryData(){return bundle.getString("ENTER_QUERY_DATA"); } |
| | | |
| | | public String getScreenNumber(){return bundle.getString("SCREEN_NUMBER");} |
| | | public String getContain(){return bundle.getString("TEXT_CONTENT");} |
| | | public String getContainType(){return bundle.getString("TEXT_CONTENT_TYPE");} |
| | | public String getContainColor(){return bundle.getString("TEXT_CONTENT_COLOR");} |
| | | public String getScrollType(){return bundle.getString("SCROLL_TYPE");} |
| | | public String getScrollSpeed(){return bundle.getString("SCROLL_SPEED");} |
| | | |
| | | public String getGreen(){return bundle.getString("GREEN");} |
| | | public String getRed(){return bundle.getString("RED");} |
| | | public String getYellow(){return bundle.getString("YELLOW");} |
| | | public String getWhite(){return bundle.getString("WHITE");} |
| | | |
| | | public String getOrdinary(){return bundle.getString("ORDINARY");} |
| | | public String getQRCode(){return bundle.getString("QR_CODE");} |
| | | public String getLocalTime(){return bundle.getString("LOCAL_TIME");} |
| | | public String getResource(){return bundle.getString("RESOURCE");} |
| | | |
| | | public String getNoRolling(){return bundle.getString("NOT_ROLLING");} |
| | | public String getScrollLeftAndRight(){return bundle.getString("SCROLL_LEFT_AND_RIGHT");} |
| | | public String getScrollTopAndDown(){return bundle.getString("SCROLL_UP_AND_DOWN");} |
| | | public String getNumericString(){return bundle.getString("NUMBER_STRING");} |
| | | public String getVoiceText(){return bundle.getString("VOICE_TEXT");} |
| | | public String getIssued(){return bundle.getString("ISSUED");} |
| | | public String getPrompt(){return bundle.getString("PROMPT");} |
| | | |
| | | public String getDeviceName(){return bundle.getString("DEVICE_NAME");} |
| | | public String getPointID(){return bundle.getString("POINT_ID");} |
| | | public String getPointName(){return bundle.getString("POINT_NAME");} |
| | | public String getIfValidSignalPoint(){return bundle.getString("IF_VALID_SIGNAL_POINT");} |
| | | public String getAlarmDescribe(){return bundle.getString("ALARM_DESCRIBE");} |
| | | public String getAlarmDelay(){return bundle.getString("ALARM_DELAY");} |
| | | public String getAlarmLevel(){return bundle.getString("ALARM_LEVEL");} |
| | | public String getAlarmTime(){return bundle.getString("ALARM_TIME");} |
| | | public String getAlarmType(){return bundle.getString("ALARM_TYPE");} |
| | | public String getCollectTime(){return bundle.getString("COLLECT_TIME");} |
| | | |
| | | public String getJing(){return bundle.getString("JING");} |
| | | |
| | | public String getJin(){return bundle.getString("JIN");} |
| | | public String getJi(){return bundle.getString("JI");} |
| | | } |
| | | |
| | | |
| | | |
对比新文件 |
| | |
| | | package com.netsdk.common; |
| | | |
| | | import java.io.File; |
| | | |
| | | import com.netsdk.lib.ToolKits; |
| | | |
| | | public class SavePath { |
| | | private SavePath() {} |
| | | |
| | | private static class SavePathHolder { |
| | | private static SavePath instance = new SavePath(); |
| | | } |
| | | |
| | | public static SavePath getSavePath() { |
| | | return SavePathHolder.instance; |
| | | } |
| | | |
| | | String s_captureSavePath = "./Capture/" + ToolKits.getDay() + "/"; // 抓拍图片保存路径 |
| | | String s_imageSavePath = "./Image/" + ToolKits.getDay() + "/"; // 图片保存路径 |
| | | String s_recordFileSavePath = "./RecordFile/" + ToolKits.getDay() + "/"; // 录像保存路径 |
| | | |
| | | /* |
| | | * 设置抓图保存路径 |
| | | */ |
| | | public String getSaveCapturePath() { |
| | | File path1 = new File("./Capture/"); |
| | | if (!path1.exists()) { |
| | | path1.mkdir(); |
| | | } |
| | | |
| | | File path2 = new File(s_captureSavePath); |
| | | if (!path2.exists()) { |
| | | path2.mkdir(); |
| | | } |
| | | |
| | | String strFileName = path2.getAbsolutePath() + "/" + ToolKits.getDate() + ".jpg"; |
| | | |
| | | return strFileName; |
| | | } |
| | | |
| | | /* |
| | | * 设置智能交通图片保存路径 |
| | | */ |
| | | public String getSaveTrafficImagePath() { |
| | | File path1 = new File("./Image/"); |
| | | if (!path1.exists()) { |
| | | path1.mkdir(); |
| | | } |
| | | |
| | | File path = new File(s_imageSavePath); |
| | | if (!path.exists()) { |
| | | path.mkdir(); |
| | | } |
| | | |
| | | return s_imageSavePath; |
| | | } |
| | | |
| | | |
| | | /* |
| | | * 设置录像保存路径 |
| | | */ |
| | | public String getSaveRecordFilePath() { |
| | | File path1 = new File("./RecordFile/"); |
| | | if (!path1.exists()) { |
| | | path1.mkdir(); |
| | | } |
| | | |
| | | File path2 = new File(s_recordFileSavePath); |
| | | if (!path2.exists()) { |
| | | path2.mkdir(); |
| | | } |
| | | String SavedFileName = s_recordFileSavePath + ToolKits.getDate() + ".dav"; // 默认保存路径 |
| | | return SavedFileName; |
| | | } |
| | | |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.common; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.FlowLayout; |
| | | import java.awt.Frame; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | import java.awt.event.ItemEvent; |
| | | import java.awt.event.ItemListener; |
| | | import java.awt.event.WindowAdapter; |
| | | import java.awt.event.WindowEvent; |
| | | |
| | | import javax.swing.JButton; |
| | | import javax.swing.JComboBox; |
| | | import javax.swing.JFrame; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.SwingUtilities; |
| | | import javax.swing.UIManager; |
| | | import javax.swing.border.EmptyBorder; |
| | | |
| | | import com.netsdk.common.Res.LanguageType; |
| | | |
| | | /** |
| | | * 选择语言界面Demo |
| | | */ |
| | | public class SwitchLanguage extends JFrame{ |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public SwitchLanguage() { |
| | | setTitle("请选择语言/Please Select Language"); |
| | | setLayout(new BorderLayout()); |
| | | pack(); |
| | | setSize(350, 200); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | |
| | | try { |
| | | UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | add(new SwitchLanguagePanel(this), BorderLayout.CENTER); |
| | | |
| | | this.addWindowListener(new WindowAdapter() { |
| | | @Override |
| | | public void windowClosing(WindowEvent e) { |
| | | dispose(); |
| | | System.exit(0); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /* |
| | | * 切换语言面板 |
| | | */ |
| | | public class SwitchLanguagePanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public SwitchLanguagePanel(final Frame frame) { |
| | | setLayout(new FlowLayout()); |
| | | setBorder(new EmptyBorder(50, 0, 0, 0)); |
| | | |
| | | String[] CnEn = {"简体中文", "English"}; |
| | | jComboBox = new JComboBox(CnEn); |
| | | |
| | | nextButton = new JButton("下一步"); |
| | | |
| | | add(jComboBox); |
| | | add(nextButton); |
| | | |
| | | jComboBox.addItemListener(new ItemListener() { |
| | | @Override |
| | | public void itemStateChanged(ItemEvent arg0) { |
| | | LanguageType type = jComboBox.getSelectedIndex() == 0 ? LanguageType.Chinese : LanguageType.English; |
| | | Res.string().switchLanguage(type); |
| | | |
| | | if(jComboBox.getSelectedIndex() == 0) { |
| | | nextButton.setText("下一步"); |
| | | } else { |
| | | nextButton.setText("next"); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | nextButton.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | frame.dispose(); |
| | | FunctionList functiondemo = new FunctionList(); |
| | | functiondemo.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | private JComboBox jComboBox; |
| | | private JButton nextButton; |
| | | } |
| | | } |
| | | |
| | | |
对比新文件 |
| | |
| | | package com.netsdk.common; |
| | | |
| | | public interface WindowCloseListener { |
| | | void windowClosing(); |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame; |
| | | |
| | | import java.awt.*; |
| | | import java.awt.event.*; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | |
| | | import javax.swing.*; |
| | | import javax.swing.table.*; |
| | | |
| | | import com.sun.jna.NativeLong; |
| | | import com.sun.jna.Pointer; |
| | | |
| | | import com.netsdk.common.BorderEx; |
| | | import com.netsdk.common.FunctionList; |
| | | import com.netsdk.common.LoginPanel; |
| | | import com.netsdk.common.Res; |
| | | import com.netsdk.demo.module.AlarmListenModule; |
| | | import com.netsdk.demo.module.LoginModule; |
| | | import com.netsdk.lib.NetSDKLib; |
| | | import com.netsdk.lib.NetSDKLib.LLong; |
| | | import com.netsdk.lib.ToolKits; |
| | | |
| | | /** |
| | | * Alarm Listen Demo |
| | | */ |
| | | class AlarmListenFrame extends JFrame{ |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | // device disconnect callback instance |
| | | private DisConnect disConnect = new DisConnect(); |
| | | |
| | | // device reconnect callback instance |
| | | private static HaveReConnect haveReConnect = new HaveReConnect(); |
| | | |
| | | // alarm listen frame (this) |
| | | private static JFrame frame = new JFrame(); |
| | | |
| | | private Component target = this; |
| | | |
| | | // alarm event info list |
| | | Vector<AlarmEventInfo> data = new Vector<AlarmEventInfo>(); |
| | | |
| | | public AlarmListenFrame() { |
| | | setTitle(Res.string().getAlarmListen()); |
| | | setLayout(new BorderLayout()); |
| | | pack(); |
| | | setSize(800, 530); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | LoginModule.init(disConnect, haveReConnect); |
| | | |
| | | try { |
| | | UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | loginPanel = new LoginPanel(); |
| | | alarmListenPanel = new AlarmListenPanel(); |
| | | showAlarmPanel = new ShowAlarmEventPanel(); |
| | | |
| | | JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, loginPanel, alarmListenPanel); |
| | | splitPane.setDividerSize(0); |
| | | add(splitPane, BorderLayout.NORTH); |
| | | add(showAlarmPanel, BorderLayout.CENTER); |
| | | |
| | | loginPanel.addLoginBtnActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | if(loginPanel.checkLoginText()) { |
| | | if(login()) { |
| | | frame = ToolKits.getFrame(e); |
| | | frame.setTitle(Res.string().getAlarmListen() + " : " + Res.string().getOnline()); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | |
| | | loginPanel.addLogoutBtnActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | frame.setTitle(Res.string().getAlarmListen()); |
| | | logout(); |
| | | } |
| | | }); |
| | | |
| | | addWindowListener(new WindowAdapter() { |
| | | public void windowClosing(WindowEvent e) { |
| | | AlarmListenModule.stopListen(); |
| | | LoginModule.logout(); |
| | | LoginModule.cleanup(); |
| | | dispose(); |
| | | |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | FunctionList demo = new FunctionList(); |
| | | demo.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /////////////////function/////////////////// |
| | | // device disconnect callback class |
| | | // set it's instance by call CLIENT_Init, when device disconnect sdk will call it. |
| | | private class DisConnect implements NetSDKLib.fDisConnect { |
| | | public DisConnect() { } |
| | | |
| | | public void invoke(LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { |
| | | System.out.printf("Device[%s] Port[%d] DisConnect!\n", pchDVRIP, nDVRPort); |
| | | |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | frame.setTitle(Res.string().getAlarmListen() + " : " + Res.string().getDisConnectReconnecting()); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | // device reconnect(success) callback class |
| | | // set it's instance by call CLIENT_SetAutoReconnect, when device reconnect success sdk will call it. |
| | | private static class HaveReConnect implements NetSDKLib.fHaveReConnect { |
| | | public void invoke(LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { |
| | | System.out.printf("ReConnect Device[%s] Port[%d]\n", pchDVRIP, nDVRPort); |
| | | |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | frame.setTitle(Res.string().getAlarmListen() + " : " + Res.string().getOnline()); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | public boolean login() { |
| | | if(LoginModule.login(loginPanel.ipTextArea.getText(), |
| | | Integer.parseInt(loginPanel.portTextArea.getText()), |
| | | loginPanel.nameTextArea.getText(), |
| | | new String(loginPanel.passwordTextArea.getPassword()))) { |
| | | |
| | | loginPanel.setButtonEnable(true); |
| | | alarmListenPanel.setButtonEnable(true); |
| | | |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getLoginFailed() + ", " + ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | public void logout() { |
| | | AlarmListenModule.stopListen(); |
| | | LoginModule.logout(); |
| | | |
| | | loginPanel.setButtonEnable(false); |
| | | alarmListenPanel.initButtonEnable(); |
| | | showAlarmPanel.clean(); |
| | | } |
| | | |
| | | public Vector<String> convertAlarmEventInfo(AlarmEventInfo alarmEventInfo) { |
| | | Vector<String> vector = new Vector<String>(); |
| | | |
| | | vector.add(String.valueOf(alarmEventInfo.id)); |
| | | vector.add(formatDate(alarmEventInfo.date)); |
| | | vector.add(String.valueOf(alarmEventInfo.chn)); |
| | | String status = null; |
| | | if (alarmEventInfo.status == AlarmStatus.ALARM_START) { |
| | | status = Res.string().getStart(); |
| | | }else { |
| | | status = Res.string().getStop(); |
| | | } |
| | | vector.add(alarmMessageMap.get(alarmEventInfo.type) + status); |
| | | |
| | | return vector; |
| | | } |
| | | |
| | | private String formatDate(Date date) { |
| | | final SimpleDateFormat simpleDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | return simpleDate.format(date); |
| | | } |
| | | |
| | | private fAlarmDataCB cbMessage = new fAlarmDataCB(); |
| | | // alarm listen data callback |
| | | private class fAlarmDataCB implements NetSDKLib.fMessCallBack{ |
| | | private final EventQueue eventQueue = Toolkit.getDefaultToolkit().getSystemEventQueue(); |
| | | |
| | | @Override |
| | | public boolean invoke(int lCommand, LLong lLoginID, |
| | | Pointer pStuEvent, int dwBufLen, String strDeviceIP, |
| | | NativeLong nDevicePort, Pointer dwUser) { |
| | | |
| | | switch (lCommand) { |
| | | case NetSDKLib.NET_ALARM_ALARM_EX: |
| | | case NetSDKLib.NET_MOTION_ALARM_EX: |
| | | case NetSDKLib.NET_VIDEOLOST_ALARM_EX: |
| | | case NetSDKLib.NET_SHELTER_ALARM_EX: |
| | | case NetSDKLib.NET_DISKFULL_ALARM_EX: |
| | | case NetSDKLib.NET_DISKERROR_ALARM_EX: { |
| | | byte []alarm = new byte[dwBufLen]; |
| | | pStuEvent.read(0, alarm, 0, dwBufLen); |
| | | for (int i = 0; i < dwBufLen; i++) { |
| | | if (alarm[i] == 1) { |
| | | AlarmEventInfo alarmEventInfo = new AlarmEventInfo(i, lCommand, AlarmStatus.ALARM_START); |
| | | if (!data.contains(alarmEventInfo)) { |
| | | data.add(alarmEventInfo); |
| | | eventQueue.postEvent(new AlarmListenEvent(target, alarmEventInfo)); |
| | | } |
| | | }else { |
| | | AlarmEventInfo alarmEventInfo = new AlarmEventInfo(i, lCommand, AlarmStatus.ALARM_STOP); |
| | | if (data.remove(alarmEventInfo)) { |
| | | eventQueue.postEvent(new AlarmListenEvent(target, alarmEventInfo)); |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | default: |
| | | break; |
| | | |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | |
| | | } |
| | | |
| | | // alarm listen event |
| | | class AlarmListenEvent extends AWTEvent { |
| | | private static final long serialVersionUID = 1L; |
| | | public static final int EVENT_ID = AWTEvent.RESERVED_ID_MAX + 1; |
| | | |
| | | private AlarmEventInfo alarmEventInfo; |
| | | |
| | | public AlarmListenEvent(Object target, |
| | | AlarmEventInfo alarmEventInfo) { |
| | | super(target,EVENT_ID); |
| | | |
| | | this.alarmEventInfo = alarmEventInfo; |
| | | ++AlarmEventInfo.index; |
| | | this.alarmEventInfo.id = AlarmEventInfo.index; |
| | | } |
| | | |
| | | public AlarmEventInfo getAlarmEventInfo() { |
| | | return alarmEventInfo; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | protected void processEvent( AWTEvent event) { |
| | | if ( event instanceof AlarmListenEvent) { |
| | | AlarmEventInfo alarmEventInfo = ((AlarmListenEvent)event).getAlarmEventInfo(); |
| | | showAlarmPanel.insert(alarmEventInfo); |
| | | } else { |
| | | super.processEvent(event); |
| | | } |
| | | } |
| | | |
| | | // alarm listen control panel |
| | | private class AlarmListenPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public AlarmListenPanel() { |
| | | BorderEx.set(this, Res.string().getAlarmListen(), 2); |
| | | setLayout(new FlowLayout()); |
| | | |
| | | btnStartListen = new JButton(Res.string().getStartListen()); |
| | | btnStopListen = new JButton(Res.string().getStopListen()); |
| | | |
| | | btnStartListen.setPreferredSize(new Dimension(150, 20)); |
| | | btnStopListen.setPreferredSize(new Dimension(150, 20)); |
| | | |
| | | add(btnStartListen); |
| | | add(new JLabel(" ")); |
| | | add(btnStopListen); |
| | | |
| | | initButtonEnable(); |
| | | |
| | | btnStartListen.addActionListener(new ActionListener(){ |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | if (AlarmListenModule.startListen(cbMessage)) { |
| | | setButtonEnable(false); |
| | | }else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getAlarmListenFailed() + "," + ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | btnStopListen.addActionListener(new ActionListener(){ |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | if (AlarmListenModule.stopListen()) { |
| | | showAlarmPanel.clean(); |
| | | setButtonEnable(true); |
| | | }else { |
| | | JOptionPane.showMessageDialog(null, ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | public void setButtonEnable(boolean b) { |
| | | btnStartListen.setEnabled(b); |
| | | btnStopListen.setEnabled(!b); |
| | | } |
| | | |
| | | public void initButtonEnable() { |
| | | btnStartListen.setEnabled(false); |
| | | btnStopListen.setEnabled(false); |
| | | } |
| | | |
| | | private JButton btnStartListen; |
| | | private JButton btnStopListen; |
| | | } |
| | | |
| | | // alarm listen event show panel |
| | | private class ShowAlarmEventPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | private final static int MIN_SHOW_LINES = 20; |
| | | private final static int MAX_SHOW_LINES = 100; |
| | | private int currentRowNums = 0; |
| | | |
| | | public ShowAlarmEventPanel() { |
| | | BorderEx.set(this, Res.string().getShowAlarmEvent(), 2); |
| | | setLayout(new BorderLayout()); |
| | | |
| | | Vector<String> columnNames = new Vector<String>(); |
| | | columnNames.add(Res.string().getIndex()); // index |
| | | columnNames.add(Res.string().getEventTime()); // event time |
| | | columnNames.add(Res.string().getChannel()); // channel |
| | | columnNames.add(Res.string().getAlarmMessage()); // alarm message |
| | | |
| | | tableModel = new DefaultTableModel(null, columnNames); |
| | | table = new JTable(tableModel) { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public boolean isCellEditable(int rowIndex, int columnIndex) { |
| | | return false; |
| | | } |
| | | }; |
| | | |
| | | tableModel.setRowCount(MIN_SHOW_LINES); // set min show lines |
| | | |
| | | table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); |
| | | |
| | | table.getColumnModel().getColumn(0).setPreferredWidth(90); |
| | | table.getColumnModel().getColumn(1).setPreferredWidth(200); |
| | | table.getColumnModel().getColumn(2).setPreferredWidth(80); |
| | | table.getColumnModel().getColumn(3).setPreferredWidth(400); |
| | | |
| | | table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); |
| | | table.setAutoscrolls(false); |
| | | |
| | | table.getTableHeader().setReorderingAllowed(false); |
| | | // table.getTableHeader().setResizingAllowed(false); |
| | | |
| | | JScrollPane scrollPane = new JScrollPane(table); |
| | | scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); |
| | | scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); |
| | | add(scrollPane, BorderLayout.CENTER); |
| | | } |
| | | |
| | | public void insert(AlarmEventInfo alarmEventInfo) { |
| | | tableModel.insertRow(0,convertAlarmEventInfo(alarmEventInfo)); |
| | | if (currentRowNums < MAX_SHOW_LINES) { |
| | | ++currentRowNums; |
| | | } |
| | | |
| | | if (currentRowNums <= MIN_SHOW_LINES) { |
| | | tableModel.setRowCount(MIN_SHOW_LINES); |
| | | }else if (currentRowNums == MAX_SHOW_LINES) { |
| | | tableModel.setRowCount(MAX_SHOW_LINES); |
| | | } |
| | | |
| | | table.updateUI(); |
| | | } |
| | | |
| | | public void clean() { |
| | | currentRowNums = 0; |
| | | data.clear(); |
| | | AlarmEventInfo.index=0; |
| | | tableModel.setRowCount(0); |
| | | tableModel.setRowCount(MIN_SHOW_LINES); |
| | | table.updateUI(); |
| | | } |
| | | |
| | | private JTable table = null; |
| | | private DefaultTableModel tableModel = null; |
| | | } |
| | | |
| | | private static HashMap<Integer, String> alarmMessageMap = new HashMap<Integer, String>() { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | { |
| | | put(NetSDKLib.NET_ALARM_ALARM_EX, Res.string().getExternalAlarm()); |
| | | put(NetSDKLib.NET_MOTION_ALARM_EX, Res.string().getMotionAlarm()); |
| | | put(NetSDKLib.NET_VIDEOLOST_ALARM_EX, Res.string().getVideoLostAlarm()); |
| | | put(NetSDKLib.NET_SHELTER_ALARM_EX, Res.string().getShelterAlarm()); |
| | | put(NetSDKLib.NET_DISKFULL_ALARM_EX, Res.string().getDiskFullAlarm()); |
| | | put(NetSDKLib.NET_DISKERROR_ALARM_EX, Res.string().getDiskErrorAlarm()); |
| | | } |
| | | }; |
| | | |
| | | private LoginPanel loginPanel; |
| | | private AlarmListenPanel alarmListenPanel; |
| | | private ShowAlarmEventPanel showAlarmPanel; |
| | | |
| | | enum AlarmStatus { |
| | | ALARM_START, ALARM_STOP |
| | | } |
| | | |
| | | // struct of alarm event |
| | | static class AlarmEventInfo { |
| | | public static long index = 0; |
| | | public long id; |
| | | public int chn; |
| | | public int type; |
| | | public Date date; |
| | | public AlarmStatus status; |
| | | |
| | | public AlarmEventInfo(int chn, int type, AlarmStatus status) { |
| | | this.chn = chn; |
| | | this.type = type; |
| | | this.status = status; |
| | | this.date = new Date(); |
| | | } |
| | | |
| | | @Override |
| | | public boolean equals(Object o) { |
| | | if (this == o) return true; |
| | | if (o == null || getClass() != o.getClass()) return false; |
| | | AlarmEventInfo showInfo = (AlarmEventInfo) o; |
| | | return chn == showInfo.chn && type == showInfo.type; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | public class AlarmListen { |
| | | public static void main(String[] args) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | AlarmListenFrame demo = new AlarmListenFrame(); |
| | | demo.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | }; |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame.Attendance; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.Dimension; |
| | | import java.awt.FlowLayout; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | import java.awt.event.WindowAdapter; |
| | | import java.awt.event.WindowEvent; |
| | | import java.util.Timer; |
| | | import java.util.TimerTask; |
| | | import java.util.concurrent.locks.ReentrantLock; |
| | | |
| | | import javax.swing.JButton; |
| | | import javax.swing.JDialog; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JOptionPane; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.SwingUtilities; |
| | | |
| | | import com.netsdk.common.BorderEx; |
| | | import com.netsdk.common.Res; |
| | | import com.netsdk.demo.module.AlarmListenModule; |
| | | import com.netsdk.demo.module.AttendanceModule; |
| | | import com.netsdk.lib.NetSDKLib; |
| | | import com.netsdk.lib.NetSDKLib.ALARM_CAPTURE_FINGER_PRINT_INFO; |
| | | import com.netsdk.lib.NetSDKLib.LLong; |
| | | import com.netsdk.lib.NetSDKLib.fMessCallBack; |
| | | import com.netsdk.lib.ToolKits; |
| | | |
| | | import com.sun.jna.NativeLong; |
| | | import com.sun.jna.Pointer; |
| | | |
| | | /** |
| | | * 添加信息信息 |
| | | */ |
| | | public class AddFingerPrintDialog extends JDialog{ |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private static final long serialVersionUID = 1L; |
| | | private static final int CHANNEL_ID = 0; // 门禁序号 |
| | | private static final String READER_ID = "1"; // 读卡器ID |
| | | private static final long TIMER_DELAY = 30000; // 定时器超时时间 |
| | | |
| | | private String userID = null; |
| | | private byte []collectionData = null; |
| | | private Timer timer = new Timer(); // 信息采集定时器 |
| | | private ReentrantLock lock = new ReentrantLock(); |
| | | |
| | | public AddFingerPrintDialog(String userId) { |
| | | |
| | | setTitle(Res.string().getAddFingerPrint()); |
| | | setLayout(new BorderLayout()); |
| | | setModal(true); |
| | | pack(); |
| | | setSize(300, 180); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | setDefaultCloseOperation(DISPOSE_ON_CLOSE); |
| | | |
| | | //////////采集面板 ///////////////// |
| | | JPanel collectionPanel = new JPanel(); |
| | | BorderEx.set(collectionPanel, Res.string().getcFingerPrintCollection(), 4); |
| | | collectionPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 35, 25)); |
| | | collectionBtn = new JButton(Res.string().getStartCollection()); |
| | | collectionBtn.setPreferredSize(new Dimension(150, 20)); |
| | | promptLabel = new JLabel(); |
| | | promptLabel.setPreferredSize(new Dimension(150, 20)); |
| | | promptLabel.setHorizontalAlignment(JLabel.CENTER); |
| | | |
| | | collectionPanel.add(collectionBtn); |
| | | collectionPanel.add(promptLabel); |
| | | |
| | | //////////功能面板 ///////////////// |
| | | JPanel functionPanel = new JPanel(); |
| | | addBtn = new JButton(Res.string().getAdd()); |
| | | cancelBtn = new JButton(Res.string().getCancel()); |
| | | addBtn.setPreferredSize(new Dimension(100, 20)); |
| | | cancelBtn.setPreferredSize(new Dimension(100, 20)); |
| | | |
| | | functionPanel.add(addBtn); |
| | | functionPanel.add(cancelBtn); |
| | | |
| | | add(collectionPanel, BorderLayout.CENTER); |
| | | add(functionPanel, BorderLayout.SOUTH); |
| | | |
| | | addBtn.setEnabled(false); |
| | | userID = userId; |
| | | |
| | | cbMessage = new fCollectionDataCB(); |
| | | |
| | | collectionBtn.addActionListener(new ActionListener() { |
| | | |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | collectionFinger(); |
| | | } |
| | | }); |
| | | |
| | | addBtn.addActionListener(new ActionListener() { |
| | | |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | if (AttendanceModule.insertFingerByUserId(userID, collectionData)) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSucceed(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE); |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getFailed() , Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | dispose(); |
| | | } |
| | | |
| | | }); |
| | | |
| | | cancelBtn.addActionListener(new ActionListener() { |
| | | |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | AlarmListenModule.stopListen(); |
| | | timer.cancel(); |
| | | dispose(); |
| | | } |
| | | }); |
| | | |
| | | addWindowListener(new WindowAdapter() { |
| | | public void windowClosing(WindowEvent e) { |
| | | AlarmListenModule.stopListen(); |
| | | timer.cancel(); |
| | | dispose(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | public void collectionFinger() { |
| | | |
| | | if (!AlarmListenModule.startListen(cbMessage)) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getCollectionFailed() + "," + ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | collectionData = null; |
| | | if (!AttendanceModule.collectionFinger(CHANNEL_ID, READER_ID)) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getCollectionFailed() + "," + ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | promptLabel.setText(Res.string().getInCollection()); |
| | | collectionBtn.setEnabled(false); |
| | | } |
| | | }); |
| | | |
| | | timer.schedule(new TimerTask() { |
| | | public void run() { |
| | | lock.lock(); |
| | | if (collectionData == null) { |
| | | AlarmListenModule.stopListen(); |
| | | promptLabel.setText(Res.string().getCollectionFailed()); |
| | | collectionBtn.setEnabled(true); |
| | | } |
| | | lock.unlock(); |
| | | } |
| | | |
| | | }, TIMER_DELAY); |
| | | } |
| | | |
| | | /** |
| | | * 信息采集监听回调 |
| | | **/ |
| | | private class fCollectionDataCB implements fMessCallBack{ |
| | | |
| | | @Override |
| | | public boolean invoke(int lCommand, LLong lLoginID, |
| | | Pointer pStuEvent, int dwBufLen, String strDeviceIP, |
| | | NativeLong nDevicePort, Pointer dwUser) { |
| | | |
| | | if (lCommand == NetSDKLib.NET_ALARM_FINGER_PRINT) { |
| | | lock.lock(); |
| | | if (collectionData == null) { |
| | | timer.cancel(); |
| | | ALARM_CAPTURE_FINGER_PRINT_INFO msg = new ALARM_CAPTURE_FINGER_PRINT_INFO(); |
| | | ToolKits.GetPointerData(pStuEvent, msg); |
| | | collectionData = new byte[msg.nPacketLen * msg.nPacketNum]; |
| | | msg.szFingerPrintInfo.read(0, collectionData, 0, msg.nPacketLen * msg.nPacketNum); |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | AlarmListenModule.stopListen(); |
| | | promptLabel.setText(Res.string().getcCompleteCollection()); |
| | | addBtn.setEnabled(true); |
| | | } |
| | | }); |
| | | } |
| | | lock.unlock(); |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | |
| | | } |
| | | |
| | | private fMessCallBack cbMessage; // 信息采集回调 |
| | | private JLabel promptLabel; // 提示信息 |
| | | private JButton collectionBtn; // 采集按钮 |
| | | private JButton addBtn; // 添加按钮 |
| | | private JButton cancelBtn; // 取消按钮 |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame.Attendance; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | import java.awt.event.WindowAdapter; |
| | | import java.awt.event.WindowEvent; |
| | | |
| | | import javax.swing.JFrame; |
| | | import javax.swing.JOptionPane; |
| | | import javax.swing.JSplitPane; |
| | | import javax.swing.SwingUtilities; |
| | | import javax.swing.UIManager; |
| | | |
| | | import com.sun.jna.Pointer; |
| | | |
| | | import com.netsdk.common.FunctionList; |
| | | import com.netsdk.common.LoginPanel; |
| | | import com.netsdk.common.Res; |
| | | import com.netsdk.demo.module.AttendanceModule; |
| | | import com.netsdk.demo.module.LoginModule; |
| | | import com.netsdk.lib.NetSDKLib; |
| | | import com.netsdk.lib.NetSDKLib.LLong; |
| | | import com.netsdk.lib.ToolKits; |
| | | |
| | | /** |
| | | * 考勤机Demo:包含门禁事件订阅、人员操作、信息操作 |
| | | */ |
| | | class AttendanceFrame extends JFrame{ |
| | | /** |
| | | * |
| | | */ |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | // 设备断线通知回调 |
| | | private DisConnect disConnect = new DisConnect(); |
| | | |
| | | // 获取界面窗口 |
| | | private static JFrame frame = new JFrame(); |
| | | |
| | | public AttendanceFrame(){ |
| | | setTitle(Res.string().getAttendance()); |
| | | setLayout(new BorderLayout()); |
| | | pack(); |
| | | setSize(800, 555); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | setDefaultCloseOperation(DISPOSE_ON_CLOSE); // 释放窗体 |
| | | |
| | | LoginModule.init(disConnect, null); // 打开工程,初始化 |
| | | |
| | | try { |
| | | UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | loginPanel = new LoginPanel(); |
| | | showPanel = new AttendanceShowPanel(); |
| | | operatePanel = new AttendanceFunctionOperatePanel(showPanel); |
| | | |
| | | JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, loginPanel, operatePanel); |
| | | splitPane.setDividerSize(0); |
| | | splitPane.setBorder(null); |
| | | add(splitPane, BorderLayout.NORTH); |
| | | add(showPanel, BorderLayout.CENTER); |
| | | |
| | | loginPanel.addLoginBtnActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | if(loginPanel.checkLoginText()) { |
| | | if(login()) { |
| | | frame = ToolKits.getFrame(e); |
| | | frame.setTitle(Res.string().getAttendance() + " : " + Res.string().getOnline()); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | |
| | | loginPanel.addLogoutBtnActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | logout(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | addWindowListener(new WindowAdapter() { |
| | | public void windowClosing(WindowEvent e) { |
| | | AttendanceModule.stopRealLoadPicture(); |
| | | LoginModule.logout(); |
| | | LoginModule.cleanup(); // 关闭工程,释放资源 |
| | | dispose(); |
| | | |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | FunctionList demo = new FunctionList(); |
| | | demo.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 设备断线回调: 通过 CLIENT_Init 设置该回调函数,当设备出现断线时,SDK会调用该函数 |
| | | private class DisConnect implements NetSDKLib.fDisConnect { |
| | | public DisConnect() { } |
| | | |
| | | public void invoke(LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { |
| | | System.out.printf("Device[%s] Port[%d] DisConnect!\n", pchDVRIP, nDVRPort); |
| | | // 断线提示 |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | JOptionPane.showMessageDialog(null, Res.string().getDisConnect(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | logout(); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | // 登录 |
| | | public boolean login() { |
| | | if(LoginModule.login(loginPanel.ipTextArea.getText(), |
| | | Integer.parseInt(loginPanel.portTextArea.getText()), |
| | | loginPanel.nameTextArea.getText(), |
| | | new String(loginPanel.passwordTextArea.getPassword()))) { |
| | | |
| | | loginPanel.setButtonEnable(true); |
| | | operatePanel.setButtonEnable(true); |
| | | |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getLoginFailed() + ", " + ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | // 登出 |
| | | public void logout() { |
| | | AttendanceModule.stopRealLoadPicture(); |
| | | LoginModule.logout(); |
| | | |
| | | frame.setTitle(Res.string().getAttendance()); |
| | | loginPanel.setButtonEnable(false); |
| | | operatePanel.setButtonEnable(false); |
| | | showPanel.clearup(); |
| | | } |
| | | |
| | | private LoginPanel loginPanel; // 登陆面板 |
| | | private AttendanceFunctionOperatePanel operatePanel; // 操作面板 |
| | | private AttendanceShowPanel showPanel; // 显示面板 |
| | | } |
| | | |
| | | public class Attendance { |
| | | public static void main(String[] args) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | AttendanceFrame demo = new AttendanceFrame(); |
| | | demo.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame.Attendance; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.Dimension; |
| | | import java.awt.FlowLayout; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | |
| | | import javax.swing.JButton; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JOptionPane; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.JSplitPane; |
| | | import javax.swing.JTextField; |
| | | import javax.swing.SwingUtilities; |
| | | import javax.swing.SwingWorker; |
| | | |
| | | import com.netsdk.common.BorderEx; |
| | | import com.netsdk.common.Res; |
| | | import com.netsdk.demo.frame.Attendance.AttendanceShowPanel.UserInfoShowPanel; |
| | | import com.netsdk.demo.module.AttendanceModule; |
| | | import com.netsdk.demo.module.AttendanceModule.OPERATE_TYPE; |
| | | import com.netsdk.demo.module.AttendanceModule.UserData; |
| | | |
| | | /** |
| | | * 考勤机操作面板 |
| | | */ |
| | | public class AttendanceFunctionOperatePanel extends JPanel{ |
| | | /** |
| | | * |
| | | */ |
| | | private static final long serialVersionUID = 1L; |
| | | public static boolean bLogout = false; |
| | | public AttendanceShowPanel showPanel; // 显示面板 |
| | | private AttendanceFunctionOperatePanel target = this; // 为了传值 |
| | | |
| | | public AttendanceFunctionOperatePanel(AttendanceShowPanel showPanel) { |
| | | |
| | | setLayout(new BorderLayout()); |
| | | setPreferredSize(new Dimension(800, 120)); |
| | | |
| | | listener = new UserOperateActionListener(); |
| | | |
| | | userPanel = new FunctionOperatePanel(); |
| | | subscribePanel = new SubscribePanel(showPanel.eventShowPanel); |
| | | |
| | | JSplitPane splitPane = new JSplitPane(); |
| | | splitPane.setDividerSize(0); |
| | | splitPane.setBorder(null); |
| | | splitPane.add(userPanel, JSplitPane.LEFT); |
| | | splitPane.add(subscribePanel, JSplitPane.RIGHT); |
| | | |
| | | add(splitPane, BorderLayout.CENTER); |
| | | |
| | | this.showPanel = showPanel; |
| | | this.showPanel.userShowPanel.prePageBtn.addActionListener(listener); |
| | | this.showPanel.userShowPanel.nextPageBtn.addActionListener(listener); |
| | | } |
| | | |
| | | public void setButtonEnable(boolean b) { |
| | | bLogout=!b; |
| | | userPanel.setButtonEnable(b); |
| | | subscribePanel.setButtonEnable(b); |
| | | } |
| | | |
| | | public void setSearchEnable(boolean b) { |
| | | showPanel.userShowPanel.setButtonEnable(b); |
| | | userPanel.searchPersonBtn.setEnabled(b); |
| | | } |
| | | |
| | | public void insertData(UserData[] arrUserData) { |
| | | showPanel.userShowPanel.insertData(arrUserData); |
| | | } |
| | | |
| | | public void insertData(UserData userData) { |
| | | showPanel.userShowPanel.insertData(userData); |
| | | } |
| | | |
| | | /** |
| | | * 总的功能操作面板 |
| | | */ |
| | | public class FunctionOperatePanel extends JPanel{ |
| | | /** |
| | | * |
| | | */ |
| | | private static final long serialVersionUID = 1L; |
| | | public FunctionOperatePanel() { |
| | | // BorderEx.set(this, Res.string().getOperateByUser(), 1); |
| | | setLayout(new BorderLayout()); |
| | | setPreferredSize(new Dimension(600, 60)); |
| | | |
| | | ////////// 查询条件 ///////////////// |
| | | JLabel userIdLabel = new JLabel(Res.string().getUserId(), JLabel.CENTER); |
| | | userIdTextField = new JTextField(); |
| | | userIdLabel.setPreferredSize(new Dimension(80, 20)); |
| | | userIdTextField.setPreferredSize(new Dimension(110, 20)); |
| | | |
| | | ////////// 功能面板 ///////////////// |
| | | // 用户功能面板 |
| | | JPanel userFunctionPanel = new JPanel(); |
| | | userFunctionPanel.setLayout(new FlowLayout(FlowLayout.LEFT)); |
| | | BorderEx.set(userFunctionPanel, Res.string().getUserOperate(), 1); |
| | | searchPersonBtn = new JButton(Res.string().getSearch()); |
| | | addPersonBtn = new JButton(Res.string().getAdd()); |
| | | modifyPersonBtn = new JButton(Res.string().getModify()); |
| | | deletePersonBtn = new JButton(Res.string().getDelete()); |
| | | |
| | | searchPersonBtn.setPreferredSize(new Dimension(90, 20)); |
| | | addPersonBtn.setPreferredSize(new Dimension(90, 20)); |
| | | modifyPersonBtn.setPreferredSize(new Dimension(90, 20)); |
| | | deletePersonBtn.setPreferredSize(new Dimension(90, 20)); |
| | | |
| | | userFunctionPanel.add(userIdLabel); |
| | | userFunctionPanel.add(userIdTextField); |
| | | userFunctionPanel.add(searchPersonBtn); |
| | | userFunctionPanel.add(addPersonBtn); |
| | | userFunctionPanel.add(modifyPersonBtn); |
| | | userFunctionPanel.add(deletePersonBtn); |
| | | |
| | | // 信息功能面板 |
| | | JPanel fingerPrintFunctionPanel = new JPanel(new FlowLayout(FlowLayout.CENTER)); |
| | | BorderEx.set(fingerPrintFunctionPanel, Res.string().getFingerPrintOperate(), 1); |
| | | operateByUserIdBtn = new JButton(Res.string().getOperateByUserId()); |
| | | operateByFingerPrintIdBtn = new JButton(Res.string().getOperateByFingerPrintId()); |
| | | |
| | | operateByUserIdBtn.setPreferredSize(new Dimension(260, 20)); |
| | | operateByFingerPrintIdBtn.setPreferredSize(new Dimension(260, 20)); |
| | | fingerPrintFunctionPanel.add(operateByUserIdBtn); |
| | | fingerPrintFunctionPanel.add(operateByFingerPrintIdBtn); |
| | | |
| | | JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT); |
| | | splitPane.setDividerSize(0); |
| | | splitPane.setBorder(null); |
| | | splitPane.add(userFunctionPanel, JSplitPane.TOP); |
| | | splitPane.add(fingerPrintFunctionPanel, JSplitPane.BOTTOM); |
| | | add(splitPane, BorderLayout.CENTER); |
| | | |
| | | searchPersonBtn.addActionListener(listener); |
| | | addPersonBtn.addActionListener(listener); |
| | | modifyPersonBtn.addActionListener(listener); |
| | | deletePersonBtn.addActionListener(listener); |
| | | operateByUserIdBtn.addActionListener(listener); |
| | | operateByFingerPrintIdBtn.addActionListener(listener); |
| | | |
| | | setButtonEnable(false); |
| | | } |
| | | |
| | | public void setButtonEnable(boolean b) { |
| | | searchPersonBtn.setEnabled(b); |
| | | addPersonBtn.setEnabled(b); |
| | | modifyPersonBtn.setEnabled(b); |
| | | deletePersonBtn.setEnabled(b); |
| | | operateByUserIdBtn.setEnabled(b); |
| | | operateByFingerPrintIdBtn.setEnabled(b); |
| | | } |
| | | |
| | | public void searchPerson(OPERATE_TYPE type) { // flush 为 true 时 强制刷新 |
| | | if (type == OPERATE_TYPE.SEARCH_USER && !userIdTextField.getText().isEmpty()) { |
| | | UserData userData = AttendanceModule.getUser(userIdTextField.getText()); |
| | | if (userData == null) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getFailed(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | showPanel.userShowPanel.insertData(userData); |
| | | }else { |
| | | setSearchEnable(false); |
| | | new SearchPersonSwingWorker(type, target).execute(); |
| | | } |
| | | } |
| | | |
| | | private JTextField userIdTextField; |
| | | public JButton searchPersonBtn; |
| | | private JButton addPersonBtn; |
| | | private JButton modifyPersonBtn; |
| | | private JButton deletePersonBtn; |
| | | private JButton operateByUserIdBtn; |
| | | private JButton operateByFingerPrintIdBtn; |
| | | } |
| | | |
| | | /** |
| | | * 按键监听实现类 |
| | | */ |
| | | private class UserOperateActionListener implements ActionListener { |
| | | |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | |
| | | OPERATE_TYPE emType = getOperateType(arg0.getSource()); |
| | | switch(emType) { |
| | | case SEARCH_USER: |
| | | case PRE_SEARCH_USER: |
| | | case NEXT_SEARCH_USER: |
| | | SwingUtilities.invokeLater(new SearchRunnable(emType)); |
| | | break; |
| | | case ADD_USER: |
| | | new AttendanceOperateShareDialog(emType, null, "").setVisible(true); |
| | | break; |
| | | case MODIFIY_USER: |
| | | case DELETE_USER: |
| | | case FINGERPRINT_OPEARTE_BY_USERID: |
| | | UserData userData = showPanel.userShowPanel.GetSelectedItem(); |
| | | if(userData == null) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSelectPerson(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | if (emType == OPERATE_TYPE.FINGERPRINT_OPEARTE_BY_USERID) { |
| | | new OperateByUserIdDialog(userData).setVisible(true); |
| | | }else { |
| | | new AttendanceOperateShareDialog(emType, userData).setVisible(true); |
| | | } |
| | | |
| | | break; |
| | | case FINGERPRINT_OPEARTE_BY_ID: |
| | | new OperateByFingerPrintIdDialog().setVisible(true); |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | |
| | | private OPERATE_TYPE getOperateType(Object btn) { |
| | | OPERATE_TYPE type = OPERATE_TYPE.UNKNOWN; |
| | | |
| | | if (btn == userPanel.searchPersonBtn) { // 查找人员 |
| | | type = OPERATE_TYPE.SEARCH_USER; |
| | | }else if (btn == showPanel.userShowPanel.prePageBtn) { // 上一页查找人员 |
| | | type = OPERATE_TYPE.PRE_SEARCH_USER; |
| | | }else if (btn == showPanel.userShowPanel.nextPageBtn) { // 下一页查找人员 |
| | | type = OPERATE_TYPE.NEXT_SEARCH_USER; |
| | | }else if (btn == userPanel.addPersonBtn) { // 添加人员 |
| | | type = OPERATE_TYPE.ADD_USER; |
| | | }else if (btn == userPanel.modifyPersonBtn) { // 修改人员 |
| | | type = OPERATE_TYPE.MODIFIY_USER; |
| | | }else if (btn == userPanel.deletePersonBtn) { // 删除人员 |
| | | type = OPERATE_TYPE.DELETE_USER; |
| | | }else if (btn == userPanel.operateByUserIdBtn) { // 通过用户ID操作信息 |
| | | type = OPERATE_TYPE.FINGERPRINT_OPEARTE_BY_USERID; |
| | | }else if (btn == userPanel.operateByFingerPrintIdBtn) { // 通过信息ID操作信息 |
| | | type = OPERATE_TYPE.FINGERPRINT_OPEARTE_BY_ID; |
| | | }else { |
| | | System.err.println("Unknown Event: " + btn); |
| | | } |
| | | |
| | | return type; |
| | | |
| | | } |
| | | } |
| | | |
| | | public class SearchRunnable implements Runnable { |
| | | private OPERATE_TYPE searchType; |
| | | public SearchRunnable(OPERATE_TYPE searchType) { |
| | | this.searchType = searchType; |
| | | } |
| | | |
| | | @Override |
| | | public void run() { |
| | | userPanel.searchPerson(searchType); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 人员搜索工作线程(完成异步搜索) |
| | | */ |
| | | public class SearchPersonSwingWorker extends SwingWorker<UserData[], Object> { |
| | | private AttendanceFunctionOperatePanel operatePanel; |
| | | private int offset = 0; |
| | | private OPERATE_TYPE type; |
| | | public SearchPersonSwingWorker(OPERATE_TYPE type, AttendanceFunctionOperatePanel operatePanel) { |
| | | this.operatePanel = operatePanel; |
| | | this.type = type; |
| | | } |
| | | |
| | | protected UserData[] doInBackground() throws Exception { |
| | | |
| | | switch(type) { |
| | | case SEARCH_USER: |
| | | offset = 0; |
| | | break; |
| | | case PRE_SEARCH_USER: |
| | | offset = UserInfoShowPanel.QUERY_SHOW_COUNT * ((AttendanceShowPanel.userIndex-1)/UserInfoShowPanel.QUERY_SHOW_COUNT - 1); |
| | | break; |
| | | case NEXT_SEARCH_USER: |
| | | offset = AttendanceShowPanel.userIndex; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | |
| | | UserData[] arrUserData = AttendanceModule.findUser(offset, UserInfoShowPanel.QUERY_SHOW_COUNT); |
| | | |
| | | return arrUserData; |
| | | } |
| | | |
| | | @Override |
| | | protected void done() { |
| | | if (bLogout) { |
| | | return; |
| | | } |
| | | |
| | | try { |
| | | |
| | | UserData[] arrUserData = get(); |
| | | if (arrUserData == null) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getFailed(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if (type == OPERATE_TYPE.SEARCH_USER || |
| | | type == OPERATE_TYPE.PRE_SEARCH_USER) { // 更新userIndex |
| | | AttendanceShowPanel.userIndex = offset; |
| | | } |
| | | operatePanel.insertData(arrUserData); |
| | | } catch (Exception e) { |
| | | // e.printStackTrace(); |
| | | }finally { |
| | | operatePanel.setSearchEnable(true); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | private UserOperateActionListener listener; |
| | | public FunctionOperatePanel userPanel; |
| | | public SubscribePanel subscribePanel; |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame.Attendance; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.Dimension; |
| | | import java.awt.FlowLayout; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | |
| | | import javax.swing.JButton; |
| | | import javax.swing.JDialog; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JOptionPane; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.JTextField; |
| | | |
| | | import com.netsdk.common.BorderEx; |
| | | import com.netsdk.common.Res; |
| | | import com.netsdk.demo.module.AttendanceModule; |
| | | import com.netsdk.demo.module.AttendanceModule.OPERATE_TYPE; |
| | | import com.netsdk.demo.module.AttendanceModule.UserData; |
| | | import com.netsdk.lib.NetSDKLib; |
| | | |
| | | /** |
| | | * 考勤机操作对话框 |
| | | */ |
| | | public class AttendanceOperateShareDialog extends JDialog{ |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private static final long serialVersionUID = 1L; |
| | | private OPERATE_TYPE emType = OPERATE_TYPE.UNKNOWN; // 操作类型 |
| | | private boolean bSuccess = false; // 接口调用结果 |
| | | |
| | | public AttendanceOperateShareDialog(OPERATE_TYPE emType, UserData userData) { |
| | | this(emType, userData, ""); |
| | | } |
| | | |
| | | public AttendanceOperateShareDialog(OPERATE_TYPE emType, String fingerPrintId) { |
| | | this(emType, null, fingerPrintId); |
| | | } |
| | | |
| | | public AttendanceOperateShareDialog(OPERATE_TYPE emType, UserData userData, String fingerPrintId) { |
| | | |
| | | setTitle(Res.string().getPersonOperate()); |
| | | setLayout(new BorderLayout()); |
| | | setModal(true); |
| | | pack(); |
| | | setSize(300, 200); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | setDefaultCloseOperation(DISPOSE_ON_CLOSE); |
| | | |
| | | //////////人员信息面板 ///////////////// |
| | | |
| | | JPanel personInfoPanel = new JPanel(); |
| | | BorderEx.set(personInfoPanel, "", 4); |
| | | Dimension dimLable = new Dimension(80, 20); |
| | | JLabel userIdLabel = new JLabel(Res.string().getUserId()); |
| | | JLabel userNameLabel = new JLabel(Res.string().getUserName(true)); |
| | | JLabel cardNoLabel = new JLabel(Res.string().getCardNo()); |
| | | JLabel fingerPrintIdLabel = new JLabel(Res.string().getFingerPrintId()); |
| | | userIdLabel.setPreferredSize(dimLable); |
| | | userNameLabel.setPreferredSize(dimLable); |
| | | cardNoLabel.setPreferredSize(dimLable); |
| | | fingerPrintIdLabel.setPreferredSize(new Dimension(85, 20)); |
| | | |
| | | Dimension dimValue = new Dimension(150, 20); |
| | | userIdTextField = new JTextField(); |
| | | userNameTextField = new JTextField(); |
| | | cardNoTextField = new JTextField(); |
| | | fingerPrintIdTextField = new JTextField(); |
| | | userIdTextField.setPreferredSize(dimValue); |
| | | userNameTextField.setPreferredSize(dimValue); |
| | | cardNoTextField.setPreferredSize(dimValue); |
| | | fingerPrintIdTextField.setPreferredSize(dimValue); |
| | | |
| | | // 数据处理 |
| | | if (userData != null) { |
| | | if (userData.userId != null) { |
| | | userIdTextField.setText(userData.userId); |
| | | } |
| | | |
| | | if (userData.userName != null) { |
| | | userNameTextField.setText(userData.userName); |
| | | } |
| | | |
| | | if (userData.cardNo != null) { |
| | | cardNoTextField.setText(userData.cardNo); |
| | | } |
| | | } |
| | | |
| | | if (!fingerPrintId.isEmpty()) { |
| | | fingerPrintIdTextField.setText(fingerPrintId); |
| | | } |
| | | |
| | | if (emType == OPERATE_TYPE.DELETE_FINGERPRINT_BY_ID) { // 根据信息ID删除用户 |
| | | JPanel fingerPrintPanel = new JPanel(); |
| | | fingerPrintPanel.add(fingerPrintIdLabel); |
| | | fingerPrintPanel.add(fingerPrintIdTextField); |
| | | personInfoPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 40)); |
| | | personInfoPanel.add(fingerPrintPanel); |
| | | }else { |
| | | personInfoPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 10)); |
| | | personInfoPanel.add(userIdLabel); |
| | | personInfoPanel.add(userIdTextField); |
| | | personInfoPanel.add(userNameLabel); |
| | | personInfoPanel.add(userNameTextField); |
| | | personInfoPanel.add(cardNoLabel); |
| | | personInfoPanel.add(cardNoTextField); |
| | | |
| | | if (emType == OPERATE_TYPE.DELETE_FINGERPRINT_BY_USERID |
| | | || emType == OPERATE_TYPE.DELETE_USER) { |
| | | JLabel promptLabel = new JLabel(" " + Res.string().getDeleteFingerPrintPrompt() + " "); |
| | | promptLabel.setEnabled(false); |
| | | personInfoPanel.add(promptLabel); |
| | | } |
| | | } |
| | | |
| | | //////////功能面板 ///////////////// |
| | | JPanel functionPanel = new JPanel(); |
| | | confirmBtn = new JButton(Res.string().getConfirm()); |
| | | cancelBtn = new JButton(Res.string().getCancel()); |
| | | confirmBtn.setPreferredSize(new Dimension(100, 20)); |
| | | cancelBtn.setPreferredSize(new Dimension(100, 20)); |
| | | |
| | | functionPanel.add(confirmBtn); |
| | | functionPanel.add(cancelBtn); |
| | | |
| | | add(personInfoPanel, BorderLayout.CENTER); |
| | | add(functionPanel, BorderLayout.SOUTH); |
| | | |
| | | operateListener = new UserOperateListener(); |
| | | confirmBtn.addActionListener(operateListener); |
| | | cancelBtn.addActionListener(operateListener); |
| | | |
| | | this.emType = emType; |
| | | switch(emType) { |
| | | case ADD_USER: |
| | | setTitle(Res.string().getAddPerson()); |
| | | confirmBtn.setText(Res.string().getAdd()); |
| | | break; |
| | | case MODIFIY_USER: |
| | | setTitle(Res.string().getModifyPerson()); |
| | | confirmBtn.setText(Res.string().getModify()); |
| | | userIdTextField.setEnabled(false); |
| | | break; |
| | | case DELETE_USER: |
| | | setTitle(Res.string().getDelPerson()); |
| | | confirmBtn.setText(Res.string().getDelete()); |
| | | userIdTextField.setEnabled(false); |
| | | userNameTextField.setEnabled(false); |
| | | cardNoTextField.setEnabled(false); |
| | | break; |
| | | case DELETE_FINGERPRINT_BY_USERID: |
| | | case DELETE_FINGERPRINT_BY_ID: |
| | | setTitle(Res.string().getDeleteFingerPrint()); |
| | | confirmBtn.setText(Res.string().getDelete()); |
| | | userIdTextField.setEnabled(false); |
| | | userNameTextField.setEnabled(false); |
| | | cardNoTextField.setEnabled(false); |
| | | fingerPrintIdTextField.setEditable(false); |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | |
| | | public boolean checkDataValidity() { |
| | | |
| | | if (emType == OPERATE_TYPE.ADD_USER) { |
| | | if (userIdTextField.getText().isEmpty()) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInput() + Res.string().getUserId(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | |
| | | try { |
| | | if (userIdTextField.getText().getBytes("UTF-8").length > NetSDKLib.MAX_COMMON_STRING_32-1) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getUserIdExceedLength(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | }catch (Exception e){ |
| | | |
| | | } |
| | | } |
| | | |
| | | try { |
| | | if (userNameTextField.getText().getBytes("UTF-8").length > NetSDKLib.MAX_ATTENDANCE_USERNAME_LEN-1) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getUserNameExceedLength(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | |
| | | if (cardNoTextField.getText().getBytes("UTF-8").length > NetSDKLib.MAX_COMMON_STRING_32-1) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getCardNoExceedLength(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | }catch (Exception e){ |
| | | |
| | | } |
| | | |
| | | |
| | | return true; |
| | | } |
| | | |
| | | public UserData getUserData() { |
| | | UserData userData = new UserData(); |
| | | userData.cardNo = userIdTextField.getText(); |
| | | userData.userName = userNameTextField.getText(); |
| | | userData.cardNo = cardNoTextField.getText(); |
| | | return userData; |
| | | } |
| | | |
| | | private class UserOperateListener implements ActionListener { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | |
| | | if (arg0.getSource() == cancelBtn) { |
| | | dispose(); |
| | | }else if (arg0.getSource() == confirmBtn) { |
| | | switch(emType) { |
| | | case ADD_USER: |
| | | if (!checkDataValidity()) { |
| | | return; |
| | | } |
| | | bSuccess = AttendanceModule.addUser(userIdTextField.getText(), userNameTextField.getText(), cardNoTextField.getText()); |
| | | break; |
| | | case MODIFIY_USER: |
| | | if (!checkDataValidity()) { |
| | | return; |
| | | } |
| | | bSuccess = AttendanceModule.modifyUser(userIdTextField.getText(), userNameTextField.getText(), cardNoTextField.getText()); |
| | | break; |
| | | case DELETE_USER: |
| | | bSuccess = AttendanceModule.deleteUser(userIdTextField.getText()); |
| | | break; |
| | | case DELETE_FINGERPRINT_BY_USERID: |
| | | bSuccess = AttendanceModule.removeFingerByUserId(userIdTextField.getText()); |
| | | break; |
| | | case DELETE_FINGERPRINT_BY_ID: |
| | | bSuccess = AttendanceModule.removeFingerRecord(Integer.parseInt(fingerPrintIdTextField.getText())); |
| | | break; |
| | | default: |
| | | System.err.println("Can't Deal Operate Type: " + emType); |
| | | break; |
| | | } |
| | | |
| | | if(bSuccess) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSucceed(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE); |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getFailed(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | dispose(); |
| | | }else { |
| | | System.err.println("Unknown Event: " + arg0.getSource()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private UserOperateListener operateListener; // 按键监听 |
| | | private JTextField userIdTextField; // 用户ID |
| | | private JTextField userNameTextField; // 用户名 |
| | | private JTextField cardNoTextField; // 卡号 |
| | | private JTextField fingerPrintIdTextField; // 信息ID |
| | | private JButton confirmBtn; // 确认(根据emType类型变化) |
| | | private JButton cancelBtn; // 取消 |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame.Attendance; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.Dimension; |
| | | import java.awt.FlowLayout; |
| | | import java.util.HashMap; |
| | | import java.util.Vector; |
| | | |
| | | import javax.swing.JButton; |
| | | import javax.swing.JFrame; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.JScrollPane; |
| | | import javax.swing.JSplitPane; |
| | | import javax.swing.JTable; |
| | | import javax.swing.ListSelectionModel; |
| | | import javax.swing.UIManager; |
| | | import javax.swing.table.DefaultTableCellRenderer; |
| | | import javax.swing.table.DefaultTableModel; |
| | | |
| | | import com.netsdk.common.BorderEx; |
| | | import com.netsdk.common.Res; |
| | | import com.netsdk.common.Res.LanguageType; |
| | | import com.netsdk.demo.module.AttendanceModule.AccessEventInfo; |
| | | import com.netsdk.demo.module.AttendanceModule.UserData; |
| | | import com.netsdk.lib.NetSDKLib.NET_ACCESS_DOOROPEN_METHOD; |
| | | |
| | | public class AttendanceShowPanel extends JPanel { |
| | | /** |
| | | * |
| | | */ |
| | | private static final long serialVersionUID = 1L; |
| | | public static int userIndex = 0; |
| | | public static int eventIndex = 0; |
| | | |
| | | public AttendanceShowPanel() { |
| | | setLayout(new BorderLayout()); |
| | | |
| | | userShowPanel = new UserInfoShowPanel(); |
| | | eventShowPanel = new EventInfoShowPanel(); |
| | | |
| | | JSplitPane splitPane = new JSplitPane(); |
| | | splitPane.setDividerSize(0); |
| | | splitPane.setBorder(null); |
| | | splitPane.add(userShowPanel, JSplitPane.LEFT); |
| | | splitPane.add(eventShowPanel, JSplitPane.RIGHT); |
| | | |
| | | add(splitPane); |
| | | } |
| | | |
| | | public void clearup() { |
| | | userShowPanel.clearData(); |
| | | eventShowPanel.clearEvent(); |
| | | } |
| | | |
| | | /** |
| | | * 用户信息显示界面 |
| | | * */ |
| | | public class UserInfoShowPanel extends JPanel { |
| | | /** |
| | | * |
| | | */ |
| | | private static final long serialVersionUID = 1L; |
| | | public static final int INDEX = 0; |
| | | public static final int USER_ID = 1; |
| | | public static final int USER_NAME = 2; |
| | | public static final int CARD_NO = 3; |
| | | public static final int FINGERPRINT_ID = 4; |
| | | public static final int FINGERPRINT_DATA = 5; |
| | | |
| | | public final static int QUERY_SHOW_COUNT = 15; // 查询人数 |
| | | private int realRows = 0; // 实际显示个数 |
| | | |
| | | public UserInfoShowPanel() { |
| | | BorderEx.set(this, Res.string().getUserList(), 1); |
| | | setLayout(new BorderLayout()); |
| | | setPreferredSize(new Dimension(395, 400)); |
| | | Vector<String> columnNames = new Vector<String>(); |
| | | columnNames.add(Res.string().getIndex()); // 序号 |
| | | columnNames.add(Res.string().getUserId()); // 用户编号 |
| | | columnNames.add(Res.string().getUserName()); // 用户名 |
| | | columnNames.add(Res.string().getCardNo()); // 卡号 |
| | | |
| | | tableModel = new DefaultTableModel(null, columnNames); |
| | | table = new JTable(tableModel) { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public boolean isCellEditable(int rowIndex, int columnIndex) { // 不可编辑 |
| | | return false; |
| | | } |
| | | }; |
| | | |
| | | tableModel.setRowCount(QUERY_SHOW_COUNT); // 设置最小显示行 |
| | | |
| | | table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // 只能选中一行 |
| | | |
| | | table.getColumnModel().getColumn(INDEX).setPreferredWidth(80); |
| | | table.getColumnModel().getColumn(USER_ID).setPreferredWidth(150); |
| | | table.getColumnModel().getColumn(USER_NAME).setPreferredWidth(150); |
| | | table.getColumnModel().getColumn(CARD_NO).setPreferredWidth(150); |
| | | |
| | | ((DefaultTableCellRenderer) |
| | | table.getTableHeader().getDefaultRenderer()).setHorizontalAlignment(JLabel.CENTER); |
| | | |
| | | table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); |
| | | |
| | | JScrollPane scrollPane = new JScrollPane(table); |
| | | scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); |
| | | scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); |
| | | |
| | | JPanel functionPanel = new JPanel(new FlowLayout(FlowLayout.CENTER)); |
| | | prePageBtn = new JButton(Res.string().getPreviousPage()); |
| | | nextPageBtn = new JButton(Res.string().getNextPage()); |
| | | prePageBtn.setPreferredSize(new Dimension(120, 20)); |
| | | nextPageBtn.setPreferredSize(new Dimension(120, 20)); |
| | | |
| | | prePageBtn.setEnabled(false); |
| | | nextPageBtn.setEnabled(false); |
| | | |
| | | functionPanel.add(prePageBtn); |
| | | functionPanel.add(new JLabel(" ")); |
| | | functionPanel.add(nextPageBtn); |
| | | |
| | | add(scrollPane, BorderLayout.CENTER); |
| | | add(functionPanel, BorderLayout.SOUTH); |
| | | } |
| | | |
| | | public int getRows(){ |
| | | return realRows; |
| | | } |
| | | |
| | | public UserData GetSelectedItem() { |
| | | int currentRow = table.getSelectedRow(); //获得所选的单行 |
| | | if(currentRow < 0 || currentRow + 1 > realRows) { |
| | | return null; |
| | | } |
| | | UserData userData = new UserData(); |
| | | |
| | | userData.userId = (String) tableModel.getValueAt(currentRow, 1); |
| | | userData.userName = (String) tableModel.getValueAt(currentRow, 2); |
| | | userData.cardNo = (String) tableModel.getValueAt(currentRow, 3); |
| | | |
| | | return userData; |
| | | } |
| | | |
| | | public void updateSelectedItem(UserData userData) { |
| | | |
| | | int currentRow = table.getSelectedRow(); //获得所选的单行 |
| | | if(currentRow < 0 || currentRow + 1 > realRows) { |
| | | return; |
| | | } |
| | | |
| | | // tableModel.setValueAt(userData.userId, currentRow, 1); |
| | | tableModel.setValueAt(userData.userName, currentRow, 2); |
| | | tableModel.setValueAt(userData.cardNo, currentRow, 3); |
| | | table.updateUI(); |
| | | } |
| | | |
| | | public void insertData(UserData[] arrUserData) { |
| | | if (arrUserData == null) { |
| | | return; |
| | | } |
| | | |
| | | realRows = 0; |
| | | tableModel.setRowCount(0); |
| | | |
| | | for (UserData userData : arrUserData) { |
| | | insertUserData(userData); |
| | | } |
| | | |
| | | tableModel.setRowCount(QUERY_SHOW_COUNT); |
| | | table.updateUI(); |
| | | |
| | | setButtonEnable(true); |
| | | } |
| | | |
| | | public void setButtonEnable(boolean b) { |
| | | if (b) { |
| | | if (UserData.nTotalUser - userIndex > 0) { |
| | | nextPageBtn.setEnabled(true); |
| | | }else { |
| | | nextPageBtn.setEnabled(false); |
| | | } |
| | | |
| | | if (userIndex - QUERY_SHOW_COUNT > 0) { |
| | | prePageBtn.setEnabled(true); |
| | | }else { |
| | | prePageBtn.setEnabled(false); |
| | | } |
| | | }else { |
| | | prePageBtn.setEnabled(false); |
| | | nextPageBtn.setEnabled(false); |
| | | } |
| | | } |
| | | |
| | | public void insertData(UserData userData) { |
| | | if (userData == null) { |
| | | return; |
| | | } |
| | | |
| | | clearData(); |
| | | tableModel.setRowCount(0); |
| | | |
| | | insertUserData(userData); |
| | | |
| | | tableModel.setRowCount(QUERY_SHOW_COUNT); |
| | | table.updateUI(); |
| | | |
| | | setButtonEnable(false); |
| | | } |
| | | |
| | | |
| | | private void insertUserData(UserData userData) { |
| | | ++userIndex; |
| | | ++realRows; |
| | | Vector<String> vector = new Vector<String>(); |
| | | vector.add(String.valueOf(userIndex)); |
| | | vector.add(userData.userId); |
| | | vector.add(userData.userName); |
| | | vector.add(userData.cardNo); |
| | | |
| | | tableModel.addRow(vector); |
| | | } |
| | | |
| | | public void clearData() { |
| | | realRows = 0; |
| | | userIndex = 0; |
| | | tableModel.setRowCount(0); |
| | | tableModel.setRowCount(QUERY_SHOW_COUNT); |
| | | table.updateUI(); |
| | | prePageBtn.setEnabled(false); |
| | | nextPageBtn.setEnabled(false); |
| | | } |
| | | |
| | | private JTable table = null; |
| | | private DefaultTableModel tableModel = null; |
| | | public JButton prePageBtn; |
| | | public JButton nextPageBtn; |
| | | } |
| | | |
| | | /** |
| | | * 门禁事件显示界面 |
| | | * */ |
| | | public class EventInfoShowPanel extends JPanel { |
| | | /** |
| | | * |
| | | */ |
| | | private static final long serialVersionUID = 1L; |
| | | private static final int INDEX = 0; |
| | | private static final int USER_ID = 1; |
| | | private static final int CARD_NO = 2; |
| | | private static final int EVENT_TIME = 3; |
| | | private static final int DOOR_OPEN_METHOD = 4; |
| | | |
| | | private final static int MIN_SHOW_LINES = 17; |
| | | private final static int MAX_SHOW_LINES = 50; |
| | | |
| | | public EventInfoShowPanel() { |
| | | BorderEx.set(this, Res.string().getEventInfo(), 1); |
| | | setLayout(new BorderLayout()); |
| | | setPreferredSize(new Dimension(395, 400)); |
| | | |
| | | Vector<String> columnNames = new Vector<String>(); |
| | | columnNames.add(Res.string().getIndex()); // 序号 |
| | | columnNames.add(Res.string().getUserId()); // 用户编号 |
| | | columnNames.add(Res.string().getCardNo()); // 卡号 |
| | | columnNames.add(Res.string().getEventTime()); // 事件时间 |
| | | columnNames.add(Res.string().getDoorOpenMethod()); // 开门方式 |
| | | |
| | | tableModel = new DefaultTableModel(null, columnNames); |
| | | table = new JTable(tableModel) { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public boolean isCellEditable(int rowIndex, int columnIndex) { |
| | | return false; |
| | | } |
| | | }; |
| | | |
| | | tableModel.setRowCount(MIN_SHOW_LINES); // 设置最小显示行 |
| | | |
| | | table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // 只能选中一行 |
| | | |
| | | table.getColumnModel().getColumn(INDEX).setPreferredWidth(80); |
| | | table.getColumnModel().getColumn(USER_ID).setPreferredWidth(150); |
| | | table.getColumnModel().getColumn(CARD_NO).setPreferredWidth(150); |
| | | table.getColumnModel().getColumn(EVENT_TIME).setPreferredWidth(150); |
| | | table.getColumnModel().getColumn(DOOR_OPEN_METHOD).setPreferredWidth(120); |
| | | |
| | | ((DefaultTableCellRenderer) |
| | | table.getTableHeader().getDefaultRenderer()).setHorizontalAlignment(JLabel.CENTER); |
| | | |
| | | table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); |
| | | |
| | | JScrollPane scrollPane = new JScrollPane(table); |
| | | scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); |
| | | scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); |
| | | add(scrollPane, BorderLayout.CENTER); |
| | | } |
| | | |
| | | public void clearEvent() { |
| | | eventIndex = 0; |
| | | tableModel.setRowCount(0); |
| | | tableModel.setRowCount(MIN_SHOW_LINES); |
| | | table.updateUI(); |
| | | } |
| | | |
| | | public void insertEvent(AccessEventInfo accessEventInfo) { |
| | | if (accessEventInfo == null) { |
| | | return; |
| | | } |
| | | ++eventIndex; |
| | | tableModel.insertRow(0, convertEventData(accessEventInfo)); |
| | | if (eventIndex <= MIN_SHOW_LINES) { |
| | | tableModel.setRowCount(MIN_SHOW_LINES); |
| | | }else if (eventIndex >= MAX_SHOW_LINES){ |
| | | tableModel.setRowCount(MAX_SHOW_LINES); |
| | | } |
| | | |
| | | table.updateUI(); |
| | | } |
| | | |
| | | private Vector<String> convertEventData(AccessEventInfo accessEventInfo) { |
| | | Vector<String> vector = new Vector<String>(); |
| | | vector.add(String.valueOf(eventIndex)); |
| | | vector.add(accessEventInfo.userId); |
| | | vector.add(accessEventInfo.cardNo); |
| | | vector.add(accessEventInfo.eventTime.replace("/", "-")); |
| | | String openDoor = openDoorMethodMap.get(accessEventInfo.openDoorMethod); |
| | | if (openDoor == null) { |
| | | openDoor = Res.string().getUnKnow(); |
| | | } |
| | | vector.add(openDoor); |
| | | |
| | | return vector; |
| | | } |
| | | |
| | | private JTable table = null; |
| | | private DefaultTableModel tableModel = null; |
| | | } |
| | | |
| | | private static HashMap<Integer, String> openDoorMethodMap = new HashMap<Integer, String>() { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | { |
| | | put(NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT, Res.string().getFingerPrint()); |
| | | put(NET_ACCESS_DOOROPEN_METHOD.NET_ACCESS_DOOROPEN_METHOD_CARD, Res.string().getCard()); |
| | | } |
| | | }; |
| | | |
| | | public UserInfoShowPanel userShowPanel; |
| | | public EventInfoShowPanel eventShowPanel; |
| | | |
| | | public static void main(String[] args) { |
| | | try { |
| | | UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | Res.string().switchLanguage(LanguageType.English); |
| | | |
| | | AttendanceShowPanel demo = new AttendanceShowPanel(); |
| | | JFrame frame = new JFrame(); |
| | | frame.setSize(800, 560); |
| | | frame.add(demo); |
| | | System.out.println("AttendanceShowPanel Test"); |
| | | frame.setVisible(true); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame.Attendance; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.Dimension; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | import java.awt.event.KeyEvent; |
| | | import java.awt.event.KeyListener; |
| | | |
| | | import javax.swing.JButton; |
| | | import javax.swing.JDialog; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JOptionPane; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.JScrollPane; |
| | | import javax.swing.JTextArea; |
| | | import javax.swing.JTextField; |
| | | |
| | | import com.netsdk.common.Base64; |
| | | import com.netsdk.common.BorderEx; |
| | | import com.netsdk.common.Res; |
| | | import com.netsdk.demo.module.AttendanceModule; |
| | | import com.netsdk.demo.module.AttendanceModule.OPERATE_TYPE; |
| | | import com.netsdk.demo.module.AttendanceModule.UserData; |
| | | |
| | | /** |
| | | * 通过信息ID操作信息对话框 |
| | | */ |
| | | public class OperateByFingerPrintIdDialog extends JDialog{ |
| | | /** |
| | | * |
| | | */ |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public OperateByFingerPrintIdDialog() { |
| | | setTitle(Res.string().getOperateByFingerPrintId()); |
| | | setLayout(new BorderLayout()); |
| | | setModal(true); |
| | | pack(); |
| | | setSize(600, 500); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | setDefaultCloseOperation(DISPOSE_ON_CLOSE); |
| | | |
| | | ////////// 查询条件 ///////////////// |
| | | JLabel fingerPrintIdLabel = new JLabel(Res.string().getFingerPrintId(), JLabel.CENTER); |
| | | fingerPrintIdTextField = new JTextField(); |
| | | fingerPrintIdLabel.setPreferredSize(new Dimension(85, 20)); |
| | | fingerPrintIdTextField.setPreferredSize(new Dimension(100, 20)); |
| | | |
| | | ////////// 信息功能 ///////////////// |
| | | searchFingerPrintBtn = new JButton(Res.string().getSearchFingerPrint()); |
| | | deleteFingerPrintBtn = new JButton(Res.string().getDeleteFingerPrint()); |
| | | |
| | | searchFingerPrintBtn.setPreferredSize(new Dimension(140, 20)); |
| | | deleteFingerPrintBtn.setPreferredSize(new Dimension(140, 20)); |
| | | |
| | | JPanel functionPanel = new JPanel(); |
| | | BorderEx.set(functionPanel, Res.string().getOperateByFingerPrintId(), 1); |
| | | functionPanel.add(fingerPrintIdLabel); |
| | | functionPanel.add(fingerPrintIdTextField); |
| | | functionPanel.add(searchFingerPrintBtn); |
| | | functionPanel.add(deleteFingerPrintBtn); |
| | | |
| | | //////////信息信息 ///////////////// |
| | | JPanel fingerPrintPanel = new JPanel(); |
| | | BorderEx.set(fingerPrintPanel, Res.string().getFingerPrintInfo(), 1); |
| | | fingerPrintPanel.setLayout(null); |
| | | JLabel userIdLabel = new JLabel(Res.string().getUserId()); |
| | | userId = new JLabel(); |
| | | JLabel fingerPrintDataLabel = new JLabel(Res.string().getFingerPrintData()); |
| | | fingerPrintData = new JTextArea(); |
| | | fingerPrintData.setBackground(null); |
| | | fingerPrintData.setEditable(false); |
| | | fingerPrintData.setLineWrap(true); |
| | | JScrollPane scrollPane = new JScrollPane(fingerPrintData); |
| | | userIdLabel.setBounds(30, 30, 90, 20); |
| | | userId.setBounds(150, 30, 300, 20); |
| | | fingerPrintDataLabel.setBounds(30, 60, 150, 20); |
| | | fingerPrintData.setBounds(30, 80, 600, 20); |
| | | scrollPane.setBounds(30, 80, 550, 300); |
| | | scrollPane.setBorder(null); |
| | | |
| | | fingerPrintPanel.add(userIdLabel); |
| | | fingerPrintPanel.add(userId); |
| | | fingerPrintPanel.add(fingerPrintDataLabel); |
| | | fingerPrintPanel.add(scrollPane); |
| | | |
| | | add(functionPanel, BorderLayout.NORTH); |
| | | add(fingerPrintPanel, BorderLayout.CENTER); |
| | | |
| | | fingerPrintIdTextField.addKeyListener(new KeyListener() { |
| | | |
| | | public void keyTyped(KeyEvent e) { |
| | | int key = e.getKeyChar(); |
| | | if (key < 48 || key > 57) { |
| | | e.consume(); |
| | | } |
| | | } |
| | | |
| | | public void keyPressed(KeyEvent e) {} |
| | | |
| | | public void keyReleased(KeyEvent e) {} |
| | | }); |
| | | |
| | | listener = new FingerPrintIdOperateActionListener(); |
| | | searchFingerPrintBtn.addActionListener(listener); |
| | | deleteFingerPrintBtn.addActionListener(listener); |
| | | } |
| | | |
| | | public String getFingerPrintId() { |
| | | |
| | | if (fingerPrintIdTextField.getText().isEmpty()) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInput()+Res.string().getFingerPrintId(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return null; |
| | | } |
| | | |
| | | try { |
| | | Integer.parseInt(fingerPrintIdTextField.getText()); |
| | | }catch (NumberFormatException e){ |
| | | JOptionPane.showMessageDialog(null, Res.string().getFingerPrintIdIllegal(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return null; |
| | | } |
| | | return fingerPrintIdTextField.getText(); |
| | | } |
| | | |
| | | public void searchFingerPrint() { |
| | | clearFingerPrintInfo(); |
| | | |
| | | String fingerPrintId = getFingerPrintId(); |
| | | if (fingerPrintId == null) { |
| | | return; |
| | | } |
| | | UserData userData = AttendanceModule.getFingerRecord(Integer.parseInt(fingerPrintId)); |
| | | if (userData == null) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getFailed(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if (userData.szFingerPrintInfo[0].length == 0) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getFingerPrintIdNotExist(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | dealFingerPrintInfo(userData); |
| | | } |
| | | |
| | | public void dealFingerPrintInfo(UserData userData) { |
| | | userId.setText(userData.userId); |
| | | fingerPrintData.setText(formatFingerPrintData(userData.szFingerPrintInfo[0])); |
| | | } |
| | | |
| | | private String formatFingerPrintData(byte[] fingerPrintData) { |
| | | String formatData = Base64.getEncoder().encodeToString(fingerPrintData); |
| | | return formatData; |
| | | } |
| | | |
| | | public void clearFingerPrintInfo() { |
| | | userId.setText(""); |
| | | fingerPrintData.setText(""); |
| | | } |
| | | |
| | | /** |
| | | * 按键监听实现类 |
| | | */ |
| | | private class FingerPrintIdOperateActionListener implements ActionListener { |
| | | |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | |
| | | OPERATE_TYPE emType = getOperateType(arg0.getSource()); |
| | | switch(emType) { |
| | | case SEARCH_FINGERPRINT_BY_ID: |
| | | searchFingerPrint(); |
| | | break; |
| | | case DELETE_FINGERPRINT_BY_ID: |
| | | String fingerPrintId = getFingerPrintId(); |
| | | if (fingerPrintId == null) { |
| | | return; |
| | | } |
| | | new AttendanceOperateShareDialog(emType, fingerPrintId).setVisible(true); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | |
| | | private OPERATE_TYPE getOperateType(Object btn) { |
| | | OPERATE_TYPE type = OPERATE_TYPE.UNKNOWN; |
| | | if (btn == searchFingerPrintBtn) { // 查找信息 |
| | | type = OPERATE_TYPE.SEARCH_FINGERPRINT_BY_ID; |
| | | }else if (btn == deleteFingerPrintBtn) { // 删除信息 |
| | | type = OPERATE_TYPE.DELETE_FINGERPRINT_BY_ID; |
| | | }else { |
| | | System.err.println("Unknown Event: " + btn); |
| | | } |
| | | |
| | | return type; |
| | | |
| | | } |
| | | } |
| | | |
| | | private JTextField fingerPrintIdTextField; |
| | | public JButton searchFingerPrintBtn; |
| | | private JButton deleteFingerPrintBtn; |
| | | private JLabel userId; |
| | | private JTextArea fingerPrintData; |
| | | private FingerPrintIdOperateActionListener listener; |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame.Attendance; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.Dimension; |
| | | import java.awt.FlowLayout; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | import java.util.Vector; |
| | | |
| | | import javax.swing.JButton; |
| | | import javax.swing.JDialog; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JOptionPane; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.JScrollPane; |
| | | import javax.swing.JSplitPane; |
| | | import javax.swing.JTable; |
| | | import javax.swing.JTextField; |
| | | import javax.swing.ListSelectionModel; |
| | | import javax.swing.table.DefaultTableCellRenderer; |
| | | import javax.swing.table.DefaultTableModel; |
| | | |
| | | import com.netsdk.common.Base64; |
| | | import com.netsdk.common.BorderEx; |
| | | import com.netsdk.common.Res; |
| | | import com.netsdk.demo.module.AttendanceModule; |
| | | import com.netsdk.demo.module.AttendanceModule.OPERATE_TYPE; |
| | | import com.netsdk.demo.module.AttendanceModule.UserData; |
| | | |
| | | public class OperateByUserIdDialog extends JDialog{ |
| | | /** |
| | | * |
| | | */ |
| | | private static final long serialVersionUID = 1L; |
| | | private UserData userData; |
| | | |
| | | public OperateByUserIdDialog(UserData userData) { |
| | | setTitle(Res.string().getOperateByUserId()); |
| | | setLayout(new BorderLayout()); |
| | | setModal(true); |
| | | pack(); |
| | | setSize(570, 383); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | setDefaultCloseOperation(DISPOSE_ON_CLOSE); |
| | | |
| | | ////////// 用户信息 (不可改变)///////////////// |
| | | JPanel userInfoPanel = new JPanel(); |
| | | userInfoPanel.setLayout(new FlowLayout(FlowLayout.LEFT)); |
| | | BorderEx.set(userInfoPanel, Res.string().getUserInfo(), 2); |
| | | |
| | | JLabel userIdLabel = new JLabel(Res.string().getUserId(), JLabel.CENTER); |
| | | JTextField userIdTextField = new JTextField(userData.userId); |
| | | JLabel userNameLabel = new JLabel(Res.string().getUserName(true), JLabel.CENTER); |
| | | JTextField userNameTextField = new JTextField(userData.userName); |
| | | JLabel cardNoLabel = new JLabel(Res.string().getCardNo(), JLabel.CENTER); |
| | | JTextField cardNoTextField = new JTextField(userData.cardNo); |
| | | |
| | | userIdTextField.setEnabled(false); |
| | | userNameTextField.setEnabled(false); |
| | | cardNoTextField.setEnabled(false); |
| | | |
| | | Dimension dimLable = new Dimension(55, 20); |
| | | userIdLabel.setPreferredSize(dimLable); |
| | | userNameLabel.setPreferredSize(dimLable); |
| | | cardNoLabel.setPreferredSize(dimLable); |
| | | Dimension dimValue = new Dimension(100, 20); |
| | | userIdTextField.setPreferredSize(dimValue); |
| | | userNameTextField.setPreferredSize(dimValue); |
| | | cardNoTextField.setPreferredSize(dimValue); |
| | | |
| | | userInfoPanel.add(userIdLabel); |
| | | userInfoPanel.add(userIdTextField); |
| | | userInfoPanel.add(userNameLabel); |
| | | userInfoPanel.add(userNameTextField); |
| | | userInfoPanel.add(cardNoLabel); |
| | | userInfoPanel.add(cardNoTextField); |
| | | |
| | | ////////// 信息功能 ///////////////// |
| | | JPanel functionPanel = new JPanel(); |
| | | BorderEx.set(functionPanel, Res.string().getOperateByUserId(), 2); |
| | | searchFingerPrintBtn = new JButton(Res.string().getSearchFingerPrint()); |
| | | addFingerPrintBtn = new JButton(Res.string().getAddFingerPrint()); |
| | | deleteFingerPrintBtn = new JButton(Res.string().getDeleteFingerPrint()); |
| | | |
| | | searchFingerPrintBtn.setPreferredSize(new Dimension(150, 20)); |
| | | addFingerPrintBtn.setPreferredSize(new Dimension(150, 20)); |
| | | deleteFingerPrintBtn.setPreferredSize(new Dimension(150, 20)); |
| | | |
| | | functionPanel.add(searchFingerPrintBtn); |
| | | functionPanel.add(addFingerPrintBtn); |
| | | functionPanel.add(deleteFingerPrintBtn); |
| | | |
| | | //////////布局 ///////////////// |
| | | JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT); |
| | | splitPane.setDividerSize(0); |
| | | splitPane.setBorder(null); |
| | | splitPane.add(userInfoPanel, JSplitPane.TOP); |
| | | splitPane.add(functionPanel, JSplitPane.BOTTOM); |
| | | add(splitPane, BorderLayout.NORTH); |
| | | |
| | | fingerPrintShowPanel = new FingerPrintShowPanel(); |
| | | add(fingerPrintShowPanel, BorderLayout.CENTER); |
| | | |
| | | listener = new UserIdOperateActionListener(); |
| | | searchFingerPrintBtn.addActionListener(listener); |
| | | addFingerPrintBtn.addActionListener(listener); |
| | | deleteFingerPrintBtn.addActionListener(listener); |
| | | |
| | | this.userData = userData; |
| | | } |
| | | |
| | | public void searchFingerPrint() { |
| | | clearTable(); |
| | | boolean bSuccess = AttendanceModule.getFingerByUserId(userData.userId, userData); |
| | | if (bSuccess){ |
| | | fingerPrintShowPanel.insertData(userData); |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getFailed(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | } |
| | | |
| | | public void clearTable() { |
| | | fingerPrintShowPanel.clearData(); |
| | | } |
| | | |
| | | public void addFingerPrint(int fingerPrintId, byte[] fingerPrintData) { |
| | | fingerPrintShowPanel.insertData(fingerPrintId, fingerPrintData); |
| | | } |
| | | |
| | | /** |
| | | * 按键监听实现类 |
| | | */ |
| | | private class UserIdOperateActionListener implements ActionListener { |
| | | |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | |
| | | OPERATE_TYPE emType = getOperateType(arg0.getSource()); |
| | | switch(emType) { |
| | | case SEARCH_FINGERPRINT_BY_USERID: |
| | | searchFingerPrint(); |
| | | break; |
| | | case ADD_FINGERPRINT: |
| | | new AddFingerPrintDialog(userData.userId).setVisible(true); |
| | | break; |
| | | case DELETE_FINGERPRINT_BY_USERID: |
| | | new AttendanceOperateShareDialog(emType, userData).setVisible(true); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | |
| | | private OPERATE_TYPE getOperateType(Object btn) { |
| | | OPERATE_TYPE type = OPERATE_TYPE.UNKNOWN; |
| | | if (btn == searchFingerPrintBtn) { // 查找信息 |
| | | type = OPERATE_TYPE.SEARCH_FINGERPRINT_BY_USERID; |
| | | }else if (btn == addFingerPrintBtn) { // 添加信息 |
| | | type = OPERATE_TYPE.ADD_FINGERPRINT; |
| | | }else if (btn == deleteFingerPrintBtn) { // 删除信息(用户ID) |
| | | type = OPERATE_TYPE.DELETE_FINGERPRINT_BY_USERID; |
| | | }else { |
| | | System.err.println("Unknown Event: " + btn); |
| | | } |
| | | |
| | | return type; |
| | | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 信息信息显示界面 |
| | | * */ |
| | | public class FingerPrintShowPanel extends JPanel { |
| | | /** |
| | | * |
| | | */ |
| | | private static final long serialVersionUID = 1L; |
| | | public static final int INDEX = 0; |
| | | public static final int USER_ID = 1; |
| | | public static final int FINGERPRINT_ID = 2; |
| | | public static final int FINGERPRINT_DATA = 3; |
| | | |
| | | public final static int MAX_FINGERPRINT_NUM = 10; // 最大信息个数, 也做为显示个数 |
| | | private int realRows = 0; // 实际显示个数 |
| | | |
| | | public FingerPrintShowPanel() { |
| | | BorderEx.set(this, Res.string().getFingerPrintInfo(), 1); |
| | | setLayout(new BorderLayout()); |
| | | setPreferredSize(new Dimension(550, 375)); |
| | | Vector<String> columnNames = new Vector<String>(); |
| | | columnNames.add(Res.string().getIndex()); // 序号 |
| | | columnNames.add(Res.string().getUserId()); // 用户编号 |
| | | columnNames.add(Res.string().getFingerPrintId()); // 信息ID |
| | | columnNames.add(Res.string().getFingerPrintData()); // 信息 |
| | | |
| | | tableModel = new DefaultTableModel(null, columnNames); |
| | | table = new JTable(tableModel) { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public boolean isCellEditable(int rowIndex, int columnIndex) { // 不可编辑 |
| | | return false; |
| | | } |
| | | }; |
| | | |
| | | tableModel.setRowCount(MAX_FINGERPRINT_NUM); // 设置最小显示行 |
| | | |
| | | table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // 只能选中一行(其实无意义) |
| | | |
| | | table.getColumnModel().getColumn(INDEX).setPreferredWidth(80); |
| | | table.getColumnModel().getColumn(USER_ID).setPreferredWidth(100); |
| | | table.getColumnModel().getColumn(FINGERPRINT_ID).setPreferredWidth(100); |
| | | table.getColumnModel().getColumn(FINGERPRINT_DATA).setPreferredWidth(8888); |
| | | |
| | | ((DefaultTableCellRenderer) |
| | | table.getTableHeader().getDefaultRenderer()).setHorizontalAlignment(JLabel.CENTER); |
| | | |
| | | table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); |
| | | |
| | | JScrollPane scrollPane = new JScrollPane(table); |
| | | scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); |
| | | scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); |
| | | |
| | | add(scrollPane, BorderLayout.CENTER); |
| | | } |
| | | |
| | | public void insertData(UserData userData) { |
| | | if (userData.nFingerPrintIDs == null) { |
| | | return; |
| | | } |
| | | |
| | | clearData(); |
| | | tableModel.setRowCount(0); |
| | | for (int i = 0; i < userData.nFingerPrintIDs.length; ++i) { |
| | | insertFingerPrintData(userData.nFingerPrintIDs[i], userData.szFingerPrintInfo[i]); |
| | | } |
| | | |
| | | tableModel.setRowCount(MAX_FINGERPRINT_NUM); |
| | | table.updateUI(); |
| | | } |
| | | |
| | | public void insertData(int fingerPrintId, byte[] fingerPrintData) { |
| | | tableModel.setRowCount(realRows); |
| | | insertFingerPrintData(fingerPrintId, fingerPrintData); |
| | | tableModel.setRowCount(MAX_FINGERPRINT_NUM); |
| | | table.updateUI(); |
| | | } |
| | | |
| | | private void insertFingerPrintData(int fingerPrintId, byte[] fingerPrintData) { |
| | | ++realRows; |
| | | Vector<String> vector = new Vector<String>(); |
| | | vector.add(String.valueOf(realRows)); |
| | | vector.add(userData.userId); |
| | | vector.add(String.valueOf(fingerPrintId)); |
| | | vector.add(formatFingerPrintData(fingerPrintData)); |
| | | tableModel.addRow(vector); |
| | | } |
| | | |
| | | private String formatFingerPrintData(byte[] fingerPrintData) { |
| | | String formatData = Base64.getEncoder().encodeToString(fingerPrintData); |
| | | return formatData; |
| | | } |
| | | |
| | | public void clearData() { |
| | | realRows = 0; |
| | | tableModel.setRowCount(0); |
| | | tableModel.setRowCount(MAX_FINGERPRINT_NUM); |
| | | table.updateUI(); |
| | | } |
| | | |
| | | private JTable table = null; |
| | | private DefaultTableModel tableModel = null; |
| | | } |
| | | |
| | | public JButton searchFingerPrintBtn; |
| | | private JButton addFingerPrintBtn; |
| | | private JButton deleteFingerPrintBtn; |
| | | private UserIdOperateActionListener listener; |
| | | private FingerPrintShowPanel fingerPrintShowPanel; |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame.Attendance; |
| | | |
| | | import java.awt.AWTEvent; |
| | | import java.awt.Dimension; |
| | | import java.awt.EventQueue; |
| | | import java.awt.FlowLayout; |
| | | import java.awt.Toolkit; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | |
| | | import javax.swing.JButton; |
| | | import javax.swing.JOptionPane; |
| | | import javax.swing.JPanel; |
| | | |
| | | import com.sun.jna.Pointer; |
| | | |
| | | import com.netsdk.common.BorderEx; |
| | | import com.netsdk.common.Res; |
| | | import com.netsdk.demo.frame.Attendance.AttendanceShowPanel.EventInfoShowPanel; |
| | | import com.netsdk.demo.module.AttendanceModule; |
| | | import com.netsdk.demo.module.AttendanceModule.AccessEventInfo; |
| | | import com.netsdk.lib.NetSDKLib; |
| | | import com.netsdk.lib.ToolKits; |
| | | import com.netsdk.lib.NetSDKLib.*; |
| | | |
| | | /** |
| | | * 订阅面板 |
| | | */ |
| | | public class SubscribePanel extends JPanel{ |
| | | /** |
| | | * |
| | | */ |
| | | private static final long serialVersionUID = 1L; |
| | | private java.awt.Component target = this; // 目标 |
| | | private boolean bSubscribe = false; // 订阅标志 |
| | | private EventInfoShowPanel eventShowPanel; // 事件显示界面 |
| | | public SubscribePanel(EventInfoShowPanel eventPanel) { |
| | | BorderEx.set(this, Res.string().getSubscribe(), 1); |
| | | setLayout(new FlowLayout(FlowLayout.CENTER, 5, 30)); |
| | | setPreferredSize(new Dimension(180, 80)); |
| | | |
| | | eventShowPanel = eventPanel; |
| | | callback = new fAnalyzerDataCB(); |
| | | |
| | | subscribeBtn = new JButton(Res.string().getSubscribe()); |
| | | subscribeBtn.setPreferredSize(new Dimension(150, 20)); |
| | | |
| | | add(subscribeBtn); |
| | | |
| | | subscribeBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | if (bSubscribe) { |
| | | AttendanceModule.stopRealLoadPicture(); |
| | | eventShowPanel.clearEvent(); |
| | | setSubscribeStatus(false); |
| | | }else { |
| | | if (AttendanceModule.realLoadPicture(callback)) { |
| | | setSubscribeStatus(true); |
| | | }else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSubscribeFailed() + ", " + ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | |
| | | }); |
| | | |
| | | subscribeBtn.setEnabled(false); |
| | | } |
| | | |
| | | public void setButtonEnable(boolean b) { |
| | | setSubscribeStatus(false); |
| | | subscribeBtn.setEnabled(b); |
| | | } |
| | | |
| | | public void setSubscribeStatus(boolean b) { |
| | | bSubscribe = b; |
| | | if (bSubscribe) { |
| | | subscribeBtn.setText(Res.string().getUnSubscribe()); |
| | | }else { |
| | | subscribeBtn.setText(Res.string().getSubscribe()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 智能报警事件回调 |
| | | **/ |
| | | public class fAnalyzerDataCB implements fAnalyzerDataCallBack { |
| | | public final EventQueue eventQueue = Toolkit.getDefaultToolkit().getSystemEventQueue(); |
| | | @Override |
| | | public int invoke(LLong lAnalyzerHandle, int dwAlarmType, |
| | | Pointer pAlarmInfo, Pointer pBuffer, int dwBufSize, |
| | | Pointer dwUser, int nSequence, Pointer reserved) { |
| | | if(pAlarmInfo == null) { |
| | | return 0; |
| | | } |
| | | |
| | | switch(dwAlarmType) { |
| | | case NetSDKLib.EVENT_IVS_ACCESS_CTL: // 门禁事件 |
| | | DEV_EVENT_ACCESS_CTL_INFO event = new DEV_EVENT_ACCESS_CTL_INFO(); |
| | | ToolKits.GetPointerData(pAlarmInfo, event); |
| | | AccessEventInfo accessEvent = new AccessEventInfo(); |
| | | accessEvent.userId = new String(event.szUserID).trim(); |
| | | accessEvent.cardNo = new String(event.szCardNo).trim(); |
| | | accessEvent.eventTime = event.UTC.toStringTime(); |
| | | accessEvent.openDoorMethod = event.emOpenMethod; |
| | | if (eventQueue != null) { |
| | | eventQueue.postEvent(new AccessEvent(target, accessEvent)); |
| | | } |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | |
| | | return 0; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 门禁事件 |
| | | **/ |
| | | class AccessEvent extends AWTEvent { |
| | | /** |
| | | * |
| | | */ |
| | | private static final long serialVersionUID = 1L; |
| | | public static final int EVENT_ID = AWTEvent.RESERVED_ID_MAX + 1; |
| | | private AccessEventInfo accessEvent; |
| | | |
| | | public AccessEvent(Object target, AccessEventInfo accessEvent) { |
| | | super(target, EVENT_ID); |
| | | this.accessEvent = accessEvent; |
| | | } |
| | | |
| | | public AccessEventInfo getAccessEventInfo() { |
| | | return this.accessEvent; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | protected void processEvent( AWTEvent event) { |
| | | if ( event instanceof AccessEvent) { |
| | | AccessEventInfo accessEventInfo = ((AccessEvent)event).getAccessEventInfo(); |
| | | eventShowPanel.insertEvent(accessEventInfo); |
| | | } else { |
| | | super.processEvent(event); |
| | | } |
| | | } |
| | | |
| | | private JButton subscribeBtn; // 订阅按钮 |
| | | private fAnalyzerDataCallBack callback; // 事件回调 |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame.AutoRegister; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.Dimension; |
| | | import java.awt.FlowLayout; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | import java.awt.event.WindowAdapter; |
| | | import java.awt.event.WindowEvent; |
| | | |
| | | import javax.swing.JButton; |
| | | import javax.swing.JDialog; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JOptionPane; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.JPasswordField; |
| | | import javax.swing.JTextField; |
| | | |
| | | import com.netsdk.common.BorderEx; |
| | | import com.netsdk.common.DeviceManagerListener; |
| | | import com.netsdk.common.Res; |
| | | |
| | | /** |
| | | * 在树上添加设备 |
| | | */ |
| | | public class AddDeviceDialog extends JDialog{ |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | private DeviceManagerListener listener; |
| | | public void addDeviceManagerListener(DeviceManagerListener listener) { |
| | | this.listener = listener; |
| | | } |
| | | |
| | | public AddDeviceDialog(){ |
| | | setTitle(Res.string().getAddDevice()); |
| | | setLayout(new BorderLayout()); |
| | | setModal(true); |
| | | pack(); |
| | | setSize(220, 180); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | setDefaultCloseOperation(DISPOSE_ON_CLOSE); // 释放窗体 |
| | | |
| | | AddDevicePanel addDevicePanel = new AddDevicePanel(); |
| | | add(addDevicePanel, BorderLayout.CENTER); |
| | | |
| | | addWindowListener(new WindowAdapter() { |
| | | public void windowClosing(WindowEvent e){ |
| | | dispose(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /* |
| | | * 添加设备面板 |
| | | */ |
| | | private class AddDevicePanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public AddDevicePanel() { |
| | | BorderEx.set(this, "", 2); |
| | | setLayout(new FlowLayout()); |
| | | |
| | | JLabel deviceIdLabel = new JLabel(Res.string().getDeviceID(), JLabel.CENTER); |
| | | JLabel usernameLabel = new JLabel(Res.string().getUserName(), JLabel.CENTER); |
| | | JLabel passwordLabel = new JLabel(Res.string().getPassword(), JLabel.CENTER); |
| | | |
| | | deviceIdLabel.setPreferredSize(new Dimension(60, 21)); |
| | | usernameLabel.setPreferredSize(new Dimension(60, 21)); |
| | | passwordLabel.setPreferredSize(new Dimension(60, 21)); |
| | | |
| | | deviceIdTextField = new JTextField(); |
| | | usernameTextField = new JTextField(); |
| | | passwordPasswordField = new JPasswordField(); |
| | | |
| | | deviceIdTextField.setPreferredSize(new Dimension(120, 20)); |
| | | usernameTextField.setPreferredSize(new Dimension(120, 20)); |
| | | passwordPasswordField.setPreferredSize(new Dimension(120, 20)); |
| | | |
| | | JButton addDeviceBtn = new JButton(Res.string().getAdd()); |
| | | JButton cancelBtn = new JButton(Res.string().getCancel()); |
| | | |
| | | addDeviceBtn.setPreferredSize(new Dimension(90, 21)); |
| | | cancelBtn.setPreferredSize(new Dimension(90, 21)); |
| | | |
| | | add(deviceIdLabel); |
| | | add(deviceIdTextField); |
| | | add(usernameLabel); |
| | | add(usernameTextField); |
| | | add(passwordLabel); |
| | | add(passwordPasswordField); |
| | | add(addDeviceBtn); |
| | | add(cancelBtn); |
| | | |
| | | // 添加 |
| | | addDeviceBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | if(deviceIdTextField.getText().equals("")) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInput() + Res.string().getDeviceID(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if(usernameTextField.getText().equals("")) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInput() + Res.string().getUserName(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if((new String(passwordPasswordField.getPassword()).trim()).equals("")) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInput() + Res.string().getPassword(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | dispose(); |
| | | listener.onDeviceManager(deviceIdTextField.getText(), |
| | | usernameTextField.getText(), |
| | | new String(passwordPasswordField.getPassword()).trim()); |
| | | } |
| | | }); |
| | | |
| | | // 取消,关闭 |
| | | cancelBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | dispose(); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | private JTextField deviceIdTextField; |
| | | private JTextField usernameTextField; |
| | | private JPasswordField passwordPasswordField; |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame.AutoRegister; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.Color; |
| | | import java.awt.Component; |
| | | import java.awt.Dimension; |
| | | import java.awt.FlowLayout; |
| | | import java.awt.Panel; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | import java.awt.event.MouseEvent; |
| | | import java.awt.event.MouseListener; |
| | | import java.awt.event.WindowAdapter; |
| | | import java.awt.event.WindowEvent; |
| | | import java.awt.image.BufferedImage; |
| | | import java.io.BufferedReader; |
| | | import java.io.BufferedWriter; |
| | | import java.io.ByteArrayInputStream; |
| | | import java.io.File; |
| | | import java.io.FileInputStream; |
| | | import java.io.FileNotFoundException; |
| | | import java.io.FileOutputStream; |
| | | import java.io.IOException; |
| | | import java.io.InputStreamReader; |
| | | import java.io.OutputStreamWriter; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.net.InetAddress; |
| | | import java.net.UnknownHostException; |
| | | import java.util.concurrent.ExecutionException; |
| | | |
| | | import javax.imageio.ImageIO; |
| | | import javax.swing.BorderFactory; |
| | | import javax.swing.ImageIcon; |
| | | import javax.swing.JButton; |
| | | import javax.swing.JFileChooser; |
| | | import javax.swing.JFrame; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JMenuItem; |
| | | import javax.swing.JOptionPane; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.JPopupMenu; |
| | | import javax.swing.JScrollPane; |
| | | import javax.swing.JTextField; |
| | | import javax.swing.JTree; |
| | | import javax.swing.SwingUtilities; |
| | | import javax.swing.SwingWorker; |
| | | import javax.swing.UIManager; |
| | | import javax.swing.filechooser.FileFilter; |
| | | import javax.swing.tree.DefaultMutableTreeNode; |
| | | import javax.swing.tree.DefaultTreeCellRenderer; |
| | | import javax.swing.tree.DefaultTreeModel; |
| | | import javax.swing.tree.TreePath; |
| | | import javax.swing.tree.TreeSelectionModel; |
| | | |
| | | import com.sun.jna.Pointer; |
| | | |
| | | import com.netsdk.common.BorderEx; |
| | | import com.netsdk.common.DeviceManagerListener; |
| | | import com.netsdk.common.FunctionList; |
| | | import com.netsdk.common.PaintPanel; |
| | | import com.netsdk.common.Res; |
| | | import com.netsdk.common.SavePath; |
| | | import com.netsdk.demo.module.*; |
| | | import com.netsdk.lib.NetSDKLib; |
| | | import com.netsdk.lib.ToolKits; |
| | | import com.netsdk.lib.NetSDKLib.*; |
| | | |
| | | /** |
| | | * 主动注册Demo:包含主动注册、实时预览、对讲、主动注册网络配置 |
| | | */ |
| | | class AutoRegisterFrame extends JFrame { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | // 设备断线通知回调 |
| | | private DisConnect disConnectCallback = new DisConnect(); |
| | | |
| | | // 主动注册监听回调 |
| | | private ServiceCB servicCallback = new ServiceCB(); |
| | | |
| | | // 抓图回调 |
| | | public CaptureReceiveCB captureCallback = new CaptureReceiveCB(); |
| | | |
| | | private boolean isExist = false; |
| | | |
| | | private TreeCellRender treeCellRender = new TreeCellRender(); |
| | | |
| | | // 预览句柄 |
| | | private LLong realplayHandle = new LLong(0); |
| | | |
| | | // 预览节点 |
| | | private ChannelTreeNode realplayChannelTreeNode = null; |
| | | |
| | | // 对讲节点 |
| | | private DeviceTreeNode talkDeviceTreeNode = null; |
| | | |
| | | public AutoRegisterFrame() { |
| | | setTitle(Res.string().getAutoRegister()); |
| | | setLayout(new BorderLayout()); |
| | | pack(); |
| | | setSize(780, 540); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | |
| | | // 打开工程,初始化,设置断线回调 |
| | | LoginModule.init(disConnectCallback, null); |
| | | |
| | | // 设置抓图回调 |
| | | AutoRegisterModule.setSnapRevCallBack(captureCallback); |
| | | |
| | | try { |
| | | UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | // 注册列表面板 |
| | | AutoRegisterTreePanel autoRegisterTreePanel = new AutoRegisterTreePanel(); |
| | | |
| | | // 实时预览面板 |
| | | RealPlayPanel realplayPanel = new RealPlayPanel(); |
| | | |
| | | // 监听和设备管理面板 |
| | | ListenDeviceManagerPanel listenDeviceManagerPanel = new ListenDeviceManagerPanel(); |
| | | |
| | | add(autoRegisterTreePanel, BorderLayout.WEST); |
| | | add(realplayPanel, BorderLayout.CENTER); |
| | | add(listenDeviceManagerPanel, BorderLayout.EAST); |
| | | |
| | | addWindowListener(new WindowAdapter() { |
| | | public void windowClosing(WindowEvent e) { |
| | | // 停止对讲 |
| | | if(AutoRegisterModule.m_hTalkHandle.longValue() != 0) { |
| | | AutoRegisterModule.stopTalk(AutoRegisterModule.m_hTalkHandle); |
| | | talkDeviceTreeNode = null; |
| | | } |
| | | |
| | | // 停止拉流 |
| | | if(realplayHandle.longValue() != 0) { |
| | | AutoRegisterModule.stopRealPlay(realplayHandle); |
| | | realplayWindowPanel.repaint(); |
| | | |
| | | realplayChannelTreeNode = null; |
| | | } |
| | | |
| | | // 登出所有设备 |
| | | for(int i = 0; i < rootNode.getChildCount(); i++) { |
| | | DeviceTreeNode deviceTreeNode = (DeviceTreeNode)rootNode.getChildAt(i); |
| | | if(deviceTreeNode.getDeviceInfo().getLoginHandle().longValue() != 0) { |
| | | AutoRegisterModule.logout(deviceTreeNode.getDeviceInfo().getLoginHandle()); |
| | | } |
| | | } |
| | | |
| | | // 停止服务 |
| | | AutoRegisterModule.stopServer(); |
| | | |
| | | LoginModule.cleanup(); // 关闭工程,释放资源 |
| | | dispose(); |
| | | |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | FunctionList demo = new FunctionList(); |
| | | demo.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /////////////////面板/////////////////// |
| | | // 设备断线回调: 通过 CLIENT_Init 设置该回调函数,当设备出现断线时,SDK会调用该函数 |
| | | private class DisConnect implements fDisConnect { |
| | | public void invoke(LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { |
| | | System.out.printf("Device[%s] Port[%d] DisConnect!\n", pchDVRIP, nDVRPort); |
| | | |
| | | for(int i = 0; i < rootNode.getChildCount(); i++) { |
| | | DeviceTreeNode deviceTreeNode = (DeviceTreeNode)rootNode.getChildAt(i); |
| | | |
| | | // 根据设备IP判断断线设备 |
| | | if(pchDVRIP.equals(deviceTreeNode.getDeviceInfo().getDeviceIp()) |
| | | && nDVRPort == deviceTreeNode.getDeviceInfo().getDevicePort()) { |
| | | |
| | | synchronized (this) { |
| | | // 停止断线设备的对讲, 主动注册中,对讲要用同步,不能在另开的线程里停止对讲,否则会出现句柄无效的错误 |
| | | if(deviceTreeNode == talkDeviceTreeNode) { |
| | | AutoRegisterModule.stopTalk(AutoRegisterModule.m_hTalkHandle); |
| | | |
| | | talkDeviceTreeNode = null; |
| | | } |
| | | |
| | | // 停止断线设备的拉流 |
| | | for(int j = 0; j < deviceTreeNode.getChildCount(); j++) { |
| | | ChannelTreeNode channelTreeNode = (ChannelTreeNode)deviceTreeNode.getChildAt(j); |
| | | if(channelTreeNode == realplayChannelTreeNode) { |
| | | AutoRegisterModule.stopRealPlay(realplayHandle); |
| | | realplayWindowPanel.repaint(); |
| | | |
| | | realplayChannelTreeNode = null; |
| | | |
| | | break; |
| | | } |
| | | } |
| | | |
| | | // 登出 |
| | | if(deviceTreeNode.getDeviceInfo().getLoginHandle().longValue() != 0) { |
| | | AutoRegisterModule.logout(deviceTreeNode.getDeviceInfo().getLoginHandle()); |
| | | } |
| | | |
| | | SwingUtilities.invokeLater(new DisConnectRunnable(deviceTreeNode)); |
| | | } |
| | | |
| | | break; |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | private class DisConnectRunnable implements Runnable { |
| | | DeviceTreeNode devicetTreeNode; |
| | | |
| | | public DisConnectRunnable(DeviceTreeNode devicetTreeNode) { |
| | | this.devicetTreeNode = devicetTreeNode; |
| | | } |
| | | |
| | | @Override |
| | | public void run() { |
| | | devicetTreeNode.setUserObject(devicetTreeNode.getDeviceInfo().getDevcieId()); |
| | | devicetTreeNode.removeAllChildren(); |
| | | |
| | | tree.updateUI(); |
| | | } |
| | | } |
| | | |
| | | private class AutoRegisterTreePanel extends JPanel { |
| | | /** |
| | | * |
| | | */ |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public AutoRegisterTreePanel() { |
| | | setLayout(new BorderLayout()); |
| | | Dimension dimension = new Dimension(); |
| | | dimension.width = 210; |
| | | setPreferredSize(dimension); |
| | | |
| | | JPanel configPanel = new JPanel(); |
| | | JPanel deviceListPanel = new JPanel(); |
| | | |
| | | add(configPanel, BorderLayout.NORTH); |
| | | add(deviceListPanel, BorderLayout.CENTER); |
| | | |
| | | ////// 配置面板 //////// |
| | | configPanel.setBorder(BorderFactory.createTitledBorder(Res.string().getOperate())); |
| | | configPanel.setPreferredSize(new Dimension(200, 55)); |
| | | configPanel.setLayout(new FlowLayout()); |
| | | |
| | | JButton configBtn = new JButton(Res.string().getDeviceConfig()); |
| | | configBtn.setPreferredSize(new Dimension(180, 21)); |
| | | |
| | | configPanel.add(configBtn); |
| | | |
| | | ////// 设备列表面板 /////// |
| | | deviceListPanel.setBorder(BorderFactory.createTitledBorder(Res.string().getDeviceList())); |
| | | deviceListPanel.setLayout(new BorderLayout()); |
| | | |
| | | rootNode = new DefaultMutableTreeNode(); |
| | | treeModel = new DefaultTreeModel(rootNode); |
| | | tree = new JTree(treeModel); |
| | | |
| | | tree.setBackground(Color.LIGHT_GRAY); |
| | | tree.setForeground(Color.BLACK); |
| | | tree.setEditable(false); |
| | | tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); |
| | | tree.setRootVisible(false); |
| | | tree.expandPath(new TreePath(rootNode)); |
| | | tree.setShowsRootHandles(true); |
| | | |
| | | JScrollPane jScrollPane = new JScrollPane(tree); |
| | | deviceListPanel.add(jScrollPane, BorderLayout.CENTER); |
| | | |
| | | // 配置设备 |
| | | configBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | DeviceConfigDialog deviceConfigDialog = new DeviceConfigDialog(); |
| | | deviceConfigDialog.setVisible(true); |
| | | } |
| | | }); |
| | | |
| | | tree.addMouseListener(new MouseListener() { |
| | | @Override |
| | | public void mouseReleased(MouseEvent e) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void mousePressed(MouseEvent e) { |
| | | // 右键 |
| | | if(SwingUtilities.isRightMouseButton(e)) { |
| | | TreePath treePath = tree.getPathForLocation(e.getX(), e.getY()); |
| | | tree.setSelectionPath(treePath); |
| | | |
| | | showPopupMenu(e.getComponent(), e.getX(), e.getY()); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void mouseExited(MouseEvent e) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void mouseEntered(MouseEvent e) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void mouseClicked(MouseEvent e) { |
| | | // 双击 |
| | | if(e.getClickCount() > 1) { |
| | | if(tree.getLastSelectedPathComponent() instanceof ChannelTreeNode) { |
| | | ChannelTreeNode channelTreeNode = (ChannelTreeNode)tree.getLastSelectedPathComponent(); |
| | | |
| | | if(channelTreeNode != realplayChannelTreeNode) { |
| | | startRealplay(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 树的右键弹出菜单 |
| | | */ |
| | | @SuppressWarnings("static-access") |
| | | private void showPopupMenu( Component component, int x, int y) { |
| | | JPopupMenu popupMenu = new JPopupMenu(); |
| | | |
| | | JMenuItem logoutMenuItem = new JMenuItem(Res.string().getLogout()); |
| | | JMenuItem addDeviceMenuItem = new JMenuItem(Res.string().getAddDevice()); |
| | | JMenuItem modifyDeviceMenuItem = new JMenuItem(Res.string().getModifyDevice()); |
| | | JMenuItem deleteDeviceMenuItem = new JMenuItem(Res.string().getDeleteDevice()); |
| | | JMenuItem clearDeviceMenuItem = new JMenuItem(Res.string().getClearDevice()); |
| | | JMenuItem importDeviceMenuItem = new JMenuItem(Res.string().getImportDevice()); |
| | | JMenuItem exportDeviceMenuItem = new JMenuItem(Res.string().getExportDevice()); |
| | | JMenuItem realplayMenuItem = new JMenuItem(Res.string().getStartRealPlay()); |
| | | JMenuItem stopRealplayMenuItem = new JMenuItem(Res.string().getStopRealPlay()); |
| | | JMenuItem startTalkMenuItem = new JMenuItem(Res.string().getStartTalk()); |
| | | JMenuItem stopTalkMenuItem = new JMenuItem(Res.string().getStopTalk()); |
| | | JMenuItem captureMenuItem = new JMenuItem(Res.string().getRemoteCapture()); |
| | | |
| | | if(tree.getLastSelectedPathComponent() instanceof DeviceTreeNode) { // 右击设备节点 |
| | | DeviceTreeNode deviceTreeNode = (DeviceTreeNode)tree.getLastSelectedPathComponent(); |
| | | |
| | | if(deviceTreeNode!=null&&deviceTreeNode.getDeviceInfo().getLoginHandle().longValue() != 0) { // 登陆 |
| | | popupMenu.add(logoutMenuItem); |
| | | popupMenu.add(deleteDeviceMenuItem); |
| | | |
| | | if(deviceTreeNode == talkDeviceTreeNode) { // 对讲 |
| | | popupMenu.add(stopTalkMenuItem); |
| | | } else { // 停止对讲 |
| | | popupMenu.add(startTalkMenuItem); |
| | | } |
| | | } else { // 未登陆 |
| | | popupMenu.add(modifyDeviceMenuItem); |
| | | popupMenu.add(deleteDeviceMenuItem); |
| | | } |
| | | } else if(tree.getLastSelectedPathComponent() instanceof ChannelTreeNode) { // 右击通道节点 |
| | | ChannelTreeNode channelTreeNode = (ChannelTreeNode)tree.getLastSelectedPathComponent(); |
| | | |
| | | if(channelTreeNode == realplayChannelTreeNode) { // 拉流 |
| | | popupMenu.add(stopRealplayMenuItem); |
| | | } else { // 未拉流 |
| | | popupMenu.add(realplayMenuItem); |
| | | } |
| | | |
| | | popupMenu.add(captureMenuItem); |
| | | } else { // 右键空白区域 |
| | | popupMenu.add(addDeviceMenuItem); |
| | | popupMenu.add(clearDeviceMenuItem); |
| | | popupMenu.add(importDeviceMenuItem); |
| | | popupMenu.add(exportDeviceMenuItem); |
| | | |
| | | logoutBtn.setEnabled(false); |
| | | modifyDeviceBtn.setEnabled(false); |
| | | deleteDeviceBtn.setEnabled(false); |
| | | startRealPlayBtn.setEnabled(false); |
| | | stopRealPlayBtn.setEnabled(false); |
| | | startTalkBtn.setEnabled(false); |
| | | stopTalkBtn.setEnabled(false); |
| | | captureBtn.setEnabled(false); |
| | | } |
| | | |
| | | popupMenu.setDefaultLightWeightPopupEnabled(false); |
| | | popupMenu.show(component, x, y); |
| | | |
| | | // 登出 |
| | | logoutMenuItem.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | logout(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | // 添加设备 |
| | | addDeviceMenuItem.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | addDevice(); |
| | | } |
| | | }); |
| | | |
| | | // 修改设备 |
| | | modifyDeviceMenuItem.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | modifyDevice(); |
| | | } |
| | | }); |
| | | |
| | | // 删除设备 |
| | | deleteDeviceMenuItem.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | deleteDevice(); |
| | | } |
| | | }); |
| | | |
| | | // 清空设备 |
| | | clearDeviceMenuItem.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | clearDevice(); |
| | | } |
| | | }); |
| | | |
| | | // 导入设备 |
| | | importDeviceMenuItem.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | importDevice(); |
| | | } |
| | | }); |
| | | |
| | | // 导出设备 |
| | | exportDeviceMenuItem.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | exportDevice(); |
| | | } |
| | | }); |
| | | |
| | | // 开始预览 |
| | | realplayMenuItem.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | startRealplay(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | // 停止预览 |
| | | stopRealplayMenuItem.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | stopRealplay(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | // 开始对讲 |
| | | startTalkMenuItem.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | startTalk(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | // 停止对讲 |
| | | stopTalkMenuItem.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | stopTalk(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | // 远程抓图 |
| | | captureMenuItem.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | capture(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * 实时预览面板 |
| | | */ |
| | | private class RealPlayPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public RealPlayPanel() { |
| | | BorderEx.set(this, "", 0); |
| | | setLayout(new BorderLayout()); |
| | | |
| | | JPanel realplayPanel = new JPanel(); |
| | | JPanel picPanel = new JPanel(); |
| | | |
| | | add(realplayPanel, BorderLayout.NORTH); |
| | | add(picPanel, BorderLayout.CENTER); |
| | | |
| | | // 实时预览面板 |
| | | realplayPanel.setBorder(BorderFactory.createTitledBorder(Res.string().getRealplay())); |
| | | Dimension dimension = new Dimension(); |
| | | dimension.height = 250; |
| | | realplayPanel.setPreferredSize(dimension); |
| | | realplayPanel.setLayout(new BorderLayout()); |
| | | |
| | | realplayWindowPanel = new Panel(); |
| | | realplayWindowPanel.setBackground(Color.GRAY); |
| | | realplayPanel.add(realplayWindowPanel, BorderLayout.CENTER); |
| | | |
| | | // 抓图面板 |
| | | picPanel.setBorder(BorderFactory.createTitledBorder(Res.string().getCapturePicture())); |
| | | picPanel.setLayout(new BorderLayout()); |
| | | |
| | | capturePanel = new PaintPanel(); |
| | | |
| | | picPanel.add(capturePanel, BorderLayout.CENTER); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 监听和设备管理面板 |
| | | */ |
| | | private class ListenDeviceManagerPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public ListenDeviceManagerPanel() { |
| | | setLayout(new BorderLayout()); |
| | | Dimension dimension = new Dimension(); |
| | | dimension.width = 230; |
| | | setPreferredSize(dimension); |
| | | |
| | | JPanel listenPanel = new JPanel(); |
| | | JPanel deviceManagerPanel = new JPanel(); |
| | | JPanel functionOperatePanel = new JPanel(); |
| | | |
| | | add(listenPanel, BorderLayout.NORTH); |
| | | add(deviceManagerPanel, BorderLayout.CENTER); |
| | | add(functionOperatePanel, BorderLayout.SOUTH); |
| | | |
| | | ///// 监听面板 ///// |
| | | listenPanel.setBorder(BorderFactory.createTitledBorder(Res.string().getAutoRegisterListen())); |
| | | listenPanel.setPreferredSize(new Dimension(200, 110)); |
| | | listenPanel.setLayout(new FlowLayout()); |
| | | |
| | | JLabel ipLabel = new JLabel(Res.string().getRegisterAddress(), JLabel.CENTER); |
| | | JLabel portLabel = new JLabel(Res.string().getRegisterPort(), JLabel.CENTER); |
| | | |
| | | ipLabel.setPreferredSize(new Dimension(100, 21)); |
| | | portLabel.setPreferredSize(new Dimension(100, 21)); |
| | | |
| | | ipTextField = new JTextField(getHostAddress()); |
| | | portTextField = new JTextField("9500"); |
| | | |
| | | ipTextField.setPreferredSize(new Dimension(100, 21)); |
| | | portTextField.setPreferredSize(new Dimension(100, 21)); |
| | | |
| | | startListenBtn = new JButton(Res.string().getStartListen()); |
| | | stopListenBtn = new JButton(Res.string().getStopListen()); |
| | | |
| | | startListenBtn.setPreferredSize(new Dimension(105, 21)); |
| | | stopListenBtn.setPreferredSize(new Dimension(100, 21)); |
| | | stopListenBtn.setEnabled(false); |
| | | |
| | | listenPanel.add(ipLabel); |
| | | listenPanel.add(ipTextField); |
| | | listenPanel.add(portLabel); |
| | | listenPanel.add(portTextField); |
| | | listenPanel.add(startListenBtn); |
| | | listenPanel.add(stopListenBtn); |
| | | |
| | | ///// 设备管理 //////// |
| | | deviceManagerPanel.setBorder(BorderFactory.createTitledBorder(Res.string().getDeviceManager())); |
| | | deviceManagerPanel.setLayout(new FlowLayout()); |
| | | |
| | | logoutBtn = new JButton(Res.string().getLogout()); |
| | | addDeviceBtn = new JButton(Res.string().getAddDevice()); |
| | | modifyDeviceBtn = new JButton(Res.string().getModifyDevice()); |
| | | deleteDeviceBtn = new JButton(Res.string().getDeleteDevice()); |
| | | clearDeviceBtn = new JButton(Res.string().getClearDevice()); |
| | | importDeviceBtn = new JButton(Res.string().getImportDevice()); |
| | | exportDeviceBtn = new JButton(Res.string().getExportDevice()); |
| | | |
| | | logoutBtn.setPreferredSize(new Dimension(210, 21)); |
| | | addDeviceBtn.setPreferredSize(new Dimension(210, 21)); |
| | | modifyDeviceBtn.setPreferredSize(new Dimension(210, 21)); |
| | | deleteDeviceBtn.setPreferredSize(new Dimension(210, 21)); |
| | | clearDeviceBtn.setPreferredSize(new Dimension(210, 21)); |
| | | importDeviceBtn.setPreferredSize(new Dimension(210, 21)); |
| | | exportDeviceBtn.setPreferredSize(new Dimension(210, 21)); |
| | | |
| | | logoutBtn.setEnabled(false); |
| | | modifyDeviceBtn.setEnabled(false); |
| | | deleteDeviceBtn.setEnabled(false); |
| | | |
| | | deviceManagerPanel.add(logoutBtn); |
| | | deviceManagerPanel.add(addDeviceBtn); |
| | | deviceManagerPanel.add(modifyDeviceBtn); |
| | | deviceManagerPanel.add(deleteDeviceBtn); |
| | | deviceManagerPanel.add(clearDeviceBtn); |
| | | deviceManagerPanel.add(importDeviceBtn); |
| | | deviceManagerPanel.add(exportDeviceBtn); |
| | | |
| | | ///// 基本操作 //////// |
| | | functionOperatePanel.setBorder(BorderFactory.createTitledBorder(Res.string().getFunctionOperate())); |
| | | functionOperatePanel.setLayout(new FlowLayout()); |
| | | Dimension dimension1 = new Dimension(); |
| | | dimension1.height = 160; |
| | | functionOperatePanel.setPreferredSize(dimension1); |
| | | |
| | | startRealPlayBtn = new JButton(Res.string().getStartRealPlay()); |
| | | stopRealPlayBtn = new JButton(Res.string().getStopRealPlay()); |
| | | startTalkBtn = new JButton(Res.string().getStartTalk()); |
| | | stopTalkBtn = new JButton(Res.string().getStopTalk()); |
| | | captureBtn = new JButton(Res.string().getRemoteCapture()); |
| | | |
| | | startRealPlayBtn.setPreferredSize(new Dimension(210, 21)); |
| | | stopRealPlayBtn.setPreferredSize(new Dimension(210, 21)); |
| | | startTalkBtn.setPreferredSize(new Dimension(210, 21)); |
| | | stopTalkBtn.setPreferredSize(new Dimension(210, 21)); |
| | | captureBtn.setPreferredSize(new Dimension(210, 21)); |
| | | |
| | | startRealPlayBtn.setEnabled(false); |
| | | stopRealPlayBtn.setEnabled(false); |
| | | startTalkBtn.setEnabled(false); |
| | | stopTalkBtn.setEnabled(false); |
| | | captureBtn.setEnabled(false); |
| | | |
| | | functionOperatePanel.add(startRealPlayBtn); |
| | | functionOperatePanel.add(stopRealPlayBtn); |
| | | functionOperatePanel.add(startTalkBtn); |
| | | functionOperatePanel.add(stopTalkBtn); |
| | | functionOperatePanel.add(captureBtn); |
| | | |
| | | // 开启监听服务 |
| | | startListenBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | if(ipTextField.getText().equals("")) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInput() + Res.string().getRegisterAddress(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if(portTextField.getText().equals("")) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInput() + Res.string().getRegisterPort(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if(AutoRegisterModule.startServer(ipTextField.getText(), |
| | | Integer.parseInt(portTextField.getText()), |
| | | servicCallback)) { |
| | | startListenBtn.setEnabled(false); |
| | | stopListenBtn.setEnabled(true); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | // 停止监听服务 |
| | | stopListenBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | if(AutoRegisterModule.stopServer()) { |
| | | startListenBtn.setEnabled(true); |
| | | stopListenBtn.setEnabled(false); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | // 添加设备 |
| | | addDeviceBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | addDevice(); |
| | | } |
| | | }); |
| | | |
| | | // 修改设备 |
| | | modifyDeviceBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | modifyDevice(); |
| | | } |
| | | }); |
| | | |
| | | // 删除单个 |
| | | deleteDeviceBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | deleteDevice(); |
| | | } |
| | | }); |
| | | |
| | | // 清空设备 |
| | | clearDeviceBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | clearDevice(); |
| | | } |
| | | }); |
| | | |
| | | // 导入文件 |
| | | importDeviceBtn.addActionListener(new ActionListener() { |
| | | public void actionPerformed(ActionEvent e) { |
| | | importDevice(); |
| | | } |
| | | }); |
| | | |
| | | // 导出文件 |
| | | exportDeviceBtn.addActionListener(new ActionListener() { |
| | | public void actionPerformed(ActionEvent e) { |
| | | exportDevice(); |
| | | } |
| | | }); |
| | | |
| | | // 登出 |
| | | logoutBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | logout(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | // 开始拉流 |
| | | startRealPlayBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | startRealplay(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | // 停止拉流 |
| | | stopRealPlayBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | stopRealplay(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | // 开始对讲 |
| | | startTalkBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | startTalk(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | // 停止对讲 |
| | | stopTalkBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | stopTalk(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | // 抓图 |
| | | captureBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | capture(); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 添加设备 |
| | | */ |
| | | private void addDevice() { |
| | | isExist = false; |
| | | |
| | | AddDeviceDialog addDeviceDialog = new AddDeviceDialog(); |
| | | |
| | | addDeviceDialog.addDeviceManagerListener(new DeviceManagerListener() { |
| | | @Override |
| | | public void onDeviceManager(String deviceId, String username, |
| | | String password) { |
| | | if(!deviceId.equals("")) { |
| | | // 最大支持导入100个 |
| | | if(rootNode.getChildCount() >= 100) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getMaximumSupport(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | // 判断设备是否存在 |
| | | for(int i = 0; i < rootNode.getChildCount(); i++) { |
| | | DeviceTreeNode childNode = (DeviceTreeNode)rootNode.getChildAt(i); |
| | | |
| | | if(deviceId.equals(childNode.getDeviceInfo().getDevcieId())) { |
| | | isExist = true; |
| | | JOptionPane.showMessageDialog(null, Res.string().getAlreadyExisted(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | // 不存在,可以添加 |
| | | if(!isExist) { |
| | | DEVICE_INFO deviceInfo = new DEVICE_INFO(); |
| | | deviceInfo.setDevcieId(deviceId); |
| | | deviceInfo.setUsername(username); |
| | | deviceInfo.setPassword(password); |
| | | |
| | | DeviceTreeNode childNode = new DeviceTreeNode(); |
| | | childNode.setDeviceInfo(deviceInfo); |
| | | childNode.setUserObject(deviceId); |
| | | |
| | | rootNode.add(childNode); |
| | | |
| | | tree.expandPath(new TreePath(rootNode)); |
| | | tree.updateUI(); |
| | | tree.setCellRenderer(treeCellRender); |
| | | |
| | | JOptionPane.showMessageDialog(null, Res.string().getSucceed(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | |
| | | addDeviceDialog.setVisible(true); |
| | | } |
| | | |
| | | /** |
| | | * 修改设备 |
| | | */ |
| | | private void modifyDevice() { |
| | | isExist = false; |
| | | |
| | | // 选中的设备节点 |
| | | final DeviceTreeNode deviceTreeNode = (DeviceTreeNode)tree.getLastSelectedPathComponent(); |
| | | |
| | | if(deviceTreeNode == null) { |
| | | return; |
| | | } |
| | | |
| | | ModifyDeviceDialog modifyDeviceDialog = new ModifyDeviceDialog(deviceTreeNode.getDeviceInfo().devcieId, deviceTreeNode.getDeviceInfo().username, deviceTreeNode.getDeviceInfo().password); |
| | | |
| | | modifyDeviceDialog.addDeviceManagerListener(new DeviceManagerListener() { |
| | | @Override |
| | | public void onDeviceManager(String deviceId, String username, String password) { |
| | | if(deviceTreeNode.getDeviceInfo().getLoginHandle().longValue() != 0) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getDeviceLogined(), Res.string().getErrorMessage(), JOptionPane.INFORMATION_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if(!deviceId.equals("")) { |
| | | // 设备ID变化,循环检查,查看是否已存在。 设备ID不变,即修改用户名和密码 |
| | | if(!deviceId.equals(deviceTreeNode.getDeviceInfo().devcieId)) { |
| | | // 判断设备是否存在 |
| | | for(int i = 0; i < rootNode.getChildCount(); i++) { |
| | | DeviceTreeNode childNode = (DeviceTreeNode)rootNode.getChildAt(i); |
| | | |
| | | if(deviceId.equals(childNode.getDeviceInfo().getDevcieId())) { |
| | | isExist = true; |
| | | JOptionPane.showMessageDialog(null, Res.string().getAlreadyExisted(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | if(!isExist) { |
| | | // 修改信息 |
| | | deviceTreeNode.getDeviceInfo().setDevcieId(deviceId); |
| | | deviceTreeNode.getDeviceInfo().setUsername(username); |
| | | deviceTreeNode.getDeviceInfo().setPassword(password); |
| | | |
| | | deviceTreeNode.setUserObject(deviceId); |
| | | deviceTreeNode.removeAllChildren(); |
| | | |
| | | tree.updateUI(); |
| | | |
| | | JOptionPane.showMessageDialog(null, Res.string().getSucceed(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | |
| | | modifyDeviceDialog.setVisible(true); |
| | | } |
| | | |
| | | /** |
| | | * 删除单个设备 |
| | | */ |
| | | private void deleteDevice() { |
| | | // 判断是否选中 |
| | | DeviceTreeNode deviceTreeNode = (DeviceTreeNode)tree.getLastSelectedPathComponent(); |
| | | |
| | | if(deviceTreeNode == null) { |
| | | return; |
| | | } |
| | | |
| | | // 停止当前登录设备的对讲 |
| | | if(deviceTreeNode == talkDeviceTreeNode) { |
| | | AutoRegisterModule.stopTalk(AutoRegisterModule.m_hTalkHandle); |
| | | |
| | | talkDeviceTreeNode = null; |
| | | } |
| | | |
| | | // 停止当前登录设备的拉流 |
| | | for(int i = 0; i < deviceTreeNode.getChildCount(); i++) { |
| | | ChannelTreeNode channelTreeNode = (ChannelTreeNode)deviceTreeNode.getChildAt(i); |
| | | if(channelTreeNode == realplayChannelTreeNode) { |
| | | AutoRegisterModule.stopRealPlay(realplayHandle); |
| | | realplayWindowPanel.repaint(); |
| | | |
| | | realplayChannelTreeNode = null; |
| | | |
| | | break; |
| | | } |
| | | } |
| | | |
| | | // 登出 |
| | | if(deviceTreeNode.getDeviceInfo().getLoginHandle().longValue() != 0) { |
| | | AutoRegisterModule.logout(deviceTreeNode.getDeviceInfo().getLoginHandle()); |
| | | |
| | | logoutBtn.setEnabled(false); |
| | | modifyDeviceBtn.setEnabled(true); |
| | | } |
| | | |
| | | deviceTreeNode.setUserObject(deviceTreeNode.getDeviceInfo().getDevcieId()); |
| | | |
| | | treeModel.removeNodeFromParent(deviceTreeNode); |
| | | tree.updateUI(); |
| | | |
| | | modifyDeviceBtn.setEnabled(false); |
| | | deleteDeviceBtn.setEnabled(false); |
| | | } |
| | | |
| | | /** |
| | | * 清空设备 |
| | | */ |
| | | private void clearDevice() { |
| | | // 停止拉流 |
| | | if(realplayHandle.longValue() != 0) { |
| | | AutoRegisterModule.stopRealPlay(realplayHandle); |
| | | realplayWindowPanel.repaint(); |
| | | |
| | | realplayChannelTreeNode = null; |
| | | } |
| | | |
| | | // 停止对讲 |
| | | if(AutoRegisterModule.m_hTalkHandle.longValue() != 0) { |
| | | AutoRegisterModule.stopTalk(AutoRegisterModule.m_hTalkHandle); |
| | | |
| | | talkDeviceTreeNode = null; |
| | | } |
| | | |
| | | // 登出所有设备 |
| | | for(int i = 0; i < rootNode.getChildCount(); i++) { |
| | | DeviceTreeNode deviceTreeNode = (DeviceTreeNode)rootNode.getChildAt(i); |
| | | if(deviceTreeNode.getDeviceInfo().getLoginHandle().longValue() != 0) { |
| | | AutoRegisterModule.logout(deviceTreeNode.getDeviceInfo().getLoginHandle()); |
| | | } |
| | | } |
| | | |
| | | capturePanel.setOpaque(true); |
| | | capturePanel.repaint(); |
| | | |
| | | rootNode.removeAllChildren(); |
| | | tree.updateUI(); |
| | | |
| | | logoutBtn.setEnabled(false); |
| | | modifyDeviceBtn.setEnabled(false); |
| | | deleteDeviceBtn.setEnabled(false); |
| | | startRealPlayBtn.setEnabled(false); |
| | | stopRealPlayBtn.setEnabled(false); |
| | | startTalkBtn.setEnabled(false); |
| | | stopTalkBtn.setEnabled(false); |
| | | captureBtn.setEnabled(false); |
| | | } |
| | | |
| | | /** |
| | | * 导入文件 |
| | | */ |
| | | private void importDevice() { |
| | | jfc = new JFileChooser("./"); |
| | | jfc.setMultiSelectionEnabled(false); //不可以拖选多个文件 |
| | | jfc.setAcceptAllFileFilterUsed(false); //关掉显示所有 |
| | | jfc.setDialogTitle(Res.string().getImportDevice()); |
| | | |
| | | //添加过滤器 |
| | | jfc.addChoosableFileFilter(new FileFilter() { |
| | | public boolean accept(File f) { |
| | | if(f.getName().toLowerCase().endsWith("csv") |
| | | || f.isDirectory()) { |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | public String getDescription() { |
| | | return ".csv"; |
| | | } |
| | | }); |
| | | |
| | | if(jfc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { |
| | | String path = jfc.getSelectedFile().getAbsolutePath(); |
| | | |
| | | if(!path.endsWith("csv")) { |
| | | path += ".csv"; |
| | | } |
| | | importFile(path, "GB2312"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 导出文件 |
| | | */ |
| | | private void exportDevice() { |
| | | jfc = new JFileChooser("./"); |
| | | jfc.setMultiSelectionEnabled(false); //不可以拖选多个文件 |
| | | jfc.setAcceptAllFileFilterUsed(false); //关掉显示所有 |
| | | jfc.setDialogTitle(Res.string().getExportDevice()); |
| | | |
| | | //添加过滤器 |
| | | jfc.addChoosableFileFilter(new FileFilter() { |
| | | public boolean accept(File f) { |
| | | if(f.getName().toLowerCase().endsWith("csv") |
| | | || f.isDirectory()) { |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | public String getDescription() { |
| | | return ".csv"; |
| | | } |
| | | }); |
| | | |
| | | if(jfc.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) { |
| | | |
| | | String path = jfc.getSelectedFile().toString(); |
| | | if(!path.endsWith("csv")) { |
| | | path += ".csv"; |
| | | } |
| | | System.out.println(path); |
| | | File file = new File(path); |
| | | |
| | | if(file.exists()) { // 已存在文件 |
| | | int result = JOptionPane.showConfirmDialog(null, Res.string().getWhetherNoToCover(), Res.string().getPromptMessage(), JOptionPane.YES_NO_OPTION); |
| | | if(result == JOptionPane.YES_OPTION) { // 覆盖 |
| | | if(!file.renameTo(file)) { // 被使用 |
| | | JOptionPane.showMessageDialog(null, Res.string().getFileOpened(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } else { // 未被使用 |
| | | exportFile(file); |
| | | } |
| | | } |
| | | } else { // 新建文件 |
| | | exportFile(file); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 登出设备功能 |
| | | */ |
| | | private void logout() { |
| | | // 选中的设备节点 |
| | | DeviceTreeNode deviceTreeNode = (DeviceTreeNode)tree.getLastSelectedPathComponent(); |
| | | |
| | | if(deviceTreeNode == null) { |
| | | return; |
| | | } |
| | | |
| | | // 停止当前登录设备的对讲 |
| | | if(deviceTreeNode == talkDeviceTreeNode) { |
| | | AutoRegisterModule.stopTalk(AutoRegisterModule.m_hTalkHandle); |
| | | |
| | | talkDeviceTreeNode = null; |
| | | } |
| | | |
| | | // 停止当前登录设备的拉流 |
| | | for(int i = 0; i < deviceTreeNode.getChildCount(); i++) { |
| | | ChannelTreeNode channelTreeNode = (ChannelTreeNode)deviceTreeNode.getChildAt(i); |
| | | if(channelTreeNode == realplayChannelTreeNode) { |
| | | AutoRegisterModule.stopRealPlay(realplayHandle); |
| | | realplayWindowPanel.repaint(); |
| | | |
| | | realplayChannelTreeNode = null; |
| | | |
| | | break; |
| | | } |
| | | } |
| | | |
| | | // 登出 |
| | | if(deviceTreeNode.getDeviceInfo().getLoginHandle().longValue() != 0) { |
| | | AutoRegisterModule.logout(deviceTreeNode.getDeviceInfo().getLoginHandle()); |
| | | |
| | | logoutBtn.setEnabled(false); |
| | | modifyDeviceBtn.setEnabled(true); |
| | | } |
| | | |
| | | deviceTreeNode.setUserObject(deviceTreeNode.getDeviceInfo().getDevcieId()); |
| | | deviceTreeNode.removeAllChildren(); |
| | | |
| | | tree.updateUI(); |
| | | } |
| | | |
| | | /** |
| | | * 开始拉流功能 |
| | | */ |
| | | private void startRealplay() { |
| | | // 选中的通道节点 |
| | | ChannelTreeNode channelTreeNode = (ChannelTreeNode)tree.getLastSelectedPathComponent(); |
| | | |
| | | if(channelTreeNode == null) { |
| | | return; |
| | | } |
| | | |
| | | // 通道节点对应的设备节点 |
| | | DeviceTreeNode deviceTreeNode = (DeviceTreeNode)channelTreeNode.getParent(); |
| | | |
| | | // 判断所有设备有没有拉流 |
| | | if(realplayHandle.longValue() != 0) { |
| | | AutoRegisterModule.stopRealPlay(realplayHandle); |
| | | realplayWindowPanel.repaint(); |
| | | |
| | | realplayChannelTreeNode = null; |
| | | } |
| | | |
| | | // 选中通道拉流 |
| | | realplayHandle = AutoRegisterModule.startRealPlay(deviceTreeNode.getDeviceInfo().getLoginHandle(), channelTreeNode.getChn() - 1, 0, realplayWindowPanel); |
| | | |
| | | if(realplayHandle.longValue() != 0) { |
| | | startRealPlayBtn.setEnabled(false); |
| | | stopRealPlayBtn.setEnabled(true); |
| | | |
| | | realplayChannelTreeNode = channelTreeNode; |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getRealplay() + Res.string().getFailed() + ", " + ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | |
| | | tree.updateUI(); |
| | | } |
| | | |
| | | /** |
| | | * 停止拉流功能 |
| | | */ |
| | | private void stopRealplay() { |
| | | if(realplayHandle.longValue() != 0) { |
| | | AutoRegisterModule.stopRealPlay(realplayHandle); |
| | | realplayWindowPanel.repaint(); |
| | | |
| | | realplayChannelTreeNode = null; |
| | | |
| | | startRealPlayBtn.setEnabled(true); |
| | | stopRealPlayBtn.setEnabled(false); |
| | | } |
| | | tree.updateUI(); |
| | | } |
| | | |
| | | /** |
| | | * 开始对讲 |
| | | */ |
| | | private void startTalk() { |
| | | // 选中的设备节点 |
| | | DeviceTreeNode deviceTreeNode = (DeviceTreeNode)tree.getLastSelectedPathComponent(); |
| | | |
| | | if(deviceTreeNode == null) { |
| | | return; |
| | | } |
| | | |
| | | // 判断所有设备有没有对讲 |
| | | if(AutoRegisterModule.m_hTalkHandle.longValue() != 0) { |
| | | AutoRegisterModule.stopTalk(AutoRegisterModule.m_hTalkHandle); |
| | | |
| | | talkDeviceTreeNode = null; |
| | | } |
| | | |
| | | // 选中设备对讲 |
| | | if(AutoRegisterModule.startTalk(deviceTreeNode.getDeviceInfo().getLoginHandle())) { |
| | | startTalkBtn.setEnabled(false); |
| | | stopTalkBtn.setEnabled(true); |
| | | |
| | | talkDeviceTreeNode = deviceTreeNode; |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getTalk() + Res.string().getFailed() + ", " + ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | |
| | | tree.updateUI(); |
| | | } |
| | | |
| | | /** |
| | | * 停止对讲 |
| | | */ |
| | | private void stopTalk() { |
| | | // 判断设备的通道有没有对讲 |
| | | if(AutoRegisterModule.m_hTalkHandle.longValue() != 0) { |
| | | AutoRegisterModule.stopTalk(AutoRegisterModule.m_hTalkHandle); |
| | | |
| | | talkDeviceTreeNode = null; |
| | | |
| | | startTalkBtn.setEnabled(true); |
| | | stopTalkBtn.setEnabled(false); |
| | | } |
| | | |
| | | tree.updateUI(); |
| | | } |
| | | |
| | | /** |
| | | * 抓图功能 |
| | | */ |
| | | private void capture() { |
| | | // 选中的通道节点 |
| | | ChannelTreeNode channelTreeNode = (ChannelTreeNode)tree.getLastSelectedPathComponent(); |
| | | |
| | | if(channelTreeNode == null) { |
| | | return; |
| | | } |
| | | |
| | | // 通道节点对应的设备节点 |
| | | DeviceTreeNode deviceTreeNode = (DeviceTreeNode)channelTreeNode.getParent(); |
| | | |
| | | AutoRegisterModule.snapPicture(deviceTreeNode.getDeviceInfo().getLoginHandle(), channelTreeNode.getChn() - 1); |
| | | } |
| | | |
| | | /** |
| | | * 侦听服务器回调函数 |
| | | */ |
| | | public class ServiceCB implements fServiceCallBack { |
| | | @Override |
| | | public int invoke(LLong lHandle, final String pIp, final int wPort, |
| | | int lCommand, Pointer pParam, int dwParamLen, |
| | | Pointer dwUserData) { |
| | | |
| | | // 将 pParam 转化为序列号 |
| | | byte[] buffer = new byte[dwParamLen]; |
| | | pParam.read(0, buffer, 0, dwParamLen); |
| | | String deviceId = ""; |
| | | try { |
| | | deviceId = new String(buffer, "GBK").trim(); |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | System.out.printf("Register Device Info [Device address %s][port %s][DeviceID %s] \n", pIp, wPort, deviceId); |
| | | switch(lCommand) { |
| | | case EM_LISTEN_TYPE.NET_DVR_DISCONNECT: { // 验证期间设备断线回调 |
| | | for(int i = 0; i < rootNode.getChildCount(); i++) { |
| | | if(deviceId.equals(((DeviceTreeNode)rootNode.getChildAt(i)).getDeviceInfo().getDevcieId())) { |
| | | DeviceTreeNode deviceTreeNode = (DeviceTreeNode)rootNode.getChildAt(i); |
| | | |
| | | deviceTreeNode.getDeviceInfo().setDeviceIp(""); |
| | | deviceTreeNode.getDeviceInfo().setDevicePort(0); |
| | | |
| | | break; |
| | | } |
| | | } |
| | | |
| | | break; |
| | | } |
| | | case EM_LISTEN_TYPE.NET_DVR_SERIAL_RETURN: { // 设备注册携带序列号 |
| | | for(int i = 0; i < rootNode.getChildCount(); i++) { |
| | | if(deviceId.equals(((DeviceTreeNode)rootNode.getChildAt(i)).getDeviceInfo().getDevcieId())) { |
| | | final DeviceTreeNode deviceTreeNode = (DeviceTreeNode)rootNode.getChildAt(i); |
| | | |
| | | deviceTreeNode.getDeviceInfo().setDeviceIp(pIp); |
| | | deviceTreeNode.getDeviceInfo().setDevicePort(wPort); |
| | | |
| | | try { |
| | | Thread.sleep(20); |
| | | } catch (InterruptedException e1) { |
| | | e1.printStackTrace(); |
| | | } |
| | | |
| | | new SwingWorker<LLong, String>() { |
| | | @Override |
| | | protected LLong doInBackground() { |
| | | return login(deviceTreeNode); |
| | | } |
| | | |
| | | @Override |
| | | protected void done() { |
| | | try { |
| | | if(get() == null) { |
| | | return; |
| | | } |
| | | |
| | | if(get().longValue() != 0) { |
| | | // deviceTreeNode.getDeviceInfo().setDeviceIp(pIp); |
| | | // deviceTreeNode.getDeviceInfo().setDevicePort(wPort); |
| | | deviceTreeNode.getDeviceInfo().setLoginHandle(get()); |
| | | |
| | | for(int i = 0; i < AutoRegisterModule.m_stDeviceInfo.byChanNum; i++) { |
| | | ChannelTreeNode chnNode = new ChannelTreeNode(); |
| | | chnNode.setChn(i + 1); |
| | | chnNode.setUserObject(Res.string().getChannel() + " " + String.valueOf(i + 1)); |
| | | |
| | | deviceTreeNode.add(chnNode); |
| | | } |
| | | |
| | | deviceTreeNode.setUserObject(deviceTreeNode.getDeviceInfo().getDevcieId() + " (" + deviceTreeNode.getDeviceInfo().getDeviceIp() + ")"); |
| | | tree.expandPath(new TreePath(rootNode)); |
| | | tree.setCellRenderer(treeCellRender); |
| | | tree.updateUI(); |
| | | } |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } catch (ExecutionException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | }.execute(); |
| | | |
| | | break; |
| | | } |
| | | } |
| | | |
| | | break; |
| | | } |
| | | default: |
| | | break; |
| | | |
| | | } |
| | | |
| | | return 0; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 登录设备 |
| | | * @param deviceIp 登录设备IP |
| | | * @param port 登录设备端口号 |
| | | * @param deviceTreeNode 登录设备设备节点 |
| | | */ |
| | | private LLong login(DeviceTreeNode deviceTreeNode) { |
| | | // 判断设备是否登录 |
| | | if(deviceTreeNode.getDeviceInfo().getLoginHandle().longValue() != 0) { |
| | | return null; |
| | | } |
| | | |
| | | LLong loginHandleLong = AutoRegisterModule.login(deviceTreeNode.getDeviceInfo().getDeviceIp(), |
| | | deviceTreeNode.getDeviceInfo().getDevicePort(), |
| | | deviceTreeNode.getDeviceInfo().getUsername(), |
| | | deviceTreeNode.getDeviceInfo().getPassword(), |
| | | deviceTreeNode.getDeviceInfo().getDevcieId()); |
| | | if(loginHandleLong.longValue() != 0) { |
| | | System.out.printf("Login Success [Device IP %s][port %d][DeviceID %s]\n", deviceTreeNode.getDeviceInfo().getDeviceIp(), |
| | | deviceTreeNode.getDeviceInfo().getDevicePort(), deviceTreeNode.getDeviceInfo().getDevcieId()); |
| | | } else { |
| | | System.err.printf("Login Failed[Device IP %s] [Port %d][DeviceID %s] %s", deviceTreeNode.getDeviceInfo().getDeviceIp(), |
| | | deviceTreeNode.getDeviceInfo().getDevicePort(), deviceTreeNode.getDeviceInfo().getDevcieId(), ToolKits.getErrorCodePrint()); |
| | | } |
| | | |
| | | return loginHandleLong; |
| | | } |
| | | |
| | | /** |
| | | * 设备节点 |
| | | */ |
| | | private class DeviceTreeNode extends DefaultMutableTreeNode { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | private DEVICE_INFO deviceInfo; // 信息 |
| | | |
| | | public DeviceTreeNode() { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public Object getUserObject() { |
| | | return super.getUserObject(); |
| | | } |
| | | |
| | | @Override |
| | | public void setUserObject(Object arg0) { |
| | | super.setUserObject(arg0); |
| | | } |
| | | |
| | | public DEVICE_INFO getDeviceInfo() { |
| | | return deviceInfo; |
| | | } |
| | | |
| | | public void setDeviceInfo(DEVICE_INFO deviceInfo) { |
| | | this.deviceInfo = deviceInfo; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 通道节点 |
| | | */ |
| | | private class ChannelTreeNode extends DefaultMutableTreeNode { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | private int nChn = 0; |
| | | |
| | | public ChannelTreeNode() { |
| | | |
| | | } |
| | | |
| | | public int getChn() { |
| | | return nChn; |
| | | } |
| | | public void setChn(int nChn) { |
| | | this.nChn = nChn; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 设备信息 |
| | | */ |
| | | private class DEVICE_INFO { |
| | | private String devcieId = ""; |
| | | private String username = ""; |
| | | private String password = ""; |
| | | private String deviceIp = ""; |
| | | private int port = 0; |
| | | private LLong loginHandle = new LLong(0); |
| | | |
| | | public String getDevcieId() { |
| | | return devcieId; |
| | | } |
| | | public void setDevcieId(String devcieId) { |
| | | this.devcieId = devcieId; |
| | | } |
| | | |
| | | public String getDeviceIp() { |
| | | return deviceIp; |
| | | } |
| | | public void setDeviceIp(String deviceIp) { |
| | | this.deviceIp = deviceIp; |
| | | } |
| | | |
| | | public int getDevicePort() { |
| | | return port; |
| | | } |
| | | public void setDevicePort(int port) { |
| | | this.port = port; |
| | | } |
| | | |
| | | public String getUsername() { |
| | | return username; |
| | | } |
| | | public void setUsername(String username) { |
| | | this.username = username; |
| | | } |
| | | |
| | | public String getPassword() { |
| | | return password; |
| | | } |
| | | public void setPassword(String password) { |
| | | this.password = password; |
| | | } |
| | | |
| | | public LLong getLoginHandle() { |
| | | return loginHandle; |
| | | } |
| | | public void setLoginHandle(LLong loginHandle) { |
| | | this.loginHandle = loginHandle; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 自定义树的渲染器 |
| | | */ |
| | | private class TreeCellRender extends DefaultTreeCellRenderer { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, |
| | | boolean expanded, boolean leaf, int row, boolean hasFocus) { |
| | | |
| | | super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); |
| | | |
| | | if(value instanceof DeviceTreeNode) { |
| | | setIcon(new ImageIcon("./libs/device.png")); |
| | | |
| | | DeviceTreeNode deviceTreeNode = (DeviceTreeNode)value; |
| | | |
| | | // 设备节点的字体颜色 |
| | | if(deviceTreeNode.getDeviceInfo().getLoginHandle().longValue() != 0) { |
| | | if(deviceTreeNode == talkDeviceTreeNode) { |
| | | setForeground(Color.RED); |
| | | } else { |
| | | setForeground(Color.GREEN); |
| | | } |
| | | } else { |
| | | setForeground(Color.BLACK); |
| | | } |
| | | |
| | | if(selected) { |
| | | // 如果设备节点被选中,拉流按钮使能 |
| | | startRealPlayBtn.setEnabled(false); |
| | | stopRealPlayBtn.setEnabled(false); |
| | | captureBtn.setEnabled(false); |
| | | deleteDeviceBtn.setEnabled(true); |
| | | |
| | | // 设备节点被选中,登录时的使能 |
| | | if(deviceTreeNode.getDeviceInfo().getLoginHandle().longValue() != 0) { |
| | | logoutBtn.setEnabled(true); |
| | | modifyDeviceBtn.setEnabled(false); |
| | | |
| | | if(deviceTreeNode == talkDeviceTreeNode) { |
| | | startTalkBtn.setEnabled(false); |
| | | stopTalkBtn.setEnabled(true); |
| | | } else { |
| | | startTalkBtn.setEnabled(true); |
| | | stopTalkBtn.setEnabled(false); |
| | | } |
| | | } else { // 登出时的使能 |
| | | logoutBtn.setEnabled(false); |
| | | modifyDeviceBtn.setEnabled(true); |
| | | startTalkBtn.setEnabled(false); |
| | | stopTalkBtn.setEnabled(false); |
| | | } |
| | | } |
| | | } else if(value instanceof ChannelTreeNode) { |
| | | setIcon(new ImageIcon("./libs/camera.png")); |
| | | |
| | | ChannelTreeNode channelTreeNode = (ChannelTreeNode)value; |
| | | |
| | | // 设置通道节点的字体颜色 |
| | | if(channelTreeNode == realplayChannelTreeNode) { |
| | | setForeground(Color.RED); |
| | | } else { |
| | | setForeground(Color.BLACK); |
| | | } |
| | | |
| | | if(selected) { |
| | | // 如果通道节点被选中,登出置灰 |
| | | logoutBtn.setEnabled(false); |
| | | captureBtn.setEnabled(true); |
| | | modifyDeviceBtn.setEnabled(false); |
| | | deleteDeviceBtn.setEnabled(false); |
| | | startTalkBtn.setEnabled(false); |
| | | stopTalkBtn.setEnabled(false); |
| | | |
| | | if(channelTreeNode == realplayChannelTreeNode) { |
| | | startRealPlayBtn.setEnabled(false); |
| | | stopRealPlayBtn.setEnabled(true); |
| | | } else { |
| | | startRealPlayBtn.setEnabled(true); |
| | | stopRealPlayBtn.setEnabled(false); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return this; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 导入csv文件 |
| | | */ |
| | | private void importFile(String filePath, String encoding) { |
| | | File file = new File(filePath); |
| | | |
| | | if(!file.exists()) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getFileNotExist(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | FileInputStream input = null; |
| | | InputStreamReader reader = null; |
| | | BufferedReader bReader = null; |
| | | |
| | | try { |
| | | input = new FileInputStream(file); |
| | | |
| | | if(encoding == null) { |
| | | reader = new InputStreamReader(input); |
| | | } else { |
| | | reader = new InputStreamReader(input, encoding); |
| | | } |
| | | bReader = new BufferedReader(reader); |
| | | |
| | | // 头标题 |
| | | String line = bReader.readLine(); |
| | | String everyLine = ""; |
| | | |
| | | while((line = bReader.readLine()) != null) { |
| | | everyLine = line; |
| | | |
| | | // 最大支持导入100个 |
| | | if(rootNode.getChildCount() >= 100) { |
| | | return; |
| | | } |
| | | |
| | | String[] infos = everyLine.split(","); |
| | | |
| | | isExist = false; |
| | | if(!infos[0].equals("")) { |
| | | // 判断是否存在 |
| | | for(int i = 0; i < rootNode.getChildCount(); i++) { |
| | | DeviceTreeNode childNode = (DeviceTreeNode)rootNode.getChildAt(i); |
| | | if(infos[0].equals(childNode.getDeviceInfo().getDevcieId())) { |
| | | isExist = true; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | // 不存在, 可以添加 |
| | | if(!isExist) { |
| | | final DEVICE_INFO deviceInfo = new DEVICE_INFO(); |
| | | deviceInfo.setDevcieId(infos[0]); |
| | | if(infos.length == 1) { |
| | | deviceInfo.setUsername(""); |
| | | deviceInfo.setPassword(""); |
| | | } else if(infos.length == 2) { |
| | | deviceInfo.setUsername(infos[1]); |
| | | deviceInfo.setPassword(""); |
| | | } else if(infos.length == 3){ |
| | | deviceInfo.setUsername(infos[1]); |
| | | deviceInfo.setPassword(infos[2]); |
| | | } |
| | | |
| | | DeviceTreeNode childNode = new DeviceTreeNode(); |
| | | childNode.setDeviceInfo(deviceInfo); |
| | | childNode.setUserObject(infos[0]); |
| | | |
| | | rootNode.add(childNode); |
| | | |
| | | tree.expandPath(new TreePath(rootNode)); |
| | | tree.updateUI(); |
| | | } |
| | | } |
| | | } |
| | | } catch (FileNotFoundException e) { |
| | | e.printStackTrace(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } finally { |
| | | if(null != bReader) { |
| | | try { |
| | | bReader.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | tree.setCellRenderer(treeCellRender); |
| | | JOptionPane.showMessageDialog(null, Res.string().getImportCompletion(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 导出csv文件 |
| | | */ |
| | | private void exportFile(File file) { |
| | | FileOutputStream output = null; |
| | | OutputStreamWriter osWriter = null; |
| | | BufferedWriter bWriter = null; |
| | | |
| | | try { |
| | | output = new FileOutputStream(file); |
| | | osWriter = new OutputStreamWriter(output, "GB2312"); |
| | | bWriter = new BufferedWriter(osWriter); |
| | | |
| | | // 写头标题 |
| | | bWriter.write("DeviceId" + "," + "UserName" + "," + "Password"); |
| | | bWriter.newLine(); |
| | | |
| | | // 写内容 |
| | | for(int i = 0; i < rootNode.getChildCount(); i++) { |
| | | DeviceTreeNode childNode = (DeviceTreeNode)rootNode.getChildAt(i); |
| | | String deviceId = childNode.getDeviceInfo().getDevcieId(); |
| | | String username = childNode.getDeviceInfo().getUsername(); |
| | | String password = childNode.getDeviceInfo().getPassword(); |
| | | |
| | | bWriter.write(deviceId + "," + username + "," + password); |
| | | bWriter.newLine(); |
| | | } |
| | | } catch (FileNotFoundException e) { |
| | | e.printStackTrace(); |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } finally { |
| | | if(null != bWriter) { |
| | | try { |
| | | bWriter.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | JOptionPane.showMessageDialog(null, Res.string().getExportCompletion(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 抓图回调函数 |
| | | */ |
| | | public class CaptureReceiveCB implements NetSDKLib.fSnapRev{ |
| | | BufferedImage bufferedImage = null; |
| | | public void invoke( LLong lLoginID, Pointer pBuf, int RevLen, int EncodeType, int CmdSerial, Pointer dwUser) { |
| | | if(pBuf != null && RevLen > 0) { |
| | | String strFileName = SavePath.getSavePath().getSaveCapturePath(); |
| | | |
| | | System.out.println("strFileName = " + strFileName); |
| | | |
| | | byte[] buf = pBuf.getByteArray(0, RevLen); |
| | | ByteArrayInputStream byteArrInput = new ByteArrayInputStream(buf); |
| | | try { |
| | | bufferedImage = ImageIO.read(byteArrInput); |
| | | if(bufferedImage == null) { |
| | | return; |
| | | } |
| | | ImageIO.write(bufferedImage, "jpg", new File(strFileName)); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | // 界面显示抓图 |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | capturePanel.setOpaque(false); |
| | | capturePanel.setImage(bufferedImage); |
| | | capturePanel.repaint(); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获取本地地址 |
| | | * @return |
| | | */ |
| | | private String getHostAddress() { |
| | | String address = ""; |
| | | try { |
| | | InetAddress inetAddress = InetAddress.getLocalHost(); |
| | | address = inetAddress.getHostAddress(); |
| | | } catch (UnknownHostException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | return address; |
| | | } |
| | | |
| | | private DefaultMutableTreeNode rootNode; |
| | | private DefaultTreeModel treeModel; |
| | | private JTree tree; |
| | | |
| | | private Panel realplayWindowPanel; |
| | | private PaintPanel capturePanel; |
| | | |
| | | private JTextField ipTextField; |
| | | private JTextField portTextField; |
| | | private JButton startListenBtn; |
| | | private JButton stopListenBtn; |
| | | private JButton addDeviceBtn; |
| | | private JButton modifyDeviceBtn; |
| | | private JButton deleteDeviceBtn; |
| | | private JButton clearDeviceBtn; |
| | | private JButton importDeviceBtn; |
| | | private JButton exportDeviceBtn; |
| | | private JButton logoutBtn; |
| | | |
| | | private JButton startRealPlayBtn; |
| | | private JButton stopRealPlayBtn; |
| | | private JButton startTalkBtn; |
| | | private JButton stopTalkBtn; |
| | | private JButton captureBtn; |
| | | |
| | | private JFileChooser jfc; |
| | | } |
| | | |
| | | public class AutoRegister { |
| | | public static void main(String[] args) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | AutoRegisterFrame demo = new AutoRegisterFrame(); |
| | | demo.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | }; |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame.AutoRegister; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.Dimension; |
| | | import java.awt.FlowLayout; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | import java.awt.event.WindowAdapter; |
| | | import java.awt.event.WindowEvent; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.util.concurrent.ExecutorService; |
| | | import java.util.concurrent.Executors; |
| | | |
| | | import javax.swing.JButton; |
| | | import javax.swing.JCheckBox; |
| | | import javax.swing.JDialog; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JOptionPane; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.JTextField; |
| | | |
| | | import com.netsdk.common.BorderEx; |
| | | import com.netsdk.common.LoginPanel; |
| | | import com.netsdk.common.Res; |
| | | import com.netsdk.demo.module.AutoRegisterModule; |
| | | import com.netsdk.demo.module.LoginModule; |
| | | import com.netsdk.lib.ToolKits; |
| | | import com.netsdk.lib.NetSDKLib.CFG_DVRIP_INFO; |
| | | |
| | | /** |
| | | * 主动注册网络配置 |
| | | */ |
| | | public class DeviceConfigDialog extends JDialog{ |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | private CFG_DVRIP_INFO info = null; |
| | | private ExecutorService executorService = Executors.newSingleThreadExecutor(); |
| | | |
| | | public DeviceConfigDialog(){ |
| | | setTitle(Res.string().getDeviceConfig()); |
| | | setLayout(new BorderLayout()); |
| | | setModal(true); |
| | | pack(); |
| | | setSize(300, 380); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | setDefaultCloseOperation(DISPOSE_ON_CLOSE); // 释放窗体 |
| | | |
| | | loginDevicePanel = new LoginDevicePanel(); |
| | | ConfigDevicePanel configDevicePanel = new ConfigDevicePanel(); |
| | | |
| | | add(loginDevicePanel, BorderLayout.NORTH); |
| | | add(configDevicePanel, BorderLayout.CENTER); |
| | | |
| | | addWindowListener(new WindowAdapter() { |
| | | public void windowClosing(WindowEvent e){ |
| | | if(!executorService.isShutdown()) { |
| | | executorService.shutdown(); |
| | | } |
| | | |
| | | LoginModule.logout(); |
| | | dispose(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /* |
| | | * 登陆设备面板 |
| | | */ |
| | | private class LoginDevicePanel extends LoginPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public LoginDevicePanel() { |
| | | BorderEx.set(this, Res.string().getLogin(), 2); |
| | | setLayout(new FlowLayout()); |
| | | Dimension dimension = new Dimension(); |
| | | dimension.height = 180; |
| | | setPreferredSize(dimension); |
| | | |
| | | ipLabel.setPreferredSize(new Dimension(100, 21)); |
| | | portLabel.setPreferredSize(new Dimension(100, 21)); |
| | | nameLabel.setPreferredSize(new Dimension(100, 21)); |
| | | passwordLabel.setPreferredSize(new Dimension(100, 21)); |
| | | |
| | | ipLabel.setHorizontalAlignment(JLabel.CENTER); |
| | | portLabel.setHorizontalAlignment(JLabel.CENTER); |
| | | nameLabel.setHorizontalAlignment(JLabel.CENTER); |
| | | passwordLabel.setHorizontalAlignment(JLabel.CENTER); |
| | | |
| | | ipTextArea.setPreferredSize(new Dimension(140, 21)); |
| | | portTextArea.setPreferredSize(new Dimension(140, 21)); |
| | | nameTextArea.setPreferredSize(new Dimension(140, 21)); |
| | | passwordTextArea.setPreferredSize(new Dimension(140, 21)); |
| | | loginBtn.setPreferredSize(new Dimension(120, 21)); |
| | | logoutBtn.setPreferredSize(new Dimension(120, 21)); |
| | | |
| | | add(ipLabel); |
| | | add(ipTextArea); |
| | | add(portLabel); |
| | | add(portTextArea); |
| | | add(nameLabel); |
| | | add(nameTextArea); |
| | | add(passwordLabel); |
| | | add(passwordTextArea); |
| | | add(loginBtn); |
| | | add(logoutBtn); |
| | | |
| | | // 登陆 |
| | | loginBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | login(); |
| | | } |
| | | }); |
| | | |
| | | // 登出 |
| | | logoutBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | logout(); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * 配置设备面板 |
| | | */ |
| | | private class ConfigDevicePanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public ConfigDevicePanel() { |
| | | BorderEx.set(this, Res.string().getDeviceConfig(), 2); |
| | | setLayout(new FlowLayout()); |
| | | |
| | | enableCheckBox = new JCheckBox(Res.string().getEnable()); |
| | | JLabel nullLabel = new JLabel(); |
| | | JLabel autoRegisterIpLabel = new JLabel(Res.string().getRegisterAddress(), JLabel.CENTER); |
| | | JLabel autoRegisterPortLabel = new JLabel(Res.string().getRegisterPort(), JLabel.CENTER); |
| | | JLabel deviceIdLabel = new JLabel(Res.string().getDeviceID(), JLabel.CENTER); |
| | | |
| | | enableCheckBox.setPreferredSize(new Dimension(80, 21)); |
| | | nullLabel.setPreferredSize(new Dimension(120, 21)); |
| | | autoRegisterIpLabel.setPreferredSize(new Dimension(100, 21)); |
| | | autoRegisterPortLabel.setPreferredSize(new Dimension(100, 21)); |
| | | deviceIdLabel.setPreferredSize(new Dimension(100, 21)); |
| | | |
| | | autoRegisterIpTextField = new JTextField(); |
| | | autoRegisterPortTextField = new JTextField(); |
| | | deviceIdTextField = new JTextField(); |
| | | |
| | | autoRegisterIpTextField.setPreferredSize(new Dimension(140, 21)); |
| | | autoRegisterPortTextField.setPreferredSize(new Dimension(140, 21)); |
| | | deviceIdTextField.setPreferredSize(new Dimension(140, 21)); |
| | | |
| | | getBtn = new JButton(Res.string().getGet()); |
| | | setBtn = new JButton(Res.string().getSet()); |
| | | |
| | | getBtn.setPreferredSize(new Dimension(120, 21)); |
| | | setBtn.setPreferredSize(new Dimension(120, 21)); |
| | | |
| | | add(enableCheckBox); |
| | | add(nullLabel); |
| | | add(autoRegisterIpLabel); |
| | | add(autoRegisterIpTextField); |
| | | add(autoRegisterPortLabel); |
| | | add(autoRegisterPortTextField); |
| | | add(deviceIdLabel); |
| | | add(deviceIdTextField); |
| | | add(getBtn); |
| | | add(setBtn); |
| | | |
| | | enableCheckBox.setSelected(true); |
| | | enableCheckBox.setEnabled(false); |
| | | getBtn.setEnabled(false); |
| | | setBtn.setEnabled(false); |
| | | autoRegisterIpTextField.setEnabled(false); |
| | | autoRegisterPortTextField.setEnabled(false); |
| | | deviceIdTextField.setEnabled(false); |
| | | |
| | | // 获取 |
| | | getBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | executorService.execute(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | getBtn.setEnabled(false); |
| | | } |
| | | }); |
| | | |
| | | executorService.execute(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | getConfig(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | // 设置 |
| | | setBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | executorService.execute(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | setBtn.setEnabled(false); |
| | | } |
| | | }); |
| | | |
| | | executorService.execute(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | setConfig(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | // 登陆 |
| | | private void login() { |
| | | if(loginDevicePanel.checkLoginText()) { |
| | | if(LoginModule.login(loginDevicePanel.ipTextArea.getText(), |
| | | Integer.parseInt(loginDevicePanel.portTextArea.getText()), |
| | | loginDevicePanel.nameTextArea.getText(), |
| | | new String(loginDevicePanel.passwordTextArea.getPassword()))) { |
| | | loginDevicePanel.setButtonEnable(true); |
| | | enableCheckBox.setEnabled(true); |
| | | getBtn.setEnabled(true); |
| | | setBtn.setEnabled(true); |
| | | autoRegisterIpTextField.setEnabled(true); |
| | | autoRegisterPortTextField.setEnabled(true); |
| | | deviceIdTextField.setEnabled(true); |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getLoginFailed() + ", " + ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 登出 |
| | | private void logout() { |
| | | LoginModule.logout(); |
| | | loginDevicePanel.setButtonEnable(false); |
| | | enableCheckBox.setEnabled(false); |
| | | getBtn.setEnabled(false); |
| | | setBtn.setEnabled(false); |
| | | autoRegisterIpTextField.setEnabled(false); |
| | | autoRegisterPortTextField.setEnabled(false); |
| | | deviceIdTextField.setEnabled(false); |
| | | autoRegisterIpTextField.setText(""); |
| | | autoRegisterPortTextField.setText(""); |
| | | deviceIdTextField.setText(""); |
| | | } |
| | | |
| | | // 获取 |
| | | private void getConfig() { |
| | | info = AutoRegisterModule.getDVRIPConfig(LoginModule.m_hLoginHandle); |
| | | if(info == null) { |
| | | autoRegisterIpTextField.setText(""); |
| | | autoRegisterPortTextField.setText(""); |
| | | deviceIdTextField.setText(""); |
| | | JOptionPane.showMessageDialog(null, Res.string().getGet() + Res.string().getFailed() + ", " + ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } else { |
| | | if(info.stuRegisters[0].bEnable == 1) { |
| | | enableCheckBox.setSelected(true); |
| | | } else { |
| | | enableCheckBox.setSelected(false); |
| | | } |
| | | |
| | | autoRegisterIpTextField.setText(new String(info.stuRegisters[0].stuServers[0].szAddress).trim()); |
| | | autoRegisterPortTextField.setText(String.valueOf(info.stuRegisters[0].stuServers[0].nPort)); |
| | | try { |
| | | deviceIdTextField.setText(new String(info.stuRegisters[0].szDeviceID, "GBK").trim()); |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | JOptionPane.showMessageDialog(null, Res.string().getSucceed(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE); |
| | | } |
| | | getBtn.setEnabled(true); |
| | | } |
| | | |
| | | /** |
| | | * 设置(在获取的基础上配置) |
| | | */ |
| | | private void setConfig() { |
| | | info = AutoRegisterModule.getDVRIPConfig(LoginModule.m_hLoginHandle); |
| | | if(autoRegisterIpTextField.getText().equals("")) { |
| | | setBtn.setEnabled(true); |
| | | JOptionPane.showMessageDialog(null, Res.string().getInput() + Res.string().getRegisterAddress(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if(autoRegisterPortTextField.getText().equals("")) { |
| | | setBtn.setEnabled(true); |
| | | JOptionPane.showMessageDialog(null, Res.string().getInput() + Res.string().getRegisterPort(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if(deviceIdTextField.getText().equals("")) { |
| | | setBtn.setEnabled(true); |
| | | JOptionPane.showMessageDialog(null, Res.string().getInput() + Res.string().getDeviceID(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | // win下,中文需要转换为GBK |
| | | byte[] deviceId = null; |
| | | try { |
| | | deviceId = deviceIdTextField.getText().getBytes("GBK"); |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | System.out.println("登录句柄"+LoginModule.m_hLoginHandle + "是否启用" + enableCheckBox.isSelected() + "ip" + autoRegisterIpTextField.getText() + "端口" + autoRegisterPortTextField.getText() + "设备id" + new String(deviceId)); |
| | | |
| | | if(AutoRegisterModule.setDVRIPConfig(LoginModule.m_hLoginHandle, |
| | | enableCheckBox.isSelected(), |
| | | autoRegisterIpTextField.getText(), |
| | | Integer.parseInt(autoRegisterPortTextField.getText()), |
| | | deviceId, |
| | | info)) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSucceed(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE); |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSet() + Res.string().getFailed() + ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | |
| | | setBtn.setEnabled(true); |
| | | } |
| | | |
| | | private LoginDevicePanel loginDevicePanel; |
| | | |
| | | private JTextField autoRegisterIpTextField; |
| | | private JTextField autoRegisterPortTextField; |
| | | private JTextField deviceIdTextField; |
| | | private JCheckBox enableCheckBox; |
| | | private JButton getBtn; |
| | | private JButton setBtn; |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame.AutoRegister; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.Dimension; |
| | | import java.awt.FlowLayout; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | import java.awt.event.WindowAdapter; |
| | | import java.awt.event.WindowEvent; |
| | | |
| | | import javax.swing.JButton; |
| | | import javax.swing.JDialog; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JOptionPane; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.JPasswordField; |
| | | import javax.swing.JTextField; |
| | | |
| | | import com.netsdk.common.BorderEx; |
| | | import com.netsdk.common.DeviceManagerListener; |
| | | import com.netsdk.common.Res; |
| | | |
| | | /** |
| | | * 在树上修改设备 |
| | | */ |
| | | public class ModifyDeviceDialog extends JDialog{ |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | private DeviceManagerListener listener; |
| | | public void addDeviceManagerListener(DeviceManagerListener listener) { |
| | | this.listener = listener; |
| | | } |
| | | |
| | | private String deviceId = ""; |
| | | private String username = ""; |
| | | private String password = ""; |
| | | |
| | | public ModifyDeviceDialog(String deviceId, String username, String password){ |
| | | setTitle(Res.string().getModifyDevice()); |
| | | setLayout(new BorderLayout()); |
| | | setModal(true); |
| | | pack(); |
| | | setSize(220, 180); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | setDefaultCloseOperation(DISPOSE_ON_CLOSE); // 释放窗体 |
| | | |
| | | this.deviceId = deviceId; |
| | | this.username = username; |
| | | this.password = password; |
| | | |
| | | ModifyDevicePanel addDevicePanel = new ModifyDevicePanel(); |
| | | add(addDevicePanel, BorderLayout.CENTER); |
| | | |
| | | addWindowListener(new WindowAdapter() { |
| | | public void windowClosing(WindowEvent e){ |
| | | dispose(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /* |
| | | * 修改设备面板 |
| | | */ |
| | | private class ModifyDevicePanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public ModifyDevicePanel() { |
| | | BorderEx.set(this, "", 2); |
| | | setLayout(new FlowLayout()); |
| | | |
| | | JLabel deviceIdLabel = new JLabel(Res.string().getDeviceID(), JLabel.CENTER); |
| | | JLabel usernameLabel = new JLabel(Res.string().getUserName(), JLabel.CENTER); |
| | | JLabel passwordLabel = new JLabel(Res.string().getPassword(), JLabel.CENTER); |
| | | |
| | | deviceIdLabel.setPreferredSize(new Dimension(60, 21)); |
| | | usernameLabel.setPreferredSize(new Dimension(60, 21)); |
| | | passwordLabel.setPreferredSize(new Dimension(60, 21)); |
| | | |
| | | deviceIdTextField = new JTextField(); |
| | | usernameTextField = new JTextField(); |
| | | passwordPasswordField = new JPasswordField(); |
| | | |
| | | deviceIdTextField.setPreferredSize(new Dimension(120, 20)); |
| | | usernameTextField.setPreferredSize(new Dimension(120, 20)); |
| | | passwordPasswordField.setPreferredSize(new Dimension(120, 20)); |
| | | |
| | | JButton modifyDeviceBtn = new JButton(Res.string().getModify()); |
| | | JButton cancelBtn = new JButton(Res.string().getCancel()); |
| | | |
| | | modifyDeviceBtn.setPreferredSize(new Dimension(90, 21)); |
| | | cancelBtn.setPreferredSize(new Dimension(90, 21)); |
| | | |
| | | add(deviceIdLabel); |
| | | add(deviceIdTextField); |
| | | add(usernameLabel); |
| | | add(usernameTextField); |
| | | add(passwordLabel); |
| | | add(passwordPasswordField); |
| | | add(modifyDeviceBtn); |
| | | add(cancelBtn); |
| | | |
| | | deviceIdTextField.setText(deviceId); |
| | | usernameTextField.setText(username); |
| | | passwordPasswordField.setText(password); |
| | | |
| | | // 修改 |
| | | modifyDeviceBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | if(deviceIdTextField.getText().equals("")) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInput() + Res.string().getDeviceID(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if(usernameTextField.getText().equals("")) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInput() + Res.string().getUserName(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if((new String(passwordPasswordField.getPassword()).trim()).equals("")) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInput() + Res.string().getPassword(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | dispose(); |
| | | listener.onDeviceManager(deviceIdTextField.getText(), |
| | | usernameTextField.getText(), |
| | | new String(passwordPasswordField.getPassword()).trim()); |
| | | } |
| | | }); |
| | | |
| | | // 取消,关闭 |
| | | cancelBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | dispose(); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | private JTextField deviceIdTextField; |
| | | private JTextField usernameTextField; |
| | | private JPasswordField passwordPasswordField; |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.Color; |
| | | import java.awt.Dimension; |
| | | import java.awt.FlowLayout; |
| | | import java.awt.GridLayout; |
| | | import java.awt.Panel; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | import java.awt.event.WindowAdapter; |
| | | import java.awt.event.WindowEvent; |
| | | import java.awt.image.BufferedImage; |
| | | import java.io.ByteArrayInputStream; |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.util.Vector; |
| | | |
| | | import javax.imageio.ImageIO; |
| | | import javax.swing.DefaultComboBoxModel; |
| | | import javax.swing.JButton; |
| | | import javax.swing.JComboBox; |
| | | import javax.swing.JFrame; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JOptionPane; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.SwingUtilities; |
| | | import javax.swing.UIManager; |
| | | import javax.swing.border.EmptyBorder; |
| | | |
| | | import com.netsdk.common.*; |
| | | import com.netsdk.demo.module.*; |
| | | import com.netsdk.lib.*; |
| | | import com.netsdk.lib.NetSDKLib.LLong; |
| | | |
| | | import com.sun.jna.CallbackThreadInitializer; |
| | | import com.sun.jna.Native; |
| | | import com.sun.jna.Pointer; |
| | | |
| | | /** |
| | | * Capture Picture Demo |
| | | */ |
| | | class CapturePictureFrame extends JFrame{ |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | // device channel list |
| | | private Vector<String> chnlist = new Vector<String>(); |
| | | |
| | | // This field indicates whether the device is playing |
| | | private boolean bRealPlay = false; |
| | | |
| | | // This field indicates whether the device is timing capture |
| | | private boolean bTimerCapture = false; |
| | | |
| | | // device disconnect callback instance |
| | | private static DisConnect disConnect = new DisConnect(); |
| | | |
| | | // device reconnect callback instance |
| | | private static HaveReConnect haveReConnect = new HaveReConnect(); |
| | | |
| | | // realplay handle |
| | | public static LLong m_hPlayHandle = new LLong(0); |
| | | |
| | | // capture picture frame (this) |
| | | private static JFrame frame = new JFrame(); |
| | | |
| | | public CapturePictureFrame() { |
| | | setTitle(Res.string().getCapturePicture()); |
| | | setLayout(new BorderLayout()); |
| | | pack(); |
| | | setSize(800, 560); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | LoginModule.init(disConnect, haveReConnect); // init sdk |
| | | |
| | | try { |
| | | UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | loginPanel = new LoginPanel(); |
| | | realPanel = new RealPanel(); |
| | | picPanel = new PICPanel(); |
| | | |
| | | add(loginPanel, BorderLayout.NORTH); |
| | | add(realPanel, BorderLayout.CENTER); |
| | | add(picPanel, BorderLayout.EAST); |
| | | |
| | | loginPanel.addLoginBtnActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | if(loginPanel.checkLoginText()) { |
| | | if(login()) { |
| | | frame = ToolKits.getFrame(e); |
| | | frame.setTitle(Res.string().getCapturePicture() + " : " + Res.string().getOnline()); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | |
| | | loginPanel.addLogoutBtnActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | frame.setTitle(Res.string().getCapturePicture()); |
| | | logout(); |
| | | } |
| | | }); |
| | | |
| | | addWindowListener(new WindowAdapter() { |
| | | public void windowClosing(WindowEvent e) { |
| | | RealPlayModule.stopRealPlay(m_hPlayHandle); |
| | | LoginModule.logout(); |
| | | LoginModule.cleanup(); |
| | | dispose(); |
| | | |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | FunctionList demo = new FunctionList(); |
| | | demo.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /////////////////function/////////////////// |
| | | // device disconnect callback class |
| | | // set it's instance by call CLIENT_Init, when device disconnect sdk will call it. |
| | | private static class DisConnect implements NetSDKLib.fDisConnect { |
| | | public void invoke(LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { |
| | | System.out.printf("Device[%s] Port[%d] DisConnect!\n", pchDVRIP, nDVRPort); |
| | | |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | frame.setTitle(Res.string().getCapturePicture() + " : " + Res.string().getDisConnectReconnecting()); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | // device reconnect(success) callback class |
| | | // set it's instance by call CLIENT_SetAutoReconnect, when device reconnect success sdk will call it. |
| | | private static class HaveReConnect implements NetSDKLib.fHaveReConnect { |
| | | public void invoke(LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { |
| | | System.out.printf("ReConnect Device[%s] Port[%d]\n", pchDVRIP, nDVRPort); |
| | | |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | frame.setTitle(Res.string().getCapturePicture() + " : " + Res.string().getOnline()); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | public boolean login() { |
| | | Native.setCallbackThreadInitializer(m_CaptureReceiveCB, |
| | | new CallbackThreadInitializer(false, false, "snapPicture callback thread")); |
| | | if(LoginModule.login(loginPanel.ipTextArea.getText(), |
| | | Integer.parseInt(loginPanel.portTextArea.getText()), |
| | | loginPanel.nameTextArea.getText(), |
| | | new String(loginPanel.passwordTextArea.getPassword()))) { |
| | | |
| | | loginPanel.setButtonEnable(true); |
| | | setButtonEnable(true); |
| | | |
| | | for(int i = 1; i < LoginModule.m_stDeviceInfo.byChanNum + 1; i++) { |
| | | chnlist.add(Res.string().getChannel() + " " + String.valueOf(i)); |
| | | } |
| | | |
| | | chnComboBox.setModel(new DefaultComboBoxModel(chnlist)); |
| | | |
| | | CapturePictureModule.setSnapRevCallBack(m_CaptureReceiveCB); |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getLoginFailed() + ", " + ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | public void logout() { |
| | | if (bTimerCapture) { |
| | | CapturePictureModule.stopCapturePicture(chnComboBox.getSelectedIndex()); |
| | | } |
| | | RealPlayModule.stopRealPlay(m_hPlayHandle); |
| | | LoginModule.logout(); |
| | | |
| | | loginPanel.setButtonEnable(false); |
| | | setButtonEnable(false); |
| | | realPlayWindow.repaint(); |
| | | pictureShowWindow.setOpaque(true); |
| | | pictureShowWindow.repaint(); |
| | | |
| | | bRealPlay = false; |
| | | realplayBtn.setText(Res.string().getStartRealPlay()); |
| | | |
| | | for(int i = 0; i < LoginModule.m_stDeviceInfo.byChanNum; i++) { |
| | | chnlist.clear(); |
| | | } |
| | | |
| | | chnComboBox.setModel(new DefaultComboBoxModel()); |
| | | |
| | | bTimerCapture = false; |
| | | timerCaptureBtn.setText(Res.string().getTimerCapture()); |
| | | } |
| | | |
| | | /* |
| | | * realplay show and control panel |
| | | */ |
| | | private class RealPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public RealPanel() { |
| | | BorderEx.set(this, Res.string().getRealplay(), 2); |
| | | setLayout(new BorderLayout()); |
| | | |
| | | channelPanel = new Panel(); |
| | | realplayPanel = new JPanel(); |
| | | |
| | | add(channelPanel, BorderLayout.SOUTH); |
| | | add(realplayPanel, BorderLayout.CENTER); |
| | | |
| | | /************ realplay panel **************/ |
| | | realplayPanel.setLayout(new BorderLayout()); |
| | | realplayPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); |
| | | realPlayWindow = new Panel(); |
| | | realPlayWindow.setBackground(Color.GRAY); |
| | | realplayPanel.add(realPlayWindow, BorderLayout.CENTER); |
| | | |
| | | /************ channel and stream panel **************/ |
| | | chnlabel = new JLabel(Res.string().getChannel()); |
| | | chnComboBox = new JComboBox(); |
| | | |
| | | streamLabel = new JLabel(Res.string().getStreamType()); |
| | | String[] stream = {Res.string().getMasterStream(), Res.string().getSubStream()}; |
| | | streamComboBox = new JComboBox(stream); |
| | | |
| | | realplayBtn = new JButton(Res.string().getStartRealPlay()); |
| | | |
| | | channelPanel.setLayout(new FlowLayout()); |
| | | channelPanel.add(chnlabel); |
| | | channelPanel.add(chnComboBox); |
| | | channelPanel.add(streamLabel); |
| | | channelPanel.add(streamComboBox); |
| | | channelPanel.add(realplayBtn); |
| | | |
| | | chnComboBox.setPreferredSize(new Dimension(90, 20)); |
| | | streamComboBox.setPreferredSize(new Dimension(90, 20)); |
| | | realplayBtn.setPreferredSize(new Dimension(120, 20)); |
| | | |
| | | realPlayWindow.setEnabled(false); |
| | | chnComboBox.setEnabled(false); |
| | | streamComboBox.setEnabled(false); |
| | | realplayBtn.setEnabled(false); |
| | | |
| | | realplayBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | realplay(); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | public void realplay() { |
| | | if(!bRealPlay) { |
| | | m_hPlayHandle = RealPlayModule.startRealPlay(chnComboBox.getSelectedIndex(), |
| | | streamComboBox.getSelectedIndex()==0? 0:3, |
| | | realPlayWindow); |
| | | if(m_hPlayHandle.longValue() != 0) { |
| | | realPlayWindow.repaint(); |
| | | bRealPlay = true; |
| | | chnComboBox.setEnabled(false); |
| | | streamComboBox.setEnabled(false); |
| | | realplayBtn.setText(Res.string().getStopRealPlay()); |
| | | } |
| | | } else { |
| | | RealPlayModule.stopRealPlay(m_hPlayHandle); |
| | | realPlayWindow.repaint(); |
| | | bRealPlay = false; |
| | | chnComboBox.setEnabled(true && !bTimerCapture); |
| | | streamComboBox.setEnabled(true); |
| | | realplayBtn.setText(Res.string().getStartRealPlay()); |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * capture picture panel |
| | | */ |
| | | private class PICPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public PICPanel() { |
| | | |
| | | setPreferredSize(new Dimension(350, 600)); |
| | | BorderEx.set(this, Res.string().getCapturePicture(), 2); |
| | | setLayout(new BorderLayout()); |
| | | |
| | | pictureShowPanel = new JPanel(); |
| | | capturePanel = new JPanel(); |
| | | |
| | | add(pictureShowPanel, BorderLayout.CENTER); |
| | | add(capturePanel, BorderLayout.SOUTH); |
| | | |
| | | /************** capture picture button ************/ |
| | | capturePanel.setLayout(new GridLayout(3, 1)); |
| | | |
| | | localCaptureBtn = new JButton(Res.string().getLocalCapture()); |
| | | remoteCaptureBtn = new JButton(Res.string().getRemoteCapture()); |
| | | timerCaptureBtn = new JButton(Res.string().getTimerCapture()); |
| | | |
| | | localCaptureBtn.setPreferredSize(new Dimension(150, 20)); |
| | | remoteCaptureBtn.setPreferredSize(new Dimension(150, 20)); |
| | | timerCaptureBtn.setPreferredSize(new Dimension(150, 20)); |
| | | |
| | | capturePanel.add(localCaptureBtn); |
| | | capturePanel.add(remoteCaptureBtn); |
| | | capturePanel.add(timerCaptureBtn); |
| | | |
| | | localCaptureBtn.setEnabled(false); |
| | | remoteCaptureBtn.setEnabled(false); |
| | | timerCaptureBtn.setEnabled(false); |
| | | |
| | | /************** picture show panel ************/ |
| | | pictureShowPanel.setLayout(new BorderLayout()); |
| | | pictureShowPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); |
| | | pictureShowWindow = new PaintPanel(); |
| | | pictureShowPanel.add(pictureShowWindow, BorderLayout.CENTER); |
| | | |
| | | localCaptureBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | if (!bRealPlay) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getNeedStartRealPlay(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | String strFileName = SavePath.getSavePath().getSaveCapturePath(); |
| | | System.out.println("strFileName = " + strFileName); |
| | | |
| | | if(!CapturePictureModule.localCapturePicture(m_hPlayHandle, strFileName)) { |
| | | JOptionPane.showMessageDialog(null, ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | BufferedImage bufferedImage = null; |
| | | try { |
| | | bufferedImage = ImageIO.read(new File(strFileName)); |
| | | if(bufferedImage == null) { |
| | | return; |
| | | } |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | pictureShowWindow.setOpaque(false); |
| | | pictureShowWindow.setImage(bufferedImage); |
| | | pictureShowWindow.repaint(); |
| | | |
| | | } |
| | | }); |
| | | |
| | | remoteCaptureBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | if(!CapturePictureModule.remoteCapturePicture(chnComboBox.getSelectedIndex())) { |
| | | JOptionPane.showMessageDialog(null, ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | timerCaptureBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | if (!bTimerCapture) { |
| | | |
| | | if(!CapturePictureModule.timerCapturePicture(chnComboBox.getSelectedIndex())) { |
| | | JOptionPane.showMessageDialog(null, ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | }else{ |
| | | bTimerCapture = true; |
| | | timerCaptureBtn.setText(Res.string().getStopCapture()); |
| | | chnComboBox.setEnabled(false); |
| | | remoteCaptureBtn.setEnabled(false); |
| | | } |
| | | }else { |
| | | if(!CapturePictureModule.stopCapturePicture(chnComboBox.getSelectedIndex())) { |
| | | JOptionPane.showMessageDialog(null, ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | }else{ |
| | | bTimerCapture = false; |
| | | timerCaptureBtn.setText(Res.string().getTimerCapture()); |
| | | chnComboBox.setEnabled(true && !bRealPlay); |
| | | remoteCaptureBtn.setEnabled(true); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | public fCaptureReceiveCB m_CaptureReceiveCB = new fCaptureReceiveCB(); |
| | | public class fCaptureReceiveCB implements NetSDKLib.fSnapRev{ |
| | | BufferedImage bufferedImage = null; |
| | | public void invoke( LLong lLoginID, Pointer pBuf, int RevLen, int EncodeType, int CmdSerial, Pointer dwUser) { |
| | | if(pBuf != null && RevLen > 0) { |
| | | String strFileName = SavePath.getSavePath().getSaveCapturePath(); |
| | | |
| | | System.out.println("strFileName = " + strFileName); |
| | | |
| | | byte[] buf = pBuf.getByteArray(0, RevLen); |
| | | ByteArrayInputStream byteArrInput = new ByteArrayInputStream(buf); |
| | | try { |
| | | bufferedImage = ImageIO.read(byteArrInput); |
| | | if(bufferedImage == null) { |
| | | return; |
| | | } |
| | | ImageIO.write(bufferedImage, "jpg", new File(strFileName)); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | // show picture |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | pictureShowWindow.setOpaque(false); |
| | | pictureShowWindow.setImage(bufferedImage); |
| | | pictureShowWindow.repaint(); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void setButtonEnable(boolean bln) { |
| | | localCaptureBtn.setEnabled(bln); |
| | | remoteCaptureBtn.setEnabled(bln); |
| | | timerCaptureBtn.setEnabled(bln); |
| | | realPlayWindow.setEnabled(bln); |
| | | chnComboBox.setEnabled(bln); |
| | | streamComboBox.setEnabled(bln); |
| | | realplayBtn.setEnabled(bln); |
| | | } |
| | | |
| | | private LoginPanel loginPanel; |
| | | |
| | | private RealPanel realPanel; |
| | | private JPanel realplayPanel; |
| | | private Panel realPlayWindow; |
| | | private Panel channelPanel; |
| | | private JLabel chnlabel; |
| | | private JComboBox chnComboBox; |
| | | private JLabel streamLabel; |
| | | private JComboBox streamComboBox; |
| | | private JButton realplayBtn; |
| | | |
| | | private PICPanel picPanel; |
| | | private JPanel pictureShowPanel; |
| | | private JPanel capturePanel; |
| | | private PaintPanel pictureShowWindow; |
| | | private JButton localCaptureBtn; |
| | | private JButton remoteCaptureBtn; |
| | | private JButton timerCaptureBtn; |
| | | |
| | | } |
| | | |
| | | public class CapturePicture { |
| | | public static void main(String[] args) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | CapturePictureFrame demo = new CapturePictureFrame(); |
| | | demo.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.Dimension; |
| | | import java.awt.GridLayout; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | import java.awt.event.ItemEvent; |
| | | import java.awt.event.ItemListener; |
| | | import java.awt.event.WindowAdapter; |
| | | import java.awt.event.WindowEvent; |
| | | |
| | | import javax.swing.JButton; |
| | | import javax.swing.JCheckBox; |
| | | import javax.swing.JDialog; |
| | | import javax.swing.JFrame; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JOptionPane; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.JSplitPane; |
| | | import javax.swing.SwingUtilities; |
| | | import javax.swing.UIManager; |
| | | |
| | | import com.sun.jna.Pointer; |
| | | |
| | | import com.netsdk.common.BorderEx; |
| | | import com.netsdk.common.DateChooserJButton; |
| | | import com.netsdk.common.FunctionList; |
| | | import com.netsdk.common.LoginPanel; |
| | | import com.netsdk.common.Res; |
| | | import com.netsdk.demo.module.DeviceControlModule; |
| | | import com.netsdk.demo.module.LoginModule; |
| | | import com.netsdk.lib.NetSDKLib; |
| | | import com.netsdk.lib.NetSDKLib.LLong; |
| | | import com.netsdk.lib.ToolKits; |
| | | |
| | | /** |
| | | * Device Control Demo |
| | | */ |
| | | class DeviceControlFrame extends JFrame { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | // device disconnect callback instance |
| | | private DisConnect disConnect = new DisConnect(); |
| | | |
| | | // device control frame (this) |
| | | private static JFrame frame = new JFrame(); |
| | | |
| | | public DeviceControlFrame() { |
| | | setTitle(Res.string().getDeviceControl()); |
| | | setLayout(new BorderLayout()); |
| | | pack(); |
| | | setSize(550, 350); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | LoginModule.init(disConnect, null); |
| | | |
| | | try { |
| | | UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | loginPanel = new DeviceControlLoginPanel(); |
| | | deviceCtlPanel = new DeviceControlPanel(); |
| | | |
| | | add(loginPanel, BorderLayout.NORTH); |
| | | add(deviceCtlPanel, BorderLayout.CENTER); |
| | | |
| | | loginPanel.addLoginBtnActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | if(loginPanel.checkLoginText()) { |
| | | if(login()) { |
| | | frame = ToolKits.getFrame(e); |
| | | frame.setTitle(Res.string().getDeviceControl() + " : " + Res.string().getOnline()); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | |
| | | loginPanel.addLogoutBtnActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | frame.setTitle(Res.string().getDeviceControl()); |
| | | logout(); |
| | | } |
| | | }); |
| | | |
| | | addWindowListener(new WindowAdapter() { |
| | | public void windowClosing(WindowEvent e) { |
| | | LoginModule.logout(); |
| | | LoginModule.cleanup(); |
| | | dispose(); |
| | | |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | FunctionList demo = new FunctionList(); |
| | | demo.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /////////////////function/////////////////// |
| | | // device disconnect callback class |
| | | // set it's instance by call CLIENT_Init, when device disconnect sdk will call it. |
| | | private class DisConnect implements NetSDKLib.fDisConnect { |
| | | public void invoke(LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { |
| | | System.out.printf("Device[%s] Port[%d] DisConnect!\n", pchDVRIP, nDVRPort); |
| | | |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | JOptionPane.showMessageDialog(null, Res.string().getDisConnect(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | frame.setTitle(Res.string().getDeviceControl()); |
| | | logout(); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | public boolean login() { |
| | | |
| | | if(LoginModule.login(loginPanel.ipTextArea.getText(), |
| | | Integer.parseInt(loginPanel.portTextArea.getText()), |
| | | loginPanel.nameTextArea.getText(), |
| | | new String(loginPanel.passwordTextArea.getPassword()))) { |
| | | |
| | | loginPanel.setButtonEnable(true); |
| | | deviceCtlPanel.setButtonEnabled(true); |
| | | |
| | | }else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getLoginFailed() + ", " + ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | |
| | | public void logout() { |
| | | |
| | | LoginModule.logout(); |
| | | |
| | | loginPanel.setButtonEnable(false); |
| | | deviceCtlPanel.resetButtonEnabled(); |
| | | } |
| | | |
| | | private class DeviceControlPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public DeviceControlPanel() { |
| | | BorderEx.set(this, Res.string().getDeviceControl(), 2); |
| | | setLayout(new BorderLayout()); |
| | | setPreferredSize(new Dimension(350, 220)); |
| | | setResizable(false); |
| | | JLabel nullLable = new JLabel(); |
| | | |
| | | currentTimeCheckBox = new JCheckBox(Res.string().getCurrentTime()); |
| | | |
| | | getDateChooser = new DateChooserJButton(); |
| | | setDateChooser = new DateChooserJButton(2000, 2037); |
| | | |
| | | rebootBtn = new JButton(Res.string().getReboot()); |
| | | getTimeBtn = new JButton(Res.string().getGetTime()); |
| | | setTimeBtn = new JButton(Res.string().getSetTime()); |
| | | |
| | | nullLable.setPreferredSize(currentTimeCheckBox.getPreferredSize()); |
| | | getDateChooser.setPreferredSize(new Dimension(150, 20)); |
| | | setDateChooser.setPreferredSize(new Dimension(150, 20)); |
| | | rebootBtn.setPreferredSize(new Dimension(100, 20)); |
| | | getTimeBtn.setPreferredSize(new Dimension(100, 20)); |
| | | setTimeBtn.setPreferredSize(new Dimension(100, 20)); |
| | | |
| | | JPanel rebootPanel = new JPanel(); |
| | | BorderEx.set(rebootPanel, Res.string().getDeviceReboot(), 2); |
| | | |
| | | rebootPanel.add(rebootBtn); |
| | | |
| | | JPanel timePanel = new JPanel(new GridLayout(2,1)); |
| | | BorderEx.set(timePanel, Res.string().getSyncTime(), 2); |
| | | |
| | | JPanel getPanel = new JPanel(); |
| | | JPanel setPanel = new JPanel(); |
| | | |
| | | getPanel.add(nullLable); |
| | | getPanel.add(getDateChooser); |
| | | getPanel.add(getTimeBtn); |
| | | |
| | | setPanel.add(currentTimeCheckBox); |
| | | setPanel.add(setDateChooser); |
| | | setPanel.add(setTimeBtn); |
| | | |
| | | timePanel.add(getPanel); |
| | | timePanel.add(setPanel); |
| | | |
| | | JSplitPane splitPane = new JSplitPane(); |
| | | splitPane.setDividerSize(0); |
| | | splitPane.setBorder(null); |
| | | splitPane.add(rebootPanel, JSplitPane.LEFT); |
| | | splitPane.add(timePanel, JSplitPane.RIGHT); |
| | | add(splitPane); |
| | | |
| | | getDateChooser.setEnabled(false); |
| | | setButtonEnabled(false); |
| | | |
| | | rebootBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | |
| | | OptionDialog optionDialog = new OptionDialog(); |
| | | optionDialog.setVisible(true); |
| | | } |
| | | }); |
| | | |
| | | getTimeBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | String date = DeviceControlModule.getTime(); |
| | | if (date == null) { |
| | | JOptionPane.showMessageDialog(null, ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | }else { |
| | | getDateChooser.setText(date); |
| | | } |
| | | |
| | | } |
| | | }); |
| | | |
| | | setTimeBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | String date = null; |
| | | if (!currentTimeCheckBox.isSelected()) { |
| | | date = setDateChooser.getText(); |
| | | } |
| | | if (!DeviceControlModule.setTime(date)) { |
| | | JOptionPane.showMessageDialog(null, ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getOperateSuccess(), Res.string().getPromptMessage(), JOptionPane.PLAIN_MESSAGE); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | currentTimeCheckBox.addItemListener(new ItemListener() { |
| | | @Override |
| | | public void itemStateChanged(ItemEvent e) { |
| | | JCheckBox jcb = (JCheckBox)e.getItem(); |
| | | if (jcb.isSelected()) { |
| | | setDateChooser.setEnabled(false); |
| | | }else { |
| | | setDateChooser.setEnabled(true); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | public void setButtonEnabled(boolean b) { |
| | | |
| | | currentTimeCheckBox.setEnabled(b); |
| | | setDateChooser.setEnabled(b); |
| | | rebootBtn.setEnabled(b); |
| | | getTimeBtn.setEnabled(b); |
| | | setTimeBtn.setEnabled(b); |
| | | } |
| | | |
| | | public void resetButtonEnabled() { |
| | | currentTimeCheckBox.setSelected(false); |
| | | setButtonEnabled(false); |
| | | } |
| | | |
| | | private class OptionDialog extends JDialog { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public OptionDialog() { |
| | | setDefaultCloseOperation(DISPOSE_ON_CLOSE); |
| | | pack(); |
| | | setSize(250, 100); |
| | | setLocationRelativeTo(null); |
| | | setModal(true); |
| | | setTitle(Res.string().getDeviceReboot()); |
| | | |
| | | JLabel messageLable = new JLabel(Res.string().getRebootTips()); |
| | | confirmBtn = new JButton(Res.string().getConfirm()); |
| | | cancelBtn = new JButton(Res.string().getCancel()); |
| | | |
| | | JPanel messagePanel = new JPanel(); |
| | | messagePanel.add(messageLable); |
| | | |
| | | JPanel btnPanel = new JPanel(); |
| | | btnPanel.add(cancelBtn); |
| | | btnPanel.add(confirmBtn); |
| | | |
| | | add(messagePanel, BorderLayout.NORTH); |
| | | add(btnPanel, BorderLayout.CENTER); |
| | | |
| | | addListener(); |
| | | |
| | | } |
| | | |
| | | private void addListener() { |
| | | confirmBtn.addActionListener(new ActionListener() { |
| | | |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | cancelBtn.setEnabled(false); |
| | | if (!DeviceControlModule.reboot()) { |
| | | JOptionPane.showMessageDialog(null, ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getOperateSuccess(), Res.string().getPromptMessage(), JOptionPane.PLAIN_MESSAGE); |
| | | } |
| | | dispose(); |
| | | } |
| | | }); |
| | | |
| | | cancelBtn.addActionListener(new ActionListener() { |
| | | |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | dispose(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | private JButton confirmBtn; |
| | | private JButton cancelBtn; |
| | | |
| | | } |
| | | |
| | | private JButton rebootBtn; |
| | | private DateChooserJButton getDateChooser; |
| | | private JButton getTimeBtn; |
| | | private JCheckBox currentTimeCheckBox; |
| | | private DateChooserJButton setDateChooser; |
| | | private JButton setTimeBtn; |
| | | } |
| | | |
| | | private class DeviceControlLoginPanel extends LoginPanel { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public DeviceControlLoginPanel() { |
| | | setLayout(new GridLayout(3, 1)); |
| | | removeAll(); |
| | | JPanel ipPanel = new JPanel(); |
| | | JPanel userPanel = new JPanel(); |
| | | JPanel btnPanel = new JPanel(); |
| | | |
| | | resetSize(); |
| | | |
| | | ipPanel.add(ipLabel); |
| | | ipPanel.add(ipTextArea); |
| | | ipPanel.add(portLabel); |
| | | ipPanel.add(portTextArea); |
| | | |
| | | userPanel.add(nameLabel); |
| | | userPanel.add(nameTextArea); |
| | | userPanel.add(passwordLabel); |
| | | userPanel.add(passwordTextArea); |
| | | |
| | | btnPanel.add(loginBtn); |
| | | btnPanel.add(new JLabel(" ")); |
| | | btnPanel.add(logoutBtn); |
| | | |
| | | add(ipPanel); |
| | | add(userPanel); |
| | | add(btnPanel); |
| | | } |
| | | |
| | | private void resetSize() { |
| | | |
| | | ipLabel.setPreferredSize(new Dimension(70, 25)); |
| | | portLabel.setPreferredSize(new Dimension(70, 25)); |
| | | nameLabel.setText(Res.string().getUserName()); |
| | | nameLabel.setPreferredSize(new Dimension(70, 25)); |
| | | passwordLabel.setPreferredSize(new Dimension(70, 25)); |
| | | |
| | | loginBtn.setPreferredSize(new Dimension(100, 20)); |
| | | logoutBtn.setPreferredSize(new Dimension(100, 20)); |
| | | |
| | | ipTextArea.setPreferredSize(new Dimension(100, 20)); |
| | | portTextArea.setPreferredSize(new Dimension(100, 20)); |
| | | nameTextArea.setPreferredSize(new Dimension(100, 20)); |
| | | passwordTextArea.setPreferredSize(new Dimension(100, 20)); |
| | | } |
| | | } |
| | | |
| | | private DeviceControlLoginPanel loginPanel; |
| | | |
| | | private DeviceControlPanel deviceCtlPanel; |
| | | |
| | | } |
| | | |
| | | public class DeviceControl { |
| | | public static void main(String[] args) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | DeviceControlFrame demo = new DeviceControlFrame(); |
| | | demo.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | }; |
| | | |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame; |
| | | |
| | | import java.awt.AWTEvent; |
| | | import java.awt.BorderLayout; |
| | | import java.awt.Color; |
| | | import java.awt.Component; |
| | | import java.awt.Dimension; |
| | | import java.awt.EventQueue; |
| | | import java.awt.FlowLayout; |
| | | import java.awt.GridLayout; |
| | | import java.awt.Toolkit; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | import java.awt.event.WindowAdapter; |
| | | import java.awt.event.WindowEvent; |
| | | import java.net.SocketException; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.concurrent.ExecutorService; |
| | | import java.util.concurrent.Executors; |
| | | |
| | | import javax.swing.JButton; |
| | | import javax.swing.JFrame; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JOptionPane; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.JPasswordField; |
| | | import javax.swing.JScrollPane; |
| | | import javax.swing.JTable; |
| | | import javax.swing.JTextField; |
| | | import javax.swing.ListSelectionModel; |
| | | import javax.swing.SwingUtilities; |
| | | import javax.swing.UIManager; |
| | | import javax.swing.table.DefaultTableCellRenderer; |
| | | import javax.swing.table.DefaultTableModel; |
| | | import javax.swing.table.TableCellRenderer; |
| | | |
| | | import com.sun.jna.Pointer; |
| | | |
| | | import com.netsdk.common.BorderEx; |
| | | import com.netsdk.common.FunctionList; |
| | | import com.netsdk.common.Res; |
| | | import com.netsdk.demo.module.*; |
| | | import com.netsdk.lib.ToolKits; |
| | | import com.netsdk.lib.NetSDKLib.*; |
| | | |
| | | class DeviceSearchAndInitFrame extends JFrame{ |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | private Object[][] data; |
| | | |
| | | private static int index = 0; |
| | | |
| | | private int count = 0; |
| | | |
| | | // 设备搜索句柄 |
| | | private static LLong m_DeviceSearchHandle = new LLong(0); |
| | | |
| | | // key:MAC value:密码重置方式 |
| | | private static Map<String, Byte> pwdResetHashMap = new HashMap<String, Byte>(); |
| | | |
| | | // MAC列表,用于设备搜索过滤 |
| | | private static ArrayList<String> macArrayList = new ArrayList<String>(); |
| | | |
| | | private Component target = this; |
| | | |
| | | // true表示单播搜索结束 |
| | | private volatile boolean bFlag = true; |
| | | |
| | | // 线程池,用于单播搜索 |
| | | private ExecutorService executorService = Executors.newFixedThreadPool(4); |
| | | |
| | | public DeviceSearchAndInitFrame() { |
| | | setTitle(Res.string().getDeviceSearchAndInit()); |
| | | setSize(700, 560); |
| | | setLayout(new BorderLayout()); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | LoginModule.init(null, null); // 打开工程,初始化 |
| | | |
| | | try { |
| | | UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | deviceSearchPanel = new DeviceSearchPanel(); |
| | | deviceSearchResultShowPanel = new DeviceSearchResultShowListPanel(); |
| | | deviceIntPanel = new DeviceInitPanel(); |
| | | |
| | | add(deviceSearchPanel, BorderLayout.NORTH); |
| | | add(deviceSearchResultShowPanel, BorderLayout.CENTER); |
| | | add(deviceIntPanel, BorderLayout.SOUTH); |
| | | |
| | | enableEvents(WindowEvent.WINDOW_EVENT_MASK); |
| | | } |
| | | |
| | | @Override |
| | | protected void processWindowEvent(WindowEvent e) { |
| | | // 关闭窗口监听事件 |
| | | if(e.getID() == WindowEvent.WINDOW_CLOSING) { |
| | | if(!bFlag) { |
| | | // 等待单播搜索结束 |
| | | JOptionPane.showMessageDialog(null, Res.string().getSearchingWait(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE); |
| | | return; |
| | | } else { |
| | | for(int i=0 ;i<handles.size() ;i++) { |
| | | DeviceSearchModule.stopDeviceSearch(handles.get(i)); |
| | | } |
| | | if(!executorService.isShutdown()) { |
| | | executorService.shutdown(); |
| | | } |
| | | |
| | | LoginModule.cleanup(); // 关闭工程,释放资源 |
| | | dispose(); |
| | | |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | FunctionList demo = new FunctionList(); |
| | | demo.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | super.processWindowEvent(e); |
| | | } |
| | | |
| | | /* |
| | | * 设备搜索操作面板 |
| | | */ |
| | | private class DeviceSearchPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public DeviceSearchPanel() { |
| | | BorderEx.set(this, Res.string().getDeviceSearchOperate(), 2); |
| | | setLayout(new BorderLayout()); |
| | | Dimension dimension = new Dimension(); |
| | | dimension.height = 85; |
| | | setPreferredSize(dimension); |
| | | |
| | | MulticastAndBroadcastDeviceSearchPanel multiAndBroadPanel = new MulticastAndBroadcastDeviceSearchPanel(); |
| | | UnicastDeviceSearchPanel unicastPanel = new UnicastDeviceSearchPanel(); |
| | | |
| | | add(multiAndBroadPanel, BorderLayout.WEST); |
| | | add(unicastPanel, BorderLayout.CENTER); |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * 设备组播和广播搜索面板(设备搜索) |
| | | */ |
| | | private class MulticastAndBroadcastDeviceSearchPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public MulticastAndBroadcastDeviceSearchPanel() { |
| | | BorderEx.set(this, Res.string().getDeviceSearch(), 1); |
| | | setLayout(new FlowLayout()); |
| | | Dimension dimension = new Dimension(); |
| | | dimension.width = 220; |
| | | setPreferredSize(dimension); |
| | | |
| | | multiAndBroadcastSearchBtn = new JButton(Res.string().getStartSearch()); |
| | | multiAndBroadcastSearchBtn.setPreferredSize(new Dimension(120, 20)); |
| | | add(multiAndBroadcastSearchBtn); |
| | | |
| | | multiAndBroadcastSearchBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | deviceInitBtn.setEnabled(true); |
| | | for(int i=0 ;i<handles.size() ;i++) { |
| | | DeviceSearchModule.stopDeviceSearch(handles.get(i)); |
| | | } |
| | | |
| | | // 列表清空 |
| | | data = new Object[1000][11]; |
| | | defaultModel = new DefaultTableModel(data, Res.string().getDeviceTableName()); |
| | | table.setModel(defaultModel); |
| | | |
| | | table.getColumnModel().getColumn(0).setPreferredWidth(50); |
| | | table.getColumnModel().getColumn(1).setPreferredWidth(80); |
| | | table.getColumnModel().getColumn(2).setPreferredWidth(80); |
| | | table.getColumnModel().getColumn(3).setPreferredWidth(120); |
| | | table.getColumnModel().getColumn(4).setPreferredWidth(80); |
| | | table.getColumnModel().getColumn(5).setPreferredWidth(120); |
| | | table.getColumnModel().getColumn(6).setPreferredWidth(120); |
| | | table.getColumnModel().getColumn(7).setPreferredWidth(140); |
| | | table.getColumnModel().getColumn(8).setPreferredWidth(100); |
| | | table.getColumnModel().getColumn(9).setPreferredWidth(100); |
| | | table.getColumnModel().getColumn(10).setPreferredWidth(100); |
| | | |
| | | |
| | | table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); |
| | | |
| | | pwdResetHashMap.clear(); |
| | | macArrayList.clear(); |
| | | list.clear(); |
| | | index = 0; |
| | | try { |
| | | for(int i=0 ;i<DeviceSearchModule.getHostAddress().size(); i++) { |
| | | LLong handle= m_DeviceSearchHandle = DeviceSearchModule.multiBroadcastDeviceSearch(callbackEx,DeviceSearchModule.getHostAddress().get(i)); |
| | | handles.add(handle); |
| | | } |
| | | } catch (SocketException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * 设备IP单播搜索面板(设备IP点到点搜索) |
| | | */ |
| | | private class UnicastDeviceSearchPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public UnicastDeviceSearchPanel() { |
| | | BorderEx.set(this, Res.string().getDevicePointToPointSearch(), 1); |
| | | setLayout(new FlowLayout()); |
| | | |
| | | JLabel startIpLabel = new JLabel(Res.string().getStartIp()); |
| | | JLabel endIpLabel = new JLabel(Res.string().getEndIp()); |
| | | |
| | | startIpTextField = new JTextField("172.23.3.0"); |
| | | endIpTextField = new JTextField("172.23.3.231"); |
| | | |
| | | unicastSearchBtn = new JButton(Res.string().getStartSearch()); |
| | | |
| | | startIpTextField.setPreferredSize(new Dimension(100, 20)); |
| | | endIpTextField.setPreferredSize(new Dimension(100, 20)); |
| | | unicastSearchBtn.setPreferredSize(new Dimension(120, 20)); |
| | | |
| | | add(startIpLabel); |
| | | add(startIpTextField); |
| | | add(endIpLabel); |
| | | add(endIpTextField); |
| | | add(unicastSearchBtn); |
| | | |
| | | unicastSearchBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | deviceInitBtn.setEnabled(false); |
| | | index = 0; |
| | | count = 0; |
| | | bFlag = false; |
| | | |
| | | if(!checkIP()) { |
| | | return; |
| | | } |
| | | |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | unicastSearchBtn.setEnabled(false); |
| | | } |
| | | }); |
| | | |
| | | // 清空列表 |
| | | data = new Object[1000][11]; |
| | | defaultModel = new DefaultTableModel(data, Res.string().getDeviceTableName()); |
| | | table.setModel(defaultModel); |
| | | |
| | | table.getColumnModel().getColumn(0).setPreferredWidth(50); |
| | | table.getColumnModel().getColumn(1).setPreferredWidth(80); |
| | | table.getColumnModel().getColumn(2).setPreferredWidth(80); |
| | | table.getColumnModel().getColumn(3).setPreferredWidth(120); |
| | | table.getColumnModel().getColumn(4).setPreferredWidth(80); |
| | | table.getColumnModel().getColumn(5).setPreferredWidth(120); |
| | | table.getColumnModel().getColumn(6).setPreferredWidth(120); |
| | | table.getColumnModel().getColumn(7).setPreferredWidth(140); |
| | | table.getColumnModel().getColumn(8).setPreferredWidth(100); |
| | | table.getColumnModel().getColumn(9).setPreferredWidth(100); |
| | | table.getColumnModel().getColumn(10).setPreferredWidth(100); |
| | | |
| | | |
| | | table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); |
| | | |
| | | pwdResetHashMap.clear(); |
| | | macArrayList.clear(); |
| | | |
| | | for(int i=0 ;i<handles.size() ;i++) { |
| | | DeviceSearchModule.stopDeviceSearch(handles.get(i)); |
| | | } |
| | | |
| | | if(count > 0 && count <= 256) { |
| | | executorService.execute(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | try { |
| | | for(int i = 0; i<DeviceSearchModule.getHostAddress().size() ; i++) { |
| | | DeviceSearchModule.unicastDeviceSearch(DeviceSearchModule.getHostAddress().get(i),startIpTextField.getText(), count, callback); |
| | | } |
| | | } catch (SocketException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | bFlag = true; |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | unicastSearchBtn.setEnabled(true); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } else if(count > 256 && count <= 512){ |
| | | executorService.execute(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | try { |
| | | for(int i = 0; i<DeviceSearchModule.getHostAddress().size() ; i++) { |
| | | DeviceSearchModule.unicastDeviceSearch(DeviceSearchModule.getHostAddress().get(i),startIpTextField.getText(), 256, callback); |
| | | } |
| | | } catch (SocketException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | executorService.execute(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | String[] szIp = startIpTextField.getText().split("\\."); |
| | | try { |
| | | for(int i = 0; i<DeviceSearchModule.getHostAddress().size() ; i++) { |
| | | DeviceSearchModule.unicastDeviceSearch(DeviceSearchModule.getHostAddress().get(i),DeviceSearchModule.getIp(szIp, 255), count - 256, callback); |
| | | } |
| | | } catch (SocketException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | bFlag = true; |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | unicastSearchBtn.setEnabled(true); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } else if(count > 512 && count <= 768){ |
| | | executorService.execute(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | try { |
| | | for(int i = 0; i<DeviceSearchModule.getHostAddress().size() ; i++) { |
| | | DeviceSearchModule.unicastDeviceSearch(DeviceSearchModule.getHostAddress().get(i),startIpTextField.getText(), 256, callback); |
| | | } |
| | | } catch (SocketException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | executorService.execute(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | String[] szIp = startIpTextField.getText().split("\\."); |
| | | try { |
| | | for(int i = 0; i<DeviceSearchModule.getHostAddress().size() ; i++) { |
| | | DeviceSearchModule.unicastDeviceSearch(DeviceSearchModule.getHostAddress().get(i),DeviceSearchModule.getIp(szIp, 255), 256, callback); |
| | | } |
| | | } catch (SocketException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | executorService.execute(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | String[] szIp = startIpTextField.getText().split("\\."); |
| | | szIp = DeviceSearchModule.getIp(szIp, 255).split("\\."); |
| | | try { |
| | | for(int i = 0; i<DeviceSearchModule.getHostAddress().size() ; i++) { |
| | | DeviceSearchModule.unicastDeviceSearch(DeviceSearchModule.getHostAddress().get(i),DeviceSearchModule.getIp(szIp, 255), count - 512, callback); |
| | | } |
| | | } catch (SocketException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | bFlag = true; |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | unicastSearchBtn.setEnabled(true); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } else if(count > 768 && count <= 1000){ |
| | | executorService.execute(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | try { |
| | | for(int i = 0; i<DeviceSearchModule.getHostAddress().size() ; i++) { |
| | | DeviceSearchModule.unicastDeviceSearch(DeviceSearchModule.getHostAddress().get(i),startIpTextField.getText(), 256, callback); |
| | | } |
| | | } catch (SocketException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | executorService.execute(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | String[] szIp = startIpTextField.getText().split("\\."); |
| | | try { |
| | | for(int i = 0; i<DeviceSearchModule.getHostAddress().size() ; i++) { |
| | | DeviceSearchModule.unicastDeviceSearch(DeviceSearchModule.getHostAddress().get(i),DeviceSearchModule.getIp(szIp, 255), 256, callback); |
| | | } |
| | | } catch (SocketException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | executorService.execute(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | String[] szIp = startIpTextField.getText().split("\\."); |
| | | szIp = DeviceSearchModule.getIp(szIp, 255).split("\\."); |
| | | try { |
| | | for(int i = 0; i<DeviceSearchModule.getHostAddress().size() ; i++) { |
| | | DeviceSearchModule.unicastDeviceSearch(DeviceSearchModule.getHostAddress().get(i),DeviceSearchModule.getIp(szIp, 255), 256, callback); |
| | | } |
| | | } catch (SocketException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | executorService.execute(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | String[] szIp = startIpTextField.getText().split("\\."); |
| | | szIp = DeviceSearchModule.getIp(szIp, 255).split("\\."); |
| | | szIp = DeviceSearchModule.getIp(szIp, 255).split("\\."); |
| | | try { |
| | | for(int i = 0; i<DeviceSearchModule.getHostAddress().size() ; i++) { |
| | | DeviceSearchModule.unicastDeviceSearch(DeviceSearchModule.getHostAddress().get(i),DeviceSearchModule.getIp(szIp, 255), count - 768, callback); |
| | | } |
| | | } catch (SocketException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | bFlag = true; |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | unicastSearchBtn.setEnabled(true); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * 设备搜索结果显示列表面板 |
| | | */ |
| | | private class DeviceSearchResultShowListPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public DeviceSearchResultShowListPanel() { |
| | | BorderEx.set(this, Res.string().getDeviceSearchResult(), 2); |
| | | setLayout(new BorderLayout()); |
| | | |
| | | data = new Object[1000][11]; |
| | | defaultModel = new DefaultTableModel(data, Res.string().getDeviceTableName()); |
| | | table = new JTable(defaultModel) { // 列表不可编辑 |
| | | private static final long serialVersionUID = 1L; |
| | | @Override |
| | | public boolean isCellEditable(int row, int column) { |
| | | return false; |
| | | } |
| | | }; |
| | | |
| | | table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // 只能选中一行 |
| | | |
| | | table.getColumnModel().getColumn(0).setPreferredWidth(50); |
| | | table.getColumnModel().getColumn(1).setPreferredWidth(80); |
| | | table.getColumnModel().getColumn(2).setPreferredWidth(80); |
| | | table.getColumnModel().getColumn(3).setPreferredWidth(120); |
| | | table.getColumnModel().getColumn(4).setPreferredWidth(80); |
| | | table.getColumnModel().getColumn(5).setPreferredWidth(120); |
| | | table.getColumnModel().getColumn(6).setPreferredWidth(120); |
| | | table.getColumnModel().getColumn(7).setPreferredWidth(140); |
| | | table.getColumnModel().getColumn(8).setPreferredWidth(100); |
| | | table.getColumnModel().getColumn(9).setPreferredWidth(100); |
| | | table.getColumnModel().getColumn(10).setPreferredWidth(100); |
| | | |
| | | table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); |
| | | |
| | | JScrollPane scrollPane = new JScrollPane(table); |
| | | scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); |
| | | |
| | | add(scrollPane, BorderLayout.CENTER); |
| | | |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * 设备初始化操作面板 |
| | | */ |
| | | private class DeviceInitPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public DeviceInitPanel() { |
| | | BorderEx.set(this, Res.string().getDeviceInit(), 2); |
| | | setLayout(new BorderLayout()); |
| | | Dimension dimension = new Dimension(); |
| | | dimension.height = 55; |
| | | setPreferredSize(dimension); |
| | | |
| | | deviceInitBtn = new JButton(Res.string().getDeviceInit()); |
| | | |
| | | add(deviceInitBtn, BorderLayout.WEST); |
| | | |
| | | deviceInitBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | int row = -1; |
| | | row = table.getSelectedRow(); //获得所选的单行 |
| | | System.out.println(new String (list.get(row).szLocalIP)); |
| | | if(defaultModel == null) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getPleaseSelectInitializedDevice(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if(row < 0) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getPleaseSelectInitializedDevice(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | |
| | | if(defaultModel.getValueAt(row, 7) == null || String.valueOf(defaultModel.getValueAt(row, 7)).trim().equals("")) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getPleaseSelectInitializedDevice(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if(defaultModel.getValueAt(row, 1) == null || String.valueOf(defaultModel.getValueAt(row, 1)).trim().equals(Res.string().getInitialized())) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInitialized(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | String localIp = new String(list.get(row).szLocalIP).trim(); |
| | | |
| | | String mac = String.valueOf(defaultModel.getValueAt(row, 7)).trim(); // MAC地址 |
| | | byte passwdReset = pwdResetHashMap.get(mac); // 密码重置方式 |
| | | |
| | | DevcieInitFrame demo = new DevcieInitFrame(localIp,passwdReset, mac, row, defaultModel, table); |
| | | demo.setLocationRelativeTo(null); |
| | | demo.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * 设备组播和广播搜索回调 |
| | | */ |
| | | private Test_fSearchDevicesCbEx callbackEx = new Test_fSearchDevicesCbEx(); |
| | | private class Test_fSearchDevicesCbEx implements fSearchDevicesCBEx { |
| | | |
| | | /* |
| | | * @Override public void invoke(Pointer pDevNetInfo, Pointer pUserData) { |
| | | * DEVICE_NET_INFO_EX deviceInfo = new DEVICE_NET_INFO_EX(); |
| | | * ToolKits.GetPointerData(pDevNetInfo, deviceInfo); |
| | | * |
| | | * EventQueue eventQueue = Toolkit.getDefaultToolkit().getSystemEventQueue(); if |
| | | * (eventQueue != null) { eventQueue.postEvent( new DeviceSearchList(target, |
| | | * deviceInfo)); } } |
| | | */ |
| | | |
| | | @Override |
| | | public void invoke(LLong lSearchHandle, Pointer pDevNetInfo, Pointer pUserData) { |
| | | // TODO Auto-generated method stub |
| | | DEVICE_NET_INFO_EX2 deviceInfo = new DEVICE_NET_INFO_EX2(); |
| | | ToolKits.GetPointerData(pDevNetInfo, deviceInfo); |
| | | |
| | | EventQueue eventQueue = Toolkit.getDefaultToolkit().getSystemEventQueue(); |
| | | if (eventQueue != null) { |
| | | eventQueue.postEvent( new DeviceSearchListEx(target, deviceInfo)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * 设备单播搜索回调 |
| | | */ |
| | | private Test_fSearchDevicesCB callback = new Test_fSearchDevicesCB(); |
| | | private class Test_fSearchDevicesCB implements fSearchDevicesCB { |
| | | |
| | | |
| | | @Override |
| | | public void invoke(Pointer pDevNetInfo, Pointer pUserData) { |
| | | DEVICE_NET_INFO_EX deviceInfo = new DEVICE_NET_INFO_EX(); |
| | | ToolKits.GetPointerData(pDevNetInfo, deviceInfo); |
| | | |
| | | EventQueue eventQueue = Toolkit.getDefaultToolkit().getSystemEventQueue(); |
| | | if(eventQueue != null) |
| | | { |
| | | eventQueue.postEvent( new DeviceSearchList(target,deviceInfo)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * 设备搜索的信息处理 |
| | | */ |
| | | class DeviceSearchList extends AWTEvent { |
| | | private static final long serialVersionUID = 1L; |
| | | public static final int EVENT_ID = AWTEvent.RESERVED_ID_MAX + 1; |
| | | |
| | | private DEVICE_NET_INFO_EX deviceInfo; |
| | | |
| | | public DeviceSearchList(Object target, |
| | | DEVICE_NET_INFO_EX deviceInfo) { |
| | | super(target,EVENT_ID); |
| | | |
| | | this.deviceInfo = deviceInfo; |
| | | } |
| | | |
| | | public DEVICE_NET_INFO_EX getDeviceInfo() { |
| | | return deviceInfo; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | /* |
| | | * 设备搜索的信息处理 |
| | | */ |
| | | class DeviceSearchListEx extends AWTEvent { |
| | | private static final long serialVersionUID = 1L; |
| | | public static final int EVENT_ID = AWTEvent.RESERVED_ID_MAX + 1; |
| | | |
| | | private DEVICE_NET_INFO_EX2 deviceInfo; |
| | | |
| | | public DeviceSearchListEx(Object target, |
| | | DEVICE_NET_INFO_EX2 deviceInfo) { |
| | | super(target,EVENT_ID); |
| | | |
| | | this.deviceInfo = deviceInfo; |
| | | } |
| | | |
| | | public DEVICE_NET_INFO_EX2 getDeviceInfo() { |
| | | return deviceInfo; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | protected void processEvent( AWTEvent event) |
| | | { |
| | | if ( event instanceof DeviceSearchListEx ) |
| | | { |
| | | |
| | | DeviceSearchListEx ev = (DeviceSearchListEx) event; |
| | | |
| | | DEVICE_NET_INFO_EX2 deviceInfo = ev.getDeviceInfo(); |
| | | |
| | | if(!macArrayList.contains(new String(deviceInfo.stuDevInfo.szMac))) { |
| | | list.add(deviceInfo); |
| | | if(index < 1000) { // 此demo,只显示1000行搜索结果 |
| | | macArrayList.add(new String(deviceInfo.stuDevInfo.szMac)); |
| | | |
| | | // 序号 |
| | | defaultModel.setValueAt(index + 1, index, 0); |
| | | |
| | | // 初始化状态 |
| | | defaultModel.setValueAt(Res.string().getInitStateInfo(deviceInfo.stuDevInfo.byInitStatus & 0x03), index, 1); |
| | | |
| | | // IP版本 |
| | | defaultModel.setValueAt("IPV" + String.valueOf(deviceInfo.stuDevInfo.iIPVersion), index, 2); |
| | | |
| | | // IP |
| | | if(!new String(deviceInfo.stuDevInfo.szIP).trim().isEmpty()) { |
| | | defaultModel.setValueAt(new String(deviceInfo.stuDevInfo.szIP).trim(), index, 3); |
| | | } else { |
| | | defaultModel.setValueAt("", index, 3); |
| | | } |
| | | |
| | | // 端口号 |
| | | defaultModel.setValueAt(String.valueOf(deviceInfo.stuDevInfo.nPort), index, 4); |
| | | |
| | | // 子网掩码 |
| | | if(!new String(deviceInfo.stuDevInfo.szSubmask).trim().isEmpty()) { |
| | | defaultModel.setValueAt(new String(deviceInfo.stuDevInfo.szSubmask).trim(), index, 5); |
| | | } else { |
| | | defaultModel.setValueAt("", index, 5); |
| | | } |
| | | |
| | | // 网关 |
| | | if(!new String(deviceInfo.stuDevInfo.szGateway).trim().isEmpty()) { |
| | | defaultModel.setValueAt(new String(deviceInfo.stuDevInfo.szGateway).trim(), index, 6); |
| | | } else { |
| | | defaultModel.setValueAt("", index, 6); |
| | | } |
| | | |
| | | // MAC地址 |
| | | if(!new String(deviceInfo.stuDevInfo.szMac).trim().isEmpty()) { |
| | | defaultModel.setValueAt(new String(deviceInfo.stuDevInfo.szMac).trim(), index, 7); |
| | | } else { |
| | | defaultModel.setValueAt("", index, 7); |
| | | } |
| | | |
| | | // 设备类型 |
| | | if(!new String(deviceInfo.stuDevInfo.szDeviceType).trim().isEmpty()) { |
| | | defaultModel.setValueAt(new String(deviceInfo.stuDevInfo.szDeviceType).trim(), index, 8); |
| | | } else { |
| | | defaultModel.setValueAt("", index, 8); |
| | | } |
| | | |
| | | // 详细类型 |
| | | if(!new String(deviceInfo.stuDevInfo.szNewDetailType).trim().isEmpty()) { |
| | | defaultModel.setValueAt(new String(deviceInfo.stuDevInfo.szNewDetailType).trim(), index, 9); |
| | | } else { |
| | | defaultModel.setValueAt("", index, 9); |
| | | } |
| | | |
| | | // HTTP端口号 |
| | | defaultModel.setValueAt(String.valueOf(deviceInfo.stuDevInfo.nHttpPort), index, 10); |
| | | |
| | | // 将MAC地址 跟 密码重置方式,放进容器 |
| | | pwdResetHashMap.put(new String(deviceInfo.stuDevInfo.szMac).trim(), deviceInfo.stuDevInfo.byPwdResetWay); |
| | | |
| | | for(int i = 0; i < 11; i++) { |
| | | table.getColumnModel().getColumn(i).setCellRenderer(new MyTableCellRender()); |
| | | } |
| | | table.updateUI(); |
| | | |
| | | index++; |
| | | } |
| | | } |
| | | } |
| | | |
| | | else if ( event instanceof DeviceSearchList ) |
| | | { |
| | | |
| | | DeviceSearchList ev = (DeviceSearchList) event; |
| | | |
| | | DEVICE_NET_INFO_EX deviceInfo = ev.getDeviceInfo(); |
| | | |
| | | if(!macArrayList.contains(new String(deviceInfo.szMac))) { |
| | | if(index < 1000) { // 此demo,只显示1000行搜索结果 |
| | | macArrayList.add(new String(deviceInfo.szMac)); |
| | | |
| | | // 序号 |
| | | defaultModel.setValueAt(index + 1, index, 0); |
| | | |
| | | // 初始化状态 |
| | | defaultModel.setValueAt(Res.string().getInitStateInfo(deviceInfo.byInitStatus & 0x03), index, 1); |
| | | |
| | | // IP版本 |
| | | defaultModel.setValueAt("IPV" + String.valueOf(deviceInfo.iIPVersion), index, 2); |
| | | |
| | | // IP |
| | | if(!new String(deviceInfo.szIP).trim().isEmpty()) { |
| | | defaultModel.setValueAt(new String(deviceInfo.szIP).trim(), index, 3); |
| | | } else { |
| | | defaultModel.setValueAt("", index, 3); |
| | | } |
| | | |
| | | // 端口号 |
| | | defaultModel.setValueAt(String.valueOf(deviceInfo.nPort), index, 4); |
| | | |
| | | // 子网掩码 |
| | | if(!new String(deviceInfo.szSubmask).trim().isEmpty()) { |
| | | defaultModel.setValueAt(new String(deviceInfo.szSubmask).trim(), index, 5); |
| | | } else { |
| | | defaultModel.setValueAt("", index, 5); |
| | | } |
| | | |
| | | // 网关 |
| | | if(!new String(deviceInfo.szGateway).trim().isEmpty()) { |
| | | defaultModel.setValueAt(new String(deviceInfo.szGateway).trim(), index, 6); |
| | | } else { |
| | | defaultModel.setValueAt("", index, 6); |
| | | } |
| | | |
| | | // MAC地址 |
| | | if(!new String(deviceInfo.szMac).trim().isEmpty()) { |
| | | defaultModel.setValueAt(new String(deviceInfo.szMac).trim(), index, 7); |
| | | } else { |
| | | defaultModel.setValueAt("", index, 7); |
| | | } |
| | | |
| | | // 设备类型 |
| | | if(!new String(deviceInfo.szDeviceType).trim().isEmpty()) { |
| | | defaultModel.setValueAt(new String(deviceInfo.szDeviceType).trim(), index, 8); |
| | | } else { |
| | | defaultModel.setValueAt("", index, 8); |
| | | } |
| | | |
| | | // 详细类型 |
| | | if(!new String(deviceInfo.szNewDetailType).trim().isEmpty()) { |
| | | defaultModel.setValueAt(new String(deviceInfo.szNewDetailType).trim(), index, 9); |
| | | } else { |
| | | defaultModel.setValueAt("", index, 9); |
| | | } |
| | | |
| | | // HTTP端口号 |
| | | defaultModel.setValueAt(String.valueOf(deviceInfo.nHttpPort), index, 10); |
| | | |
| | | // 将MAC地址 跟 密码重置方式,放进容器 |
| | | pwdResetHashMap.put(new String(deviceInfo.szMac).trim(), deviceInfo.byPwdResetWay); |
| | | |
| | | for(int i = 0; i < 11; i++) { |
| | | table.getColumnModel().getColumn(i).setCellRenderer(new MyTableCellRender()); |
| | | } |
| | | table.updateUI(); |
| | | |
| | | index++; |
| | | } |
| | | } |
| | | } |
| | | |
| | | else |
| | | { |
| | | super.processEvent( event ); |
| | | } |
| | | } |
| | | |
| | | private static class MyTableCellRender implements TableCellRenderer { |
| | | public MyTableCellRender() {} |
| | | |
| | | DefaultTableCellRenderer dCellRenderer = new DefaultTableCellRenderer(); |
| | | |
| | | @Override |
| | | public Component getTableCellRendererComponent(JTable table, |
| | | Object value, boolean isSelect, boolean hasFocus, int row, int colum) { |
| | | |
| | | Component component = dCellRenderer.getTableCellRendererComponent(table, value, |
| | | isSelect, hasFocus, row, colum); |
| | | if(String.valueOf(defaultModel.getValueAt(row, 1)).trim().equals(Res.string().getNotInitialized())) { // 未初始化,字体颜色变红 |
| | | component.setForeground(Color.RED); |
| | | } else { |
| | | component.setForeground(Color.BLACK); |
| | | } |
| | | |
| | | // 列表显示居中 |
| | | dCellRenderer.setHorizontalAlignment(JLabel.CENTER); |
| | | table.setDefaultRenderer(Object.class, dCellRenderer); |
| | | |
| | | return component; |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * 检查设备IP点到点搜索的IP范围 |
| | | */ |
| | | private boolean checkIP() { |
| | | String[] startIp = startIpTextField.getText().split("\\."); |
| | | |
| | | String[] endIp = endIpTextField.getText().split("\\."); |
| | | |
| | | if(startIpTextField.getText().isEmpty()) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInputDeviceIP(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | |
| | | if(endIpTextField.getText().isEmpty()) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInputDeviceIP(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | |
| | | if(!startIp[0].equals(endIp[0])) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getCheckIp(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | |
| | | if(!startIp[1].equals(endIp[1])) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getCheckIp(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | |
| | | if(Integer.parseInt(startIp[2]) > Integer.parseInt(endIp[2])) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getCheckIp(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | |
| | | if(Integer.parseInt(startIp[2]) == Integer.parseInt(endIp[2]) |
| | | && Integer.parseInt(startIp[3]) > Integer.parseInt(endIp[3])) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getCheckIp(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | |
| | | count = (Integer.parseInt(endIp[2]) - Integer.parseInt(startIp[2])) * 256 |
| | | + Integer.parseInt(endIp[3]) - Integer.parseInt(startIp[3]) + 1; |
| | | |
| | | if(count > 1000) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getControlScope(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | |
| | | private DeviceSearchPanel deviceSearchPanel; |
| | | private DeviceSearchResultShowListPanel deviceSearchResultShowPanel; |
| | | private DeviceInitPanel deviceIntPanel; |
| | | |
| | | private JButton deviceInitBtn; |
| | | private JButton multiAndBroadcastSearchBtn; |
| | | private JButton unicastSearchBtn; |
| | | |
| | | private JTextField startIpTextField; |
| | | private JTextField endIpTextField; |
| | | |
| | | // 列表 |
| | | private static DefaultTableModel defaultModel; |
| | | private static JTable table; |
| | | private static List<DEVICE_NET_INFO_EX2> list =new ArrayList<DEVICE_NET_INFO_EX2>(); |
| | | private static List<LLong> handles =new ArrayList<LLong>(); |
| | | } |
| | | |
| | | class DevcieInitFrame extends JFrame { |
| | | /** |
| | | * |
| | | */ |
| | | private static final long serialVersionUID = 1L; |
| | | byte passwdReset; |
| | | String localIp; |
| | | String mac; |
| | | int row; |
| | | DefaultTableModel defaultModel; |
| | | JTable table; |
| | | |
| | | public DevcieInitFrame(String localIp,byte passwdReset, String mac, int row, DefaultTableModel defaultModel, JTable table) { |
| | | setTitle(Res.string().getDeviceInit()); |
| | | setSize(300, 350); |
| | | setLayout(new BorderLayout()); |
| | | setResizable(false); |
| | | |
| | | this.passwdReset = passwdReset; |
| | | this.localIp = localIp; |
| | | this.mac = mac; |
| | | this.row = row; |
| | | this.defaultModel = defaultModel; |
| | | this.table = table; |
| | | |
| | | initPanel = new InitPanel(); |
| | | |
| | | add(initPanel, BorderLayout.CENTER); |
| | | |
| | | addWindowListener(new WindowAdapter() { |
| | | public void windowClosing(WindowEvent e) { |
| | | dispose(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | private class InitPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public InitPanel() { |
| | | BorderEx.set(this, Res.string().getDeviceInit(), 2); |
| | | setLayout(new BorderLayout()); |
| | | |
| | | JPanel panel_1 = new JPanel(); |
| | | JPanel panel_2 = new JPanel(); |
| | | |
| | | add(panel_1, BorderLayout.CENTER); |
| | | add(panel_2, BorderLayout.SOUTH); |
| | | |
| | | panel_1.setLayout(new GridLayout(10, 1)); |
| | | panel_2.setLayout(new BorderLayout()); |
| | | |
| | | JLabel userLabel = new JLabel(Res.string().getUserName() + " : "); |
| | | JLabel passwdLabel = new JLabel(Res.string().getPassword() + " : "); |
| | | JLabel passwdLabelEx = new JLabel(Res.string().getConfirmPassword() + " : "); |
| | | JTextField userTextField = new JTextField("admin"); |
| | | passwdPasswordField = new JPasswordField("admin123"); |
| | | passwdPasswordFieldEx = new JPasswordField("admin123"); |
| | | |
| | | panel_1.add(userLabel); |
| | | panel_1.add(userTextField); |
| | | panel_1.add(passwdLabel); |
| | | panel_1.add(passwdPasswordField); |
| | | panel_1.add(passwdLabelEx); |
| | | panel_1.add(passwdPasswordFieldEx); |
| | | |
| | | userTextField.setEnabled(false); |
| | | |
| | | if((passwdReset >> 1 & 0x01) == 0) { // 手机号 |
| | | JLabel phoneLabel = new JLabel(Res.string().getPhone() + " : "); |
| | | phoneTextField = new JTextField(); |
| | | panel_1.add(phoneLabel); |
| | | panel_1.add(phoneTextField); |
| | | } else if((passwdReset >> 1 & 0x01) == 1) { // 邮箱 |
| | | JLabel mailLabel = new JLabel(Res.string().getMail() + " : "); |
| | | mailTextField = new JTextField(); |
| | | panel_1.add(mailLabel); |
| | | panel_1.add(mailTextField); |
| | | } |
| | | |
| | | deviceInitBtn = new JButton(Res.string().getDeviceInit()); |
| | | panel_2.add(deviceInitBtn, BorderLayout.CENTER); |
| | | |
| | | deviceInitBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | // 密码判空 |
| | | if(new String(passwdPasswordField.getPassword()).equals("")) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInputPassword(), |
| | | Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | // 确认密码判空 |
| | | if(new String(passwdPasswordFieldEx.getPassword()).equals("")) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInputConfirmPassword(), |
| | | Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | // 密码确认 |
| | | if(!new String(passwdPasswordField.getPassword()) |
| | | .equals(new String(passwdPasswordFieldEx.getPassword()))) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInconsistent(), |
| | | Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | // 获取手机或邮箱 |
| | | String phone_mail = ""; |
| | | if((passwdReset >> 1 & 0x01) == 0) { |
| | | phone_mail = phoneTextField.getText(); |
| | | } else if((passwdReset >> 1 & 0x01) == 1) { |
| | | phone_mail = mailTextField.getText(); |
| | | } |
| | | |
| | | // 手机或邮箱判空 |
| | | if(phone_mail.equals("")) { |
| | | if((passwdReset >> 1 & 0x01) == 0) { // 手机号 |
| | | JOptionPane.showMessageDialog(null, Res.string().getInputPhone(), |
| | | Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | |
| | | return; |
| | | } else if((passwdReset >> 1 & 0x01) == 1) { // 邮箱 |
| | | JOptionPane.showMessageDialog(null, Res.string().getInputMail(), |
| | | Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | |
| | | return; |
| | | } |
| | | } |
| | | |
| | | // 初始化 |
| | | if(DeviceInitModule.initDevAccount(localIp,mac, new String(passwdPasswordField.getPassword()), phone_mail, passwdReset)) { |
| | | dispose(); |
| | | |
| | | defaultModel.setValueAt(Res.string().getInitialized(), row, 1); |
| | | |
| | | for(int i = 0; i < 11; i++) { |
| | | table.getColumnModel().getColumn(i).setCellRenderer(new MyTableCellRender(defaultModel)); |
| | | } |
| | | table.updateUI(); |
| | | |
| | | JOptionPane.showMessageDialog(null, Res.string().getDeviceInit() + Res.string().getSucceed(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE); |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getDeviceInit() + Res.string().getFailed() + "," + ToolKits.getErrorCodeShow(), |
| | | Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | private static class MyTableCellRender implements TableCellRenderer { |
| | | DefaultTableModel defaultModel; |
| | | public MyTableCellRender(DefaultTableModel defaultModel) { |
| | | this.defaultModel = defaultModel; |
| | | } |
| | | |
| | | DefaultTableCellRenderer dCellRenderer = new DefaultTableCellRenderer(); |
| | | |
| | | @Override |
| | | public Component getTableCellRendererComponent(JTable table, |
| | | Object value, boolean isSelect, boolean hasFocus, int row, int colum) { |
| | | |
| | | Component component = dCellRenderer.getTableCellRendererComponent(table, value, |
| | | isSelect, hasFocus, row, colum); |
| | | if(String.valueOf(defaultModel.getValueAt(row, 1)).trim().equals(Res.string().getNotInitialized())) { // 未初始化,字体颜色变红 |
| | | component.setForeground(Color.RED); |
| | | } else { |
| | | component.setForeground(Color.BLACK); |
| | | } |
| | | |
| | | // 列表显示居中 |
| | | dCellRenderer.setHorizontalAlignment(JLabel.CENTER); |
| | | table.setDefaultRenderer(Object.class, dCellRenderer); |
| | | |
| | | return component; |
| | | } |
| | | } |
| | | |
| | | private InitPanel initPanel; |
| | | private JPasswordField passwdPasswordField; |
| | | private JPasswordField passwdPasswordFieldEx; |
| | | private JTextField phoneTextField; |
| | | private JTextField mailTextField; |
| | | private JButton deviceInitBtn; |
| | | |
| | | } |
| | | public class DeviceSearchAndInit { |
| | | public static void main(String[] args) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | DeviceSearchAndInitFrame demo = new DeviceSearchAndInitFrame(); |
| | | demo.setLocationRelativeTo(null); |
| | | demo.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.Dimension; |
| | | import java.awt.GridLayout; |
| | | |
| | | import java.awt.FlowLayout; |
| | | |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | import java.awt.event.WindowAdapter; |
| | | import java.awt.event.WindowEvent; |
| | | import java.util.Vector; |
| | | |
| | | import javax.swing.DefaultComboBoxModel; |
| | | import javax.swing.JButton; |
| | | import javax.swing.JComboBox; |
| | | import javax.swing.JFrame; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JOptionPane; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.JProgressBar; |
| | | import javax.swing.JScrollPane; |
| | | import javax.swing.JTable; |
| | | import javax.swing.ListSelectionModel; |
| | | import javax.swing.SwingUtilities; |
| | | import javax.swing.UIManager; |
| | | import javax.swing.border.EmptyBorder; |
| | | import javax.swing.table.DefaultTableCellRenderer; |
| | | import javax.swing.table.DefaultTableModel; |
| | | |
| | | import com.netsdk.common.*; |
| | | import com.netsdk.demo.module.DownLoadRecordModule; |
| | | import com.netsdk.demo.module.LoginModule; |
| | | import com.netsdk.lib.*; |
| | | import com.netsdk.lib.NetSDKLib.LLong; |
| | | |
| | | import com.sun.jna.CallbackThreadInitializer; |
| | | import com.sun.jna.Native; |
| | | import com.sun.jna.Pointer; |
| | | import com.sun.jna.ptr.IntByReference; |
| | | |
| | | /* |
| | | * 下载录像Demo |
| | | */ |
| | | class DownLoadRecordFrame extends JFrame{ |
| | | private static final long serialVersionUID = 1L; |
| | | private Vector<String> chnlist = new Vector<String>(); |
| | | |
| | | private DefaultTableModel model; |
| | | private LLong m_hDownLoadByTimeHandle = new LLong(0); // 按时间下载句柄 |
| | | private LLong m_hDownLoadByFileHandle = new LLong(0); // 按文件下载句柄 |
| | | |
| | | private boolean b_downloadByTime = false; |
| | | private boolean b_downloadByFile = false; |
| | | private IntByReference nFindCount = new IntByReference(0); |
| | | |
| | | // 设备断线通知回调 |
| | | private DisConnect disConnect = new DisConnect(); |
| | | |
| | | // 网络连接恢复 |
| | | private static HaveReConnect haveReConnect = new HaveReConnect(); |
| | | |
| | | // 开始时间 |
| | | private NetSDKLib.NET_TIME stTimeStart = new NetSDKLib.NET_TIME(); |
| | | |
| | | // 结束时间 |
| | | private NetSDKLib.NET_TIME stTimeEnd = new NetSDKLib.NET_TIME(); |
| | | |
| | | // 录像文件信息 |
| | | private NetSDKLib.NET_RECORDFILE_INFO[] stFileInfo = (NetSDKLib.NET_RECORDFILE_INFO[])new NetSDKLib.NET_RECORDFILE_INFO().toArray(2000); |
| | | |
| | | Object[][] data = null; |
| | | |
| | | // 获取界面窗口 |
| | | private static JFrame frame = new JFrame(); |
| | | |
| | | public DownLoadRecordFrame() { |
| | | setTitle(Res.string().getDownloadRecord()); |
| | | setLayout(new BorderLayout()); |
| | | pack(); |
| | | setSize(800, 560); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | LoginModule.init(disConnect, haveReConnect); // 打开工程,初始化 |
| | | |
| | | try { |
| | | UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | loginPanel = new LoginPanel(); |
| | | downloadRecordPanel = new DownLoadRecordPanel(); |
| | | |
| | | add(loginPanel, BorderLayout.NORTH); |
| | | add(downloadRecordPanel, BorderLayout.CENTER); |
| | | |
| | | loginPanel.addLoginBtnActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | if(loginPanel.checkLoginText()) { |
| | | if(login()) { |
| | | frame = ToolKits.getFrame(e); |
| | | frame.setTitle(Res.string().getDownloadRecord() + " : " + Res.string().getOnline()); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | |
| | | loginPanel.addLogoutBtnActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | frame.setTitle(Res.string().getDownloadRecord()); |
| | | logout(); |
| | | } |
| | | }); |
| | | |
| | | addWindowListener(new WindowAdapter() { |
| | | public void windowClosing(WindowEvent e) { |
| | | DownLoadRecordModule.stopDownLoadRecordFile(m_hDownLoadByFileHandle); |
| | | DownLoadRecordModule.stopDownLoadRecordFile(m_hDownLoadByTimeHandle); |
| | | LoginModule.logout(); |
| | | LoginModule.cleanup(); // 关闭工程,释放资源 |
| | | dispose(); |
| | | |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | FunctionList demo = new FunctionList(); |
| | | demo.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /////////////////面板////////////////// |
| | | // 设备断线回调: 通过 CLIENT_Init 设置该回调函数,当设备出现断线时,SDK会调用该函数 |
| | | private class DisConnect implements NetSDKLib.fDisConnect { |
| | | public void invoke(LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { |
| | | System.out.printf("Device[%s] Port[%d] DisConnect!\n", pchDVRIP, nDVRPort); |
| | | // 断线提示 |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | frame.setTitle(Res.string().getDownloadRecord() + " : " + Res.string().getDisConnectReconnecting()); |
| | | |
| | | setButtonEnable(true); |
| | | b_downloadByFile = false; |
| | | downloadByFileBtn.setText(Res.string().getDownload()); |
| | | b_downloadByTime = false; |
| | | downloadByTimeBtn.setText(Res.string().getDownload()); |
| | | DownLoadRecordModule.stopDownLoadRecordFile(m_hDownLoadByFileHandle); |
| | | DownLoadRecordModule.stopDownLoadRecordFile(m_hDownLoadByTimeHandle); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | // 网络连接恢复,设备重连成功回调 |
| | | // 通过 CLIENT_SetAutoReconnect 设置该回调函数,当已断线的设备重连成功时,SDK会调用该函数 |
| | | private static class HaveReConnect implements NetSDKLib.fHaveReConnect { |
| | | public void invoke(LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { |
| | | System.out.printf("ReConnect Device[%s] Port[%d]\n", pchDVRIP, nDVRPort); |
| | | |
| | | // 重连提示 |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | frame.setTitle(Res.string().getDownloadRecord() + " : " + Res.string().getOnline()); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | // 登录 |
| | | public boolean login() { |
| | | Native.setCallbackThreadInitializer(m_DownLoadPosByFile, |
| | | new CallbackThreadInitializer(false, false, "downloadbyfile callback thread")); |
| | | Native.setCallbackThreadInitializer(m_DownLoadPosByTime, |
| | | new CallbackThreadInitializer(false, false, "downloadbytime callback thread")); |
| | | if(LoginModule.login(loginPanel.ipTextArea.getText(), |
| | | Integer.parseInt(loginPanel.portTextArea.getText()), |
| | | loginPanel.nameTextArea.getText(), |
| | | new String(loginPanel.passwordTextArea.getPassword()))) { |
| | | loginPanel.setButtonEnable(true); |
| | | setButtonEnable(true); |
| | | |
| | | for(int i = 1; i < LoginModule.m_stDeviceInfo.byChanNum + 1; i++) { |
| | | chnlist.add(Res.string().getChannel() + " " + String.valueOf(i)); |
| | | } |
| | | |
| | | // 默认设置主辅码流 |
| | | DownLoadRecordModule.setStreamType(streamComboBoxByFile.getSelectedIndex()); |
| | | |
| | | // 登陆成功,将通道添加到控件 |
| | | chnComboBoxByFile.setModel(new DefaultComboBoxModel(chnlist)); |
| | | chnComboBoxByTime.setModel(new DefaultComboBoxModel(chnlist)); |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getLoginFailed() + ", " + ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | |
| | | //登出 |
| | | public void logout() { |
| | | LoginModule.logout(); |
| | | loginPanel.setButtonEnable(false); |
| | | setButtonEnable(false); |
| | | |
| | | // 列表清空 |
| | | data = new Object[14][5]; |
| | | table.setModel(new DefaultTableModel(data, Res.string().getDownloadTableName())); |
| | | table.getColumnModel().getColumn(0).setPreferredWidth(23); |
| | | table.getColumnModel().getColumn(1).setPreferredWidth(28); |
| | | table.getColumnModel().getColumn(2).setPreferredWidth(50); |
| | | |
| | | for(int i = 0; i < LoginModule.m_stDeviceInfo.byChanNum; i++) { |
| | | chnlist.clear(); |
| | | } |
| | | |
| | | chnComboBoxByFile.setModel(new DefaultComboBoxModel()); |
| | | chnComboBoxByTime.setModel(new DefaultComboBoxModel()); |
| | | |
| | | b_downloadByFile = false; |
| | | downloadByFileBtn.setText(Res.string().getDownload()); |
| | | b_downloadByTime = false; |
| | | downloadByTimeBtn.setText(Res.string().getDownload()); |
| | | } |
| | | |
| | | /* |
| | | * 下载录像面板 |
| | | */ |
| | | private class DownLoadRecordPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public DownLoadRecordPanel() { |
| | | BorderEx.set(this, Res.string().getDownloadRecord(), 2); |
| | | setLayout(new GridLayout(1, 2)); |
| | | |
| | | downloadByTimePanel = new DownLoadByTimePanel(); // 按时间下载 |
| | | downloadByFilePanel = new DownLoadByFilePanel(); // 按文件下载 |
| | | |
| | | add(downloadByTimePanel); |
| | | add(downloadByFilePanel); |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * 按文件下载面板 |
| | | */ |
| | | private class DownLoadByFilePanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public DownLoadByFilePanel() { |
| | | BorderEx.set(this, Res.string().getDownloadByFile(), 2); |
| | | setLayout(new BorderLayout()); |
| | | |
| | | downloadByFileSetPanel = new JPanel(); // 设置 |
| | | queryPanel = new JPanel(); // 查询 |
| | | downByFilePanel = new JPanel(); // 下载 |
| | | |
| | | add(downloadByFileSetPanel, BorderLayout.NORTH); |
| | | add(queryPanel, BorderLayout.CENTER); |
| | | add(downByFilePanel, BorderLayout.SOUTH); |
| | | |
| | | /******** 设置面板***********/ |
| | | JPanel startTimeByFile = new JPanel(); |
| | | JPanel endTimeByFile = new JPanel(); |
| | | JPanel chnByFile = new JPanel(); |
| | | JPanel streamByFile = new JPanel(); |
| | | |
| | | downloadByFileSetPanel.setLayout(new GridLayout(2, 2)); |
| | | |
| | | downloadByFileSetPanel.add(startTimeByFile); |
| | | downloadByFileSetPanel.add(endTimeByFile); |
| | | downloadByFileSetPanel.add(chnByFile); |
| | | downloadByFileSetPanel.add(streamByFile); |
| | | |
| | | // 开始时间设置 |
| | | startTimeByFile.setBorder(new EmptyBorder(5, 5, 5, 20)); |
| | | startTimeByFile.setLayout(new GridLayout(2, 1)); |
| | | JLabel startLabel = new JLabel(Res.string().getStartTime()); |
| | | dateChooserStartByFile = new DateChooserJButton(); |
| | | |
| | | Dimension dimension = new Dimension(); |
| | | dimension.height = 20; |
| | | dateChooserStartByFile.setPreferredSize(dimension); |
| | | |
| | | startTimeByFile.add(startLabel); |
| | | startTimeByFile.add(dateChooserStartByFile); |
| | | |
| | | // 结束时间设置 |
| | | endTimeByFile.setBorder(new EmptyBorder(5, 20, 5, 5)); |
| | | endTimeByFile.setLayout(new GridLayout(2, 1)); |
| | | JLabel endLabel = new JLabel(Res.string().getEndTime()); |
| | | dateChooserEndByFile = new DateChooserJButton(); |
| | | dateChooserEndByFile.setPreferredSize(dimension); |
| | | |
| | | endTimeByFile.add(endLabel); |
| | | endTimeByFile.add(dateChooserEndByFile); |
| | | |
| | | // 通道设置 |
| | | chnByFile.setBorder(new EmptyBorder(5, 10, 0, 5)); |
| | | chnByFile.setLayout(new FlowLayout()); |
| | | chnlabel = new JLabel(Res.string().getChannel()); |
| | | chnComboBoxByFile = new JComboBox(); |
| | | chnComboBoxByFile.setPreferredSize(new Dimension(115, 20)); |
| | | chnByFile.add(chnlabel); |
| | | chnByFile.add(chnComboBoxByFile); |
| | | |
| | | // 码流设置 |
| | | streamByFile.setBorder(new EmptyBorder(5, 10, 0, 5)); |
| | | streamByFile.setLayout(new FlowLayout()); |
| | | streamLabel = new JLabel(Res.string().getStreamType()); |
| | | String[] stream = {Res.string().getMasterAndSub(), Res.string().getMasterStream(), Res.string().getSubStream()}; |
| | | streamComboBoxByFile = new JComboBox(stream); |
| | | streamComboBoxByFile.setModel(new DefaultComboBoxModel(stream)); |
| | | streamComboBoxByFile.setPreferredSize(new Dimension(115, 20)); |
| | | streamByFile.add(streamLabel); |
| | | streamByFile.add(streamComboBoxByFile); |
| | | |
| | | /******** 查询面板***********/ |
| | | queryPanel.setLayout(new BorderLayout()); |
| | | queryPanel.setBorder(new EmptyBorder(0, 5, 5, 5)); |
| | | |
| | | data = new Object[14][5]; |
| | | defaultmodel = new DefaultTableModel(data, Res.string().getDownloadTableName()); |
| | | table = new JTable(defaultmodel){ |
| | | private static final long serialVersionUID = 1L; |
| | | @Override |
| | | public boolean isCellEditable(int row, int column) { |
| | | return false; |
| | | } |
| | | }; |
| | | table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // 只能选中一行 |
| | | |
| | | table.getColumnModel().getColumn(0).setPreferredWidth(20); |
| | | table.getColumnModel().getColumn(1).setPreferredWidth(20); |
| | | table.getColumnModel().getColumn(2).setPreferredWidth(50); |
| | | |
| | | DefaultTableCellRenderer dCellRenderer = new DefaultTableCellRenderer(); |
| | | dCellRenderer.setHorizontalAlignment(JLabel.CENTER); |
| | | table.setDefaultRenderer(Object.class, dCellRenderer); |
| | | |
| | | queryPanel.add(new JScrollPane(table), BorderLayout.CENTER); |
| | | |
| | | /******** 下载面板***********/ |
| | | downByFilePanel.setLayout(new BorderLayout()); |
| | | downByFilePanel.setBorder(new EmptyBorder(5, 5, 5, 5)); |
| | | |
| | | JPanel btnPanel1 = new JPanel(); |
| | | downloadByFileProgressBar = new JProgressBar(0, 100); |
| | | |
| | | downloadByFileProgressBar.setPreferredSize(new Dimension(100, 20)); |
| | | downloadByFileProgressBar.setStringPainted(true); |
| | | |
| | | downByFilePanel.add(btnPanel1, BorderLayout.CENTER); |
| | | downByFilePanel.add(downloadByFileProgressBar, BorderLayout.SOUTH); |
| | | |
| | | // 查询、下载按钮 |
| | | queryRecordBtn = new JButton(Res.string().getQuery()); |
| | | downloadByFileBtn = new JButton(Res.string().getDownload()); |
| | | |
| | | queryRecordBtn.setPreferredSize(new Dimension(175, 20)); |
| | | downloadByFileBtn.setPreferredSize(new Dimension(175, 20)); |
| | | |
| | | btnPanel1.setLayout(new FlowLayout()); |
| | | btnPanel1.add(queryRecordBtn); |
| | | btnPanel1.add(downloadByFileBtn); |
| | | |
| | | queryRecordBtn.setEnabled(false); |
| | | downloadByFileBtn.setEnabled(false); |
| | | downloadByFileProgressBar.setEnabled(false); |
| | | chnComboBoxByFile.setEnabled(false); |
| | | streamComboBoxByFile.setEnabled(false); |
| | | dateChooserStartByFile.setEnabled(false); |
| | | dateChooserEndByFile.setEnabled(false); |
| | | |
| | | streamComboBoxByFile.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | DownLoadRecordModule.setStreamType(streamComboBoxByFile.getSelectedIndex()); |
| | | } |
| | | }); |
| | | |
| | | queryRecordBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | int i = 1; // 列表序号 |
| | | int time = 0; |
| | | |
| | | System.out.println(dateChooserStartByFile.getText() + "\n" + dateChooserEndByFile.getText()); |
| | | // 开始时间 |
| | | String[] dateStartByFile = dateChooserStartByFile.getText().split(" "); |
| | | String[] dateStart1 = dateStartByFile[0].split("-"); |
| | | String[] dateStart2 = dateStartByFile[1].split(":"); |
| | | |
| | | stTimeStart.dwYear = Integer.parseInt(dateStart1[0]); |
| | | stTimeStart.dwMonth = Integer.parseInt(dateStart1[1]); |
| | | stTimeStart.dwDay = Integer.parseInt(dateStart1[2]); |
| | | |
| | | stTimeStart.dwHour = Integer.parseInt(dateStart2[0]); |
| | | stTimeStart.dwMinute = Integer.parseInt(dateStart2[1]); |
| | | stTimeStart.dwSecond = Integer.parseInt(dateStart2[2]); |
| | | |
| | | // 结束时间 |
| | | String[] dateEndByFile = dateChooserEndByFile.getText().split(" "); |
| | | String[] dateEnd1 = dateEndByFile[0].split("-"); |
| | | String[] dateEnd2 = dateEndByFile[1].split(":"); |
| | | |
| | | stTimeEnd.dwYear = Integer.parseInt(dateEnd1[0]); |
| | | stTimeEnd.dwMonth = Integer.parseInt(dateEnd1[1]); |
| | | stTimeEnd.dwDay = Integer.parseInt(dateEnd1[2]); |
| | | |
| | | stTimeEnd.dwHour = Integer.parseInt(dateEnd2[0]); |
| | | stTimeEnd.dwMinute = Integer.parseInt(dateEnd2[1]); |
| | | stTimeEnd.dwSecond = Integer.parseInt(dateEnd2[2]); |
| | | |
| | | if(stTimeStart.dwYear != stTimeEnd.dwYear |
| | | || stTimeStart.dwMonth != stTimeEnd.dwMonth |
| | | || (stTimeEnd.dwDay - stTimeStart.dwDay > 1)) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSelectTimeAgain(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if(stTimeEnd.dwDay - stTimeStart.dwDay == 1) { |
| | | time = (24 + stTimeEnd.dwHour)*60*60 + stTimeEnd.dwMinute*60 + stTimeEnd.dwSecond - |
| | | stTimeStart.dwHour*60*60 - stTimeStart.dwMinute*60 - stTimeStart.dwSecond; |
| | | } else { |
| | | time = stTimeEnd.dwHour*60*60 + stTimeEnd.dwMinute*60 + stTimeEnd.dwSecond - |
| | | stTimeStart.dwHour*60*60 - stTimeStart.dwMinute*60 - stTimeStart.dwSecond; |
| | | } |
| | | |
| | | if(time > 6 * 60 * 60 |
| | | || time <= 0) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSelectTimeAgain(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if(!DownLoadRecordModule.queryRecordFile(chnComboBoxByFile.getSelectedIndex(), |
| | | stTimeStart, |
| | | stTimeEnd, |
| | | stFileInfo, |
| | | nFindCount)) { |
| | | // 列表清空 |
| | | data = new Object[14][5]; |
| | | table.setModel(new DefaultTableModel(data, Res.string().getDownloadTableName())); |
| | | table.getColumnModel().getColumn(0).setPreferredWidth(23); |
| | | table.getColumnModel().getColumn(1).setPreferredWidth(28); |
| | | table.getColumnModel().getColumn(2).setPreferredWidth(50); |
| | | JOptionPane.showMessageDialog(null, ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } else { |
| | | System.out.println(nFindCount.getValue()); |
| | | int count = 0; |
| | | if(nFindCount.getValue() > 14) { |
| | | count = nFindCount.getValue(); |
| | | } else { |
| | | count = 14; |
| | | } |
| | | data = new Object[count][5]; |
| | | table.setModel(new DefaultTableModel(data, Res.string().getDownloadTableName())); |
| | | table.getColumnModel().getColumn(0).setPreferredWidth(23); |
| | | table.getColumnModel().getColumn(1).setPreferredWidth(28); |
| | | table.getColumnModel().getColumn(2).setPreferredWidth(50); |
| | | |
| | | if(nFindCount.getValue() == 0) { |
| | | return; |
| | | } |
| | | |
| | | model = (DefaultTableModel)table.getModel(); |
| | | |
| | | for(int j = 0; j < nFindCount.getValue(); j++) { |
| | | model.setValueAt(String.valueOf(i), j, 0); |
| | | model.setValueAt(String.valueOf(stFileInfo[j].ch + 1), j, 1); // 设备返回的通道加1 |
| | | model.setValueAt(Res.string().getRecordTypeStr(stFileInfo[j].nRecordFileType), j, 2); |
| | | model.setValueAt(stFileInfo[j].starttime.toStringTime(), j, 3); |
| | | model.setValueAt(stFileInfo[j].endtime.toStringTime(), j, 4); |
| | | |
| | | i++; |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | |
| | | downloadByFileBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | int row = -1; |
| | | row = table.getSelectedRow(); //获得所选的单行 |
| | | |
| | | if(model == null) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getQueryRecord(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if(row < 0) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSelectRowWithData(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | for(int m = 1; m < 5; m++) { |
| | | if(model.getValueAt(row, m) == null || String.valueOf(model.getValueAt(row, m)).trim().equals("")) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSelectRowWithData(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | // 开始时间 |
| | | String[] dateStart = String.valueOf(model.getValueAt(row, 3)).split(" "); |
| | | String[] dateStartByFile1 = dateStart[0].split("/"); |
| | | String[] dateStartByFile2 = dateStart[1].split(":"); |
| | | |
| | | stTimeStart.dwYear = Integer.parseInt(dateStartByFile1[0]); |
| | | stTimeStart.dwMonth = Integer.parseInt(dateStartByFile1[1]); |
| | | stTimeStart.dwDay = Integer.parseInt(dateStartByFile1[2]); |
| | | |
| | | stTimeStart.dwHour = Integer.parseInt(dateStartByFile2[0]); |
| | | stTimeStart.dwMinute = Integer.parseInt(dateStartByFile2[1]); |
| | | stTimeStart.dwSecond = Integer.parseInt(dateStartByFile2[2]); |
| | | |
| | | // 结束时间 |
| | | String[] dateEnd = String.valueOf(model.getValueAt(row, 4)).split(" "); |
| | | String[] dateEndByFile1 = dateEnd[0].split("/"); |
| | | String[] dateEndByFile2 = dateEnd[1].split(":"); |
| | | |
| | | stTimeEnd.dwYear = Integer.parseInt(dateEndByFile1[0]); |
| | | stTimeEnd.dwMonth = Integer.parseInt(dateEndByFile1[1]); |
| | | stTimeEnd.dwDay = Integer.parseInt(dateEndByFile1[2]); |
| | | |
| | | stTimeEnd.dwHour = Integer.parseInt(dateEndByFile2[0]); |
| | | stTimeEnd.dwMinute = Integer.parseInt(dateEndByFile2[1]); |
| | | stTimeEnd.dwSecond = Integer.parseInt(dateEndByFile2[2]); |
| | | |
| | | if(!b_downloadByFile) { |
| | | System.out.println("ByFile" + String.valueOf(model.getValueAt(row, 3)) + "\n" + String.valueOf(model.getValueAt(row, 4))); |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | downloadByFileProgressBar.setValue(0); |
| | | } |
| | | }); |
| | | m_hDownLoadByFileHandle = DownLoadRecordModule.downloadRecordFile(Integer.parseInt(String.valueOf(model.getValueAt(row, 1))) - 1, |
| | | Res.string().getRecordTypeInt(String.valueOf(model.getValueAt(row, 2))), |
| | | stTimeStart, |
| | | stTimeEnd, |
| | | SavePath.getSavePath().getSaveRecordFilePath(), |
| | | m_DownLoadPosByFile); |
| | | if(m_hDownLoadByFileHandle.longValue() != 0) { |
| | | b_downloadByFile = true; |
| | | downloadByFileBtn.setText(Res.string().getStopDownload()); |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | } else { |
| | | DownLoadRecordModule.stopDownLoadRecordFile(m_hDownLoadByFileHandle); |
| | | b_downloadByFile = false; |
| | | downloadByFileBtn.setText(Res.string().getDownload()); |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | downloadByFileProgressBar.setValue(0); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * 按时间下载面板 |
| | | */ |
| | | private class DownLoadByTimePanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public DownLoadByTimePanel() { |
| | | BorderEx.set(this, Res.string().getDownloadByTime(), 2); |
| | | setLayout(new BorderLayout()); |
| | | |
| | | downloadByTimeSetPanel = new JPanel(); // 设置 |
| | | downByTimePanel = new JPanel(); // 下载 |
| | | |
| | | add(downloadByTimeSetPanel, BorderLayout.NORTH); |
| | | add(downByTimePanel, BorderLayout.CENTER); |
| | | |
| | | /******** 设置面板***********/ |
| | | JPanel startTimeByTime = new JPanel(); |
| | | JPanel endTimeByTime = new JPanel(); |
| | | JPanel chnByTime = new JPanel(); |
| | | JPanel streamByTime = new JPanel(); |
| | | |
| | | downloadByTimeSetPanel.setLayout(new GridLayout(2, 2)); |
| | | |
| | | downloadByTimeSetPanel.add(startTimeByTime); |
| | | downloadByTimeSetPanel.add(endTimeByTime); |
| | | downloadByTimeSetPanel.add(chnByTime); |
| | | downloadByTimeSetPanel.add(streamByTime); |
| | | |
| | | // 开始时间设置 |
| | | startTimeByTime.setBorder(new EmptyBorder(5, 5, 5, 20)); |
| | | startTimeByTime.setLayout(new GridLayout(2, 1)); |
| | | JLabel startLabel = new JLabel(Res.string().getStartTime()); |
| | | dateChooserStartByTime = new DateChooserJButton(); |
| | | Dimension dimension = new Dimension(); |
| | | dimension.height = 20; |
| | | dateChooserStartByTime.setPreferredSize(dimension); |
| | | |
| | | startTimeByTime.add(startLabel); |
| | | startTimeByTime.add(dateChooserStartByTime); |
| | | |
| | | // 结束时间设置 |
| | | endTimeByTime.setBorder(new EmptyBorder(5, 20, 5, 5)); |
| | | endTimeByTime.setLayout(new GridLayout(2, 1)); |
| | | JLabel endLabel = new JLabel(Res.string().getEndTime()); |
| | | dateChooserEndByTime = new DateChooserJButton(); |
| | | dateChooserEndByTime.setPreferredSize(dimension); |
| | | |
| | | endTimeByTime.add(endLabel); |
| | | endTimeByTime.add(dateChooserEndByTime); |
| | | |
| | | // 通道设置 |
| | | chnByTime.setBorder(new EmptyBorder(5, 10, 0, 5)); |
| | | chnByTime.setLayout(new FlowLayout()); |
| | | chnlabel = new JLabel(Res.string().getChannel()); |
| | | chnComboBoxByTime = new JComboBox(); |
| | | chnComboBoxByTime.setPreferredSize(new Dimension(115, 20)); |
| | | chnByTime.add(chnlabel); |
| | | chnByTime.add(chnComboBoxByTime); |
| | | |
| | | // 码流设置 |
| | | streamByTime.setBorder(new EmptyBorder(5, 10, 0, 5)); |
| | | streamByTime.setLayout(new FlowLayout()); |
| | | streamLabel = new JLabel(Res.string().getStreamType()); |
| | | String[] stream = {Res.string().getMasterAndSub(), Res.string().getMasterStream(), Res.string().getSubStream()}; |
| | | streamComboBoxByTime = new JComboBox(); |
| | | streamComboBoxByTime.setModel(new DefaultComboBoxModel(stream)); |
| | | streamComboBoxByTime.setPreferredSize(new Dimension(115, 20)); |
| | | streamByTime.add(streamLabel); |
| | | streamByTime.add(streamComboBoxByTime); |
| | | |
| | | /******** 下载面板***********/ |
| | | downByTimePanel.setLayout(new FlowLayout()); |
| | | downByTimePanel.setBorder(new EmptyBorder(0, 5, 0, 5)); |
| | | |
| | | JPanel btnPanel2 = new JPanel(); |
| | | downloadByTimeProgressBar = new JProgressBar(0, 100); |
| | | |
| | | downloadByTimeProgressBar.setPreferredSize(new Dimension(355, 20)); |
| | | downloadByTimeProgressBar.setStringPainted(true); |
| | | |
| | | downByTimePanel.add(btnPanel2); |
| | | downByTimePanel.add(downloadByTimeProgressBar); |
| | | |
| | | // 下载按钮 |
| | | downloadByTimeBtn = new JButton(Res.string().getDownload()); |
| | | JLabel nullLabel = new JLabel(); |
| | | nullLabel.setPreferredSize(new Dimension(180, 20)); |
| | | downloadByTimeBtn.setPreferredSize(new Dimension(170, 20)); |
| | | |
| | | btnPanel2.setLayout(new FlowLayout()); |
| | | btnPanel2.add(downloadByTimeBtn); |
| | | btnPanel2.add(nullLabel); |
| | | |
| | | downloadByTimeBtn.setEnabled(false); |
| | | downloadByTimeProgressBar.setEnabled(false); |
| | | chnComboBoxByTime.setEnabled(false); |
| | | streamComboBoxByTime.setEnabled(false); |
| | | dateChooserStartByTime.setEnabled(false); |
| | | dateChooserEndByTime.setEnabled(false); |
| | | |
| | | streamComboBoxByTime.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | DownLoadRecordModule.setStreamType(streamComboBoxByTime.getSelectedIndex()); |
| | | } |
| | | }); |
| | | |
| | | downloadByTimeBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | int time = 0; |
| | | // 开始时间 |
| | | String[] dateStartByTime = dateChooserStartByTime.getText().split(" "); |
| | | String[] dateStart1 = dateStartByTime[0].split("-"); |
| | | String[] dateStart2 = dateStartByTime[1].split(":"); |
| | | |
| | | stTimeStart.dwYear = Integer.parseInt(dateStart1[0]); |
| | | stTimeStart.dwMonth = Integer.parseInt(dateStart1[1]); |
| | | stTimeStart.dwDay = Integer.parseInt(dateStart1[2]); |
| | | |
| | | stTimeStart.dwHour = Integer.parseInt(dateStart2[0]); |
| | | stTimeStart.dwMinute = Integer.parseInt(dateStart2[1]); |
| | | stTimeStart.dwSecond = Integer.parseInt(dateStart2[2]); |
| | | |
| | | // 结束时间 |
| | | String[] dateEndByTime = dateChooserEndByTime.getText().split(" "); |
| | | String[] dateEnd1 = dateEndByTime[0].split("-"); |
| | | String[] dateEnd2 = dateEndByTime[1].split(":"); |
| | | |
| | | stTimeEnd.dwYear = Integer.parseInt(dateEnd1[0]); |
| | | stTimeEnd.dwMonth = Integer.parseInt(dateEnd1[1]); |
| | | stTimeEnd.dwDay = Integer.parseInt(dateEnd1[2]); |
| | | |
| | | stTimeEnd.dwHour = Integer.parseInt(dateEnd2[0]); |
| | | stTimeEnd.dwMinute = Integer.parseInt(dateEnd2[1]); |
| | | stTimeEnd.dwSecond = Integer.parseInt(dateEnd2[2]); |
| | | |
| | | if(stTimeStart.dwYear != stTimeEnd.dwYear |
| | | || stTimeStart.dwMonth != stTimeEnd.dwMonth |
| | | || (stTimeEnd.dwDay - stTimeStart.dwDay) > 1) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSelectTimeAgain(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if(stTimeEnd.dwDay - stTimeStart.dwDay == 1) { |
| | | time = (24 + stTimeEnd.dwHour)*60*60 + stTimeEnd.dwMinute*60 + stTimeEnd.dwSecond - |
| | | stTimeStart.dwHour*60*60 - stTimeStart.dwMinute*60 - stTimeStart.dwSecond; |
| | | } else { |
| | | time = stTimeEnd.dwHour*60*60 + stTimeEnd.dwMinute*60 + stTimeEnd.dwSecond - |
| | | stTimeStart.dwHour*60*60 - stTimeStart.dwMinute*60 - stTimeStart.dwSecond; |
| | | } |
| | | System.out.println("time :" + time); |
| | | if(time > 6 * 60 * 60 |
| | | || time <= 0) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSelectTimeAgain(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if(!b_downloadByTime) { |
| | | System.out.println("ByTime" + dateChooserStartByTime.getText() + "\n" + dateChooserEndByTime.getText()); |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | downloadByTimeProgressBar.setValue(0); |
| | | } |
| | | }); |
| | | m_hDownLoadByTimeHandle = DownLoadRecordModule.downloadRecordFile(chnComboBoxByTime.getSelectedIndex(), |
| | | 0, |
| | | stTimeStart, |
| | | stTimeEnd, |
| | | SavePath.getSavePath().getSaveRecordFilePath(), |
| | | m_DownLoadPosByTime); |
| | | if(m_hDownLoadByTimeHandle.longValue() != 0) { |
| | | b_downloadByTime = true; |
| | | downloadByTimeBtn.setText(Res.string().getStopDownload()); |
| | | chnComboBoxByTime.setEnabled(false); |
| | | streamComboBoxByTime.setEnabled(false); |
| | | dateChooserStartByTime.setEnabled(false); |
| | | dateChooserEndByTime.setEnabled(false); |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | } else { |
| | | DownLoadRecordModule.stopDownLoadRecordFile(m_hDownLoadByTimeHandle); |
| | | b_downloadByTime = false; |
| | | downloadByTimeBtn.setText(Res.string().getDownload()); |
| | | chnComboBoxByTime.setEnabled(true); |
| | | streamComboBoxByTime.setEnabled(true); |
| | | dateChooserStartByTime.setEnabled(true); |
| | | dateChooserEndByTime.setEnabled(true); |
| | | |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | downloadByTimeProgressBar.setValue(0); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * 按文件下载回调 |
| | | */ |
| | | private DownLoadPosCallBackByFile m_DownLoadPosByFile = new DownLoadPosCallBackByFile(); // 录像下载进度 |
| | | class DownLoadPosCallBackByFile implements NetSDKLib.fTimeDownLoadPosCallBack{ |
| | | public void invoke(LLong lLoginID, final int dwTotalSize, final int dwDownLoadSize, int index, NetSDKLib.NET_RECORDFILE_INFO.ByValue recordfileinfo, Pointer dwUser) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | // System.out.println("ByFile " + dwDownLoadSize + " / " + dwTotalSize); |
| | | downloadByFileProgressBar.setValue(dwDownLoadSize*100 / dwTotalSize); |
| | | if(dwDownLoadSize == -1) { |
| | | downloadByFileProgressBar.setValue(100); |
| | | DownLoadRecordModule.stopDownLoadRecordFile(m_hDownLoadByFileHandle); |
| | | b_downloadByFile = false; |
| | | downloadByFileBtn.setText(Res.string().getDownload()); |
| | | JOptionPane.showMessageDialog(null, Res.string().getDownloadCompleted(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * 按时间下载回调 |
| | | */ |
| | | private DownLoadPosCallBackByTime m_DownLoadPosByTime = new DownLoadPosCallBackByTime(); // 录像下载进度 |
| | | class DownLoadPosCallBackByTime implements NetSDKLib.fTimeDownLoadPosCallBack{ |
| | | public void invoke(LLong lLoginID, final int dwTotalSize, final int dwDownLoadSize, int index, NetSDKLib.NET_RECORDFILE_INFO.ByValue recordfileinfo, Pointer dwUser) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | // System.out.println("ByTime " + dwDownLoadSize + " / " + dwTotalSize); |
| | | downloadByTimeProgressBar.setValue(dwDownLoadSize*100 / dwTotalSize); |
| | | if(dwDownLoadSize == -1) { |
| | | downloadByTimeProgressBar.setValue(100); |
| | | DownLoadRecordModule.stopDownLoadRecordFile(m_hDownLoadByTimeHandle); |
| | | b_downloadByTime = false; |
| | | downloadByTimeBtn.setText(Res.string().getDownload()); |
| | | chnComboBoxByTime.setEnabled(true); |
| | | streamComboBoxByTime.setEnabled(true); |
| | | dateChooserStartByTime.setEnabled(true); |
| | | dateChooserEndByTime.setEnabled(true); |
| | | JOptionPane.showMessageDialog(null, Res.string().getDownloadCompleted(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | private void setButtonEnable(boolean bln) { |
| | | queryRecordBtn.setEnabled(bln); |
| | | downloadByFileBtn.setEnabled(bln); |
| | | downloadByFileProgressBar.setValue(0); |
| | | downloadByFileProgressBar.setEnabled(bln); |
| | | downloadByTimeBtn.setEnabled(bln); |
| | | downloadByTimeProgressBar.setValue(0); |
| | | downloadByTimeProgressBar.setEnabled(bln); |
| | | chnComboBoxByFile.setEnabled(bln); |
| | | streamComboBoxByFile.setEnabled(bln); |
| | | chnComboBoxByTime.setEnabled(bln); |
| | | streamComboBoxByTime.setEnabled(bln); |
| | | dateChooserStartByFile.setEnabled(bln); |
| | | dateChooserEndByFile.setEnabled(bln); |
| | | dateChooserStartByTime.setEnabled(bln); |
| | | dateChooserEndByTime.setEnabled(bln); |
| | | } |
| | | |
| | | //登录组件 |
| | | private LoginPanel loginPanel; |
| | | // 下载 |
| | | private DownLoadRecordPanel downloadRecordPanel; |
| | | |
| | | // 按文件下载 |
| | | private DownLoadByTimePanel downloadByTimePanel; |
| | | private JPanel downloadByFileSetPanel; |
| | | private JPanel queryPanel; |
| | | private JPanel downByFilePanel; |
| | | private JButton queryRecordBtn; |
| | | private JButton downloadByFileBtn; |
| | | private JProgressBar downloadByFileProgressBar; |
| | | private JButton downloadByTimeBtn; |
| | | private JProgressBar downloadByTimeProgressBar; |
| | | private JTable table; |
| | | private DefaultTableModel defaultmodel; |
| | | private JLabel chnlabel; |
| | | private JComboBox chnComboBoxByFile; |
| | | private JComboBox chnComboBoxByTime; |
| | | private JLabel streamLabel; |
| | | private JComboBox streamComboBoxByFile; |
| | | private JComboBox streamComboBoxByTime; |
| | | |
| | | private DateChooserJButton dateChooserStartByFile; |
| | | private DateChooserJButton dateChooserEndByFile; |
| | | |
| | | // 按文件下载 |
| | | private DownLoadByFilePanel downloadByFilePanel; |
| | | private JPanel downloadByTimeSetPanel; |
| | | private JPanel downByTimePanel; |
| | | |
| | | private DateChooserJButton dateChooserStartByTime; |
| | | private DateChooserJButton dateChooserEndByTime; |
| | | } |
| | | |
| | | public class DownLoadRecord { |
| | | public static void main(String[] args) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | DownLoadRecordFrame demo = new DownLoadRecordFrame(); |
| | | demo.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | }; |
| | | |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame.Gate; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.Dimension; |
| | | import java.awt.FlowLayout; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | import java.awt.event.WindowAdapter; |
| | | import java.awt.event.WindowEvent; |
| | | import java.io.IOException; |
| | | |
| | | import javax.swing.JButton; |
| | | import javax.swing.JCheckBox; |
| | | import javax.swing.JComboBox; |
| | | import javax.swing.JDialog; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JOptionPane; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.JPasswordField; |
| | | import javax.swing.JTextField; |
| | | |
| | | import com.sun.jna.Memory; |
| | | |
| | | import com.netsdk.common.BorderEx; |
| | | import com.netsdk.common.DateChooserJButton; |
| | | import com.netsdk.common.PaintPanel; |
| | | import com.netsdk.common.Res; |
| | | import com.netsdk.demo.module.GateModule; |
| | | import com.netsdk.lib.ToolKits; |
| | | |
| | | public class AddCardDialog extends JDialog{ |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | private Memory memory = null; |
| | | |
| | | private String picPath = ""; |
| | | |
| | | public AddCardDialog(){ |
| | | setTitle(Res.string().getAdd() + Res.string().getCardInfo()); |
| | | setLayout(new BorderLayout()); |
| | | setModal(true); |
| | | pack(); |
| | | setSize(520, 390); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | setDefaultCloseOperation(DISPOSE_ON_CLOSE); // 释放窗体 |
| | | |
| | | CardInfoPanel cardInfoPanel = new CardInfoPanel(); |
| | | ImagePanel imagePanel = new ImagePanel(); |
| | | |
| | | add(cardInfoPanel, BorderLayout.CENTER); |
| | | add(imagePanel, BorderLayout.EAST); |
| | | |
| | | addWindowListener(new WindowAdapter() { |
| | | public void windowClosing(WindowEvent e){ |
| | | clear(); |
| | | dispose(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * 卡信息 |
| | | */ |
| | | private class CardInfoPanel extends JPanel { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public CardInfoPanel() { |
| | | BorderEx.set(this, Res.string().getCardInfo(), 4); |
| | | setLayout(new FlowLayout()); |
| | | |
| | | JLabel cardNoLabel = new JLabel(Res.string().getCardNo() + ":", JLabel.CENTER); |
| | | JLabel userIdLabel = new JLabel(Res.string().getUserId() + ":", JLabel.CENTER); |
| | | JLabel cardNameLabel = new JLabel(Res.string().getCardName() + ":", JLabel.CENTER); |
| | | JLabel cardPasswdLabel = new JLabel(Res.string().getCardPassword() + ":", JLabel.CENTER); |
| | | JLabel cardStatusLabel = new JLabel(Res.string().getCardStatus() + ":", JLabel.CENTER); |
| | | JLabel cardTypeLabel = new JLabel(Res.string().getCardType() + ":", JLabel.CENTER); |
| | | JLabel useTimesLabel = new JLabel(Res.string().getUseTimes() + ":", JLabel.CENTER); |
| | | JLabel validPeriodLabel = new JLabel(Res.string().getValidPeriod() + ":", JLabel.CENTER); |
| | | |
| | | Dimension dimension = new Dimension(); |
| | | dimension.width = 85; |
| | | dimension.height = 20; |
| | | cardNoLabel.setPreferredSize(dimension); |
| | | userIdLabel.setPreferredSize(dimension); |
| | | cardNameLabel.setPreferredSize(dimension); |
| | | cardPasswdLabel.setPreferredSize(dimension); |
| | | cardStatusLabel.setPreferredSize(dimension); |
| | | cardTypeLabel.setPreferredSize(dimension); |
| | | useTimesLabel.setPreferredSize(dimension); |
| | | validPeriodLabel.setPreferredSize(dimension); |
| | | |
| | | cardNoTextField = new JTextField(); |
| | | userIdTextField = new JTextField(); |
| | | cardNameTextField = new JTextField(); |
| | | cardPasswdField = new JPasswordField(); |
| | | cardStatusComboBox = new JComboBox(Res.string().getCardStatusList()); |
| | | cardTypeComboBox = new JComboBox(Res.string().getCardTypeList()); |
| | | useTimesTextField = new JTextField("0"); |
| | | firstEnterCheckBox = new JCheckBox(Res.string().getIsFirstEnter()); |
| | | enableCheckBox = new JCheckBox(Res.string().getEnable()); |
| | | enableCheckBox.setSelected(true); |
| | | enableCheckBox.setVisible(false); |
| | | startTimeBtn = new DateChooserJButton(); |
| | | endTimeBtn = new DateChooserJButton(); |
| | | |
| | | cardNoTextField.setPreferredSize(new Dimension(145, 20)); |
| | | userIdTextField.setPreferredSize(new Dimension(145, 20)); |
| | | cardNameTextField.setPreferredSize(new Dimension(145, 20)); |
| | | cardPasswdField.setPreferredSize(new Dimension(145, 20)); |
| | | useTimesTextField.setPreferredSize(new Dimension(145, 20)); |
| | | cardStatusComboBox.setPreferredSize(new Dimension(145, 20)); |
| | | cardTypeComboBox.setPreferredSize(new Dimension(145, 20)); |
| | | startTimeBtn.setPreferredSize(new Dimension(145, 20)); |
| | | endTimeBtn.setPreferredSize(new Dimension(145, 20)); |
| | | firstEnterCheckBox.setPreferredSize(new Dimension(170, 20)); |
| | | enableCheckBox.setPreferredSize(new Dimension(70, 20)); |
| | | |
| | | JLabel nullLabel1 = new JLabel(); |
| | | JLabel nullLabel2 = new JLabel(); |
| | | JLabel nullLabel3 = new JLabel(); |
| | | nullLabel1.setPreferredSize(new Dimension(5, 20)); |
| | | nullLabel2.setPreferredSize(new Dimension(30, 20)); |
| | | nullLabel3.setPreferredSize(new Dimension(85, 20)); |
| | | |
| | | addBtn = new JButton(Res.string().getAdd()); |
| | | cancelBtn = new JButton(Res.string().getCancel()); |
| | | JLabel nullLabel4 = new JLabel(); |
| | | nullLabel4.setPreferredSize(new Dimension(250, 20)); |
| | | addBtn.setPreferredSize(new Dimension(110, 20)); |
| | | cancelBtn.setPreferredSize(new Dimension(110, 20)); |
| | | |
| | | add(cardNoLabel); |
| | | add(cardNoTextField); |
| | | add(userIdLabel); |
| | | add(userIdTextField); |
| | | |
| | | add(cardNameLabel); |
| | | add(cardNameTextField); |
| | | add(cardPasswdLabel); |
| | | add(cardPasswdField); |
| | | |
| | | add(cardStatusLabel); |
| | | add(cardStatusComboBox); |
| | | add(cardTypeLabel); |
| | | add(cardTypeComboBox); |
| | | |
| | | add(useTimesLabel); |
| | | add(useTimesTextField); |
| | | add(nullLabel1); |
| | | add(firstEnterCheckBox); |
| | | add(nullLabel2); |
| | | add(enableCheckBox); |
| | | |
| | | add(validPeriodLabel); |
| | | add(startTimeBtn); |
| | | add(nullLabel3); |
| | | add(endTimeBtn); |
| | | |
| | | add(nullLabel4); |
| | | add(addBtn); |
| | | add(cancelBtn); |
| | | |
| | | // 添加 |
| | | addBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | if(cardNoTextField.getText().isEmpty()) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInputCardNo(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if(userIdTextField.getText().isEmpty()) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getInputUserId(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | |
| | | |
| | | if(memory == null) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSelectPicture(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | try { |
| | | if (cardNoTextField.getText().getBytes("UTF-8").length > 31) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getCardNoExceedLength() + "(31)", Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if (userIdTextField.getText().getBytes("UTF-8").length > 31) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getUserIdExceedLength() + "(31)", Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if (cardNameTextField.getText().getBytes("UTF-8").length > 63) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getCardNameExceedLength() + "(63)", Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if (new String(cardPasswdField.getPassword()).getBytes("UTF-8").length > 63) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getCardPasswdExceedLength() + "(63)", Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | } catch (Exception e1) { |
| | | e1.printStackTrace(); |
| | | } |
| | | |
| | | // 先添加卡,卡添加成功后,再添加图片 |
| | | int useTimes = 0; |
| | | if(useTimesTextField.getText().isEmpty()) { |
| | | useTimes = 0; |
| | | } else { |
| | | useTimes = Integer.parseInt(useTimesTextField.getText()); |
| | | } |
| | | |
| | | boolean bCardFlags = GateModule.insertCard(cardNoTextField.getText(), userIdTextField.getText(), cardNameTextField.getText(), |
| | | new String(cardPasswdField.getPassword()), Res.string().getCardStatusInt(cardStatusComboBox.getSelectedIndex()), |
| | | Res.string().getCardTypeInt(cardTypeComboBox.getSelectedIndex()), useTimes, |
| | | firstEnterCheckBox.isSelected() ? 1:0, enableCheckBox.isSelected() ? 1:0, startTimeBtn.getText(), endTimeBtn.getText()); |
| | | String cardError = ""; |
| | | if(!bCardFlags) { |
| | | cardError = ToolKits.getErrorCodeShow(); |
| | | } |
| | | |
| | | |
| | | boolean bFaceFalgs = GateModule.addFaceInfo(userIdTextField.getText(), memory); |
| | | String faceError = ""; |
| | | if(!bFaceFalgs) { |
| | | faceError = ToolKits.getErrorCodeShow(); |
| | | } |
| | | |
| | | // 添加卡信息和人脸成功 |
| | | if(bCardFlags && bFaceFalgs) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSucceedAddCardAndPerson(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE); |
| | | dispose(); |
| | | } |
| | | |
| | | // 添加卡信息和人脸失败 |
| | | if(!bCardFlags && !bFaceFalgs) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getFailedAddCard() + " : " + cardError, |
| | | Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | |
| | | // 添加卡信息成功,添加人脸失败 |
| | | if(bCardFlags && !bFaceFalgs) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSucceedAddCardButFailedAddPerson() + " : " + faceError, Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | |
| | | // 卡信息已存在,添加人脸成功 |
| | | if(!bCardFlags && bFaceFalgs) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getCardExistedSucceedAddPerson(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | // 取消 |
| | | cancelBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | clear(); |
| | | dispose(); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 选择图片 |
| | | */ |
| | | private class ImagePanel extends JPanel { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public ImagePanel() { |
| | | BorderEx.set(this, Res.string().getPersonPicture(), 4); |
| | | Dimension dimension = new Dimension(); |
| | | dimension.width = 250; |
| | | setPreferredSize(dimension); |
| | | setLayout(new BorderLayout()); |
| | | |
| | | addImagePanel = new PaintPanel(); // 添加的人员信息图片显示 |
| | | selectImageBtn = new JButton(Res.string().getSelectPicture()); |
| | | add(addImagePanel, BorderLayout.CENTER); |
| | | add(selectImageBtn, BorderLayout.SOUTH); |
| | | |
| | | // 选择图片,获取图片的信息 |
| | | selectImageBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | // 选择图片,获取图片路径,并在界面显示 |
| | | picPath = ToolKits.openPictureFile(addImagePanel); |
| | | |
| | | if(!picPath.isEmpty()) { |
| | | try { |
| | | memory = ToolKits.readPictureFile(picPath); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | private void clear() { |
| | | memory = null; |
| | | picPath = ""; |
| | | } |
| | | |
| | | private PaintPanel addImagePanel; |
| | | private JButton selectImageBtn; |
| | | |
| | | private JTextField cardNoTextField; |
| | | private JTextField userIdTextField; |
| | | private JTextField cardNameTextField; |
| | | private JPasswordField cardPasswdField; |
| | | private JComboBox cardStatusComboBox; |
| | | private JComboBox cardTypeComboBox; |
| | | private JTextField useTimesTextField; |
| | | private JCheckBox firstEnterCheckBox; |
| | | private JCheckBox enableCheckBox; |
| | | private DateChooserJButton startTimeBtn; |
| | | private DateChooserJButton endTimeBtn; |
| | | |
| | | private JButton addBtn; |
| | | private JButton cancelBtn; |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame.Gate; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.Dimension; |
| | | import java.awt.FlowLayout; |
| | | import java.awt.Panel; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | import java.awt.event.WindowAdapter; |
| | | import java.awt.event.WindowEvent; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.util.Vector; |
| | | |
| | | import javax.swing.JButton; |
| | | import javax.swing.JDialog; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JOptionPane; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.JScrollPane; |
| | | import javax.swing.JTable; |
| | | import javax.swing.JTextField; |
| | | import javax.swing.SwingUtilities; |
| | | import javax.swing.SwingWorker; |
| | | import javax.swing.table.DefaultTableCellRenderer; |
| | | import javax.swing.table.DefaultTableModel; |
| | | |
| | | import com.netsdk.common.BorderEx; |
| | | import com.netsdk.common.Res; |
| | | import com.netsdk.demo.module.GateModule; |
| | | import com.netsdk.lib.ToolKits; |
| | | import com.netsdk.lib.NetSDKLib.*; |
| | | |
| | | public class CardManegerDialog extends JDialog{ |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | private int count = 0; // 查询了几次 |
| | | private int index = 0; // 查询的卡信息索引 |
| | | private int nFindCount = 10; // 每次查询的次数 |
| | | |
| | | public CardManegerDialog(){ |
| | | setTitle(Res.string().getCardManager()); |
| | | setLayout(new BorderLayout()); |
| | | setModal(true); |
| | | pack(); |
| | | setSize(700, 390); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | setDefaultCloseOperation(DISPOSE_ON_CLOSE); // 释放窗体 |
| | | |
| | | CardListPanel cardListPanel = new CardListPanel(); |
| | | CardOperatePanel cardOperatePanel = new CardOperatePanel(); |
| | | |
| | | add(cardListPanel, BorderLayout.CENTER); |
| | | add(cardOperatePanel, BorderLayout.EAST); |
| | | |
| | | addWindowListener(new WindowAdapter() { |
| | | public void windowClosing(WindowEvent e){ |
| | | dispose(); |
| | | } |
| | | }); |
| | | |
| | | setOnClickListener(); |
| | | } |
| | | |
| | | /** |
| | | * 卡信息列表 |
| | | */ |
| | | private class CardListPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public CardListPanel() { |
| | | BorderEx.set(this, Res.string().getCardInfo(), 2); |
| | | setLayout(new BorderLayout()); |
| | | |
| | | defaultModel = new DefaultTableModel(null, Res.string().getCardTable()); |
| | | table = new JTable(defaultModel) { // 列表不可编辑 |
| | | private static final long serialVersionUID = 1L; |
| | | @Override |
| | | public boolean isCellEditable(int row, int column) { |
| | | return false; |
| | | } |
| | | }; |
| | | defaultModel.setRowCount(18); |
| | | |
| | | table.getColumnModel().getColumn(0).setPreferredWidth(80); |
| | | table.getColumnModel().getColumn(1).setPreferredWidth(120); |
| | | table.getColumnModel().getColumn(2).setPreferredWidth(100); |
| | | table.getColumnModel().getColumn(3).setPreferredWidth(100); |
| | | table.getColumnModel().getColumn(4).setPreferredWidth(100); |
| | | table.getColumnModel().getColumn(5).setPreferredWidth(100); |
| | | table.getColumnModel().getColumn(6).setPreferredWidth(100); |
| | | table.getColumnModel().getColumn(7).setPreferredWidth(100); |
| | | table.getColumnModel().getColumn(8).setPreferredWidth(100); |
| | | table.getColumnModel().getColumn(9).setPreferredWidth(100); |
| | | table.getColumnModel().getColumn(10).setPreferredWidth(100); |
| | | table.getColumnModel().getColumn(11).setPreferredWidth(150); |
| | | table.getColumnModel().getColumn(12).setPreferredWidth(150); |
| | | |
| | | // 列表显示居中 |
| | | DefaultTableCellRenderer dCellRenderer = new DefaultTableCellRenderer(); |
| | | dCellRenderer.setHorizontalAlignment(JLabel.CENTER); |
| | | table.setDefaultRenderer(Object.class, dCellRenderer); |
| | | ((DefaultTableCellRenderer)table.getTableHeader().getDefaultRenderer()).setHorizontalAlignment(JLabel.CENTER); |
| | | |
| | | table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); |
| | | JScrollPane scrollPane = new JScrollPane(table); |
| | | add(scrollPane, BorderLayout.CENTER); |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 卡操作 |
| | | */ |
| | | private class CardOperatePanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public CardOperatePanel() { |
| | | BorderEx.set(this, Res.string().getCardOperate(), 2); |
| | | setLayout(new BorderLayout()); |
| | | Dimension dimension = new Dimension(); |
| | | dimension.width = 210; |
| | | setPreferredSize(dimension); |
| | | |
| | | Panel panel1 = new Panel(); |
| | | Panel panel2 = new Panel(); |
| | | |
| | | add(panel1, BorderLayout.NORTH); |
| | | add(panel2, BorderLayout.CENTER); |
| | | |
| | | // |
| | | JLabel cardNoLabel = new JLabel(Res.string().getCardNo() + ":", JLabel.CENTER); |
| | | cardNoTextField = new JTextField(""); |
| | | |
| | | cardNoLabel.setPreferredSize(new Dimension(50, 20)); |
| | | cardNoTextField.setPreferredSize(new Dimension(120, 20)); |
| | | cardNoTextField.setHorizontalAlignment(JTextField.CENTER); |
| | | |
| | | panel1.setLayout(new FlowLayout()); |
| | | panel1.add(cardNoLabel); |
| | | panel1.add(cardNoTextField); |
| | | |
| | | // |
| | | searchBtn = new JButton(Res.string().getSearch()); |
| | | addBtn = new JButton(Res.string().getAdd()); |
| | | modifyBtn = new JButton(Res.string().getModify()); |
| | | deleteBtn = new JButton(Res.string().getDelete()); |
| | | clearBtn = new JButton(Res.string().getClear()); |
| | | |
| | | searchBtn.setPreferredSize(new Dimension(180, 21)); |
| | | addBtn.setPreferredSize(new Dimension(180, 21)); |
| | | modifyBtn.setPreferredSize(new Dimension(180, 21)); |
| | | deleteBtn.setPreferredSize(new Dimension(180, 21)); |
| | | clearBtn.setPreferredSize(new Dimension(180, 21)); |
| | | |
| | | JLabel nullLabel = new JLabel(); |
| | | nullLabel.setPreferredSize(new Dimension(180, 30)); |
| | | |
| | | panel2.setLayout(new FlowLayout()); |
| | | panel2.add(nullLabel); |
| | | panel2.add(searchBtn); |
| | | panel2.add(addBtn); |
| | | panel2.add(modifyBtn); |
| | | panel2.add(deleteBtn); |
| | | panel2.add(clearBtn); |
| | | } |
| | | } |
| | | |
| | | private void setOnClickListener() { |
| | | searchBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | try { |
| | | if (cardNoTextField.getText().getBytes("UTF-8").length > 31) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getCardNoExceedLength() + "(31)", Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | } catch (Exception e1) { |
| | | e1.printStackTrace(); |
| | | } |
| | | |
| | | searchBtn.setEnabled(false); |
| | | defaultModel.setRowCount(0); |
| | | defaultModel.setRowCount(18); |
| | | } |
| | | }); |
| | | |
| | | findCardInfo(); |
| | | } |
| | | }); |
| | | |
| | | addBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | AddCardDialog dialog = new AddCardDialog(); |
| | | dialog.setVisible(true); |
| | | } |
| | | }); |
| | | |
| | | modifyBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | int row = -1; |
| | | row = table.getSelectedRow(); //获得所选的单行 |
| | | |
| | | if(row < 0) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSelectCard(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if(defaultModel.getValueAt(row, 3) == null || String.valueOf(defaultModel.getValueAt(row, 3)).trim().isEmpty()) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSelectCard(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | @SuppressWarnings("unchecked") |
| | | Vector<String> vector = (Vector<String>) defaultModel.getDataVector().get(row); |
| | | |
| | | ModifyCardDialog dialog = new ModifyCardDialog(vector); |
| | | dialog.setVisible(true); |
| | | } |
| | | }); |
| | | |
| | | deleteBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | int row = -1; |
| | | row = table.getSelectedRow(); //获得所选的单行 |
| | | |
| | | if(row < 0) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSelectCard(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if(defaultModel.getValueAt(row, 3) == null || String.valueOf(defaultModel.getValueAt(row, 3)).trim().isEmpty()) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSelectCard(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | Vector<String> v = (Vector<String>)defaultModel.getDataVector().get(row); |
| | | |
| | | String recordNo = v.get(3).toString(); // 记录集编号 |
| | | String userId = v.get(4).toString(); // 用户ID |
| | | |
| | | // 删除人脸和卡信息 |
| | | if(!GateModule.deleteFaceInfo(userId) || |
| | | !GateModule.deleteCard(Integer.parseInt(recordNo))) { |
| | | JOptionPane.showMessageDialog(null, ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSucceed(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE); |
| | | defaultModel.removeRow(row); |
| | | table.updateUI(); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | clearBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | int result = JOptionPane.showConfirmDialog(null, Res.string().getWantClearAllInfo(), Res.string().getPromptMessage(), JOptionPane.YES_NO_OPTION); |
| | | if(result == 0) { // 0-是, 1-否 |
| | | // 清空人脸和卡信息 |
| | | if(!GateModule.clearFaceInfo() || |
| | | !GateModule.clearCard()) { |
| | | JOptionPane.showMessageDialog(null, ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSucceed(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE); |
| | | defaultModel.setRowCount(0); |
| | | defaultModel.setRowCount(18); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * 查询卡的信息 |
| | | */ |
| | | public void findCardInfo() { |
| | | new SwingWorker<Boolean, CardData>() { |
| | | @Override |
| | | protected Boolean doInBackground() { |
| | | count = 0; |
| | | index = 0; |
| | | nFindCount = 10; |
| | | |
| | | // 卡号: 为空,查询所有的卡信息 |
| | | // 获取查询句柄 |
| | | if(!GateModule.findCard(cardNoTextField.getText())) { |
| | | return false; |
| | | } |
| | | |
| | | // 查询具体信息 |
| | | while(true) { |
| | | NET_RECORDSET_ACCESS_CTL_CARD[] pstRecord = GateModule.findNextCard(nFindCount); |
| | | if(pstRecord == null) { |
| | | break; |
| | | } |
| | | |
| | | for(int i = 0; i < pstRecord.length; i++) { |
| | | index = i + count * nFindCount; |
| | | |
| | | try { |
| | | Vector<String> vector = new Vector<String>(); |
| | | vector.add(String.valueOf(index + 1)); // 序号 |
| | | vector.add(new String(pstRecord[i].szCardNo).trim()); // 卡号 |
| | | vector.add(new String(pstRecord[i].szCardName, "GBK").trim()); // 卡名 |
| | | vector.add(String.valueOf(pstRecord[i].nRecNo)); // 记录集编号 |
| | | vector.add(new String(pstRecord[i].szUserID).trim()); // 用户ID |
| | | vector.add(new String(pstRecord[i].szPsw).trim()); // 卡密码 |
| | | vector.add(Res.string().getCardStatus(pstRecord[i].emStatus)); // 卡状态 |
| | | vector.add(Res.string().getCardType(pstRecord[i].emType)); // 卡类型 |
| | | vector.add(String.valueOf(pstRecord[i].nUserTime)); // 使用次数 |
| | | vector.add(pstRecord[i].bFirstEnter == 1 ? Res.string().getFirstEnter() : Res.string().getNoFirstEnter()); // 是否首卡 |
| | | vector.add(pstRecord[i].bIsValid == 1? Res.string().getValid() : Res.string().getInValid()); // 是否有效 |
| | | vector.add(pstRecord[i].stuValidStartTime.toStringTimeEx()); // 有效开始时间 |
| | | vector.add(pstRecord[i].stuValidEndTime.toStringTimeEx()); // 有效结束时间 |
| | | |
| | | CardData data = new CardData(); |
| | | data.setIndex(index); |
| | | data.setVector(vector); |
| | | |
| | | publish(data); |
| | | |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | if (pstRecord.length < nFindCount) { |
| | | break; |
| | | } else { |
| | | count ++; |
| | | } |
| | | |
| | | } |
| | | |
| | | // 关闭查询接口 |
| | | GateModule.findCardClose(); |
| | | |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | protected void process(java.util.List<CardData> chunks) { |
| | | for(CardData data : chunks) { |
| | | defaultModel.insertRow(data.getIndex(), data.getVector()); |
| | | if(data.getIndex() < 18) { |
| | | defaultModel.setRowCount(18); |
| | | } else { |
| | | defaultModel.setRowCount(data.getIndex() + 1); |
| | | } |
| | | |
| | | table.updateUI(); |
| | | } |
| | | |
| | | super.process(chunks); |
| | | } |
| | | |
| | | @Override |
| | | protected void done() { |
| | | searchBtn.setEnabled(true); |
| | | } |
| | | }.execute(); |
| | | } |
| | | |
| | | class CardData { |
| | | private int nIndex = 0; |
| | | private Vector<String> vector = null; |
| | | |
| | | public int getIndex() { |
| | | return nIndex; |
| | | } |
| | | public void setIndex(int index) { |
| | | this.nIndex = index; |
| | | } |
| | | public Vector<String> getVector() { |
| | | return vector; |
| | | } |
| | | public void setVector(Vector<String> vector) { |
| | | this.vector = vector; |
| | | } |
| | | } |
| | | |
| | | |
| | | /// |
| | | private DefaultTableModel defaultModel; |
| | | private JTable table; |
| | | |
| | | private JTextField cardNoTextField; |
| | | |
| | | private JButton searchBtn; |
| | | private JButton addBtn; |
| | | private JButton modifyBtn; |
| | | private JButton deleteBtn; |
| | | private JButton clearBtn; |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame.Gate; |
| | | |
| | | import java.awt.AWTEvent; |
| | | import java.awt.BorderLayout; |
| | | import java.awt.Dimension; |
| | | import java.awt.EventQueue; |
| | | import java.awt.FlowLayout; |
| | | import java.awt.Toolkit; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | import java.awt.event.WindowAdapter; |
| | | import java.awt.event.WindowEvent; |
| | | import java.awt.image.BufferedImage; |
| | | import java.io.ByteArrayInputStream; |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.util.Vector; |
| | | |
| | | import javax.imageio.ImageIO; |
| | | import javax.swing.BorderFactory; |
| | | import javax.swing.DefaultComboBoxModel; |
| | | import javax.swing.JButton; |
| | | import javax.swing.JComboBox; |
| | | import javax.swing.JFrame; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JOptionPane; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.JTextField; |
| | | import javax.swing.SwingUtilities; |
| | | import javax.swing.UIManager; |
| | | |
| | | import com.netsdk.common.BorderEx; |
| | | import com.netsdk.common.FunctionList; |
| | | import com.netsdk.common.LoginPanel; |
| | | import com.netsdk.common.PaintPanel; |
| | | import com.netsdk.common.Res; |
| | | import com.netsdk.demo.module.GateModule; |
| | | import com.netsdk.demo.module.LoginModule; |
| | | import com.netsdk.lib.NetSDKLib; |
| | | import com.netsdk.lib.NetSDKLib.*; |
| | | import com.netsdk.lib.ToolKits; |
| | | |
| | | import com.sun.jna.Pointer; |
| | | |
| | | class GateFrame extends JFrame { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | // 获取界面窗口 |
| | | private static JFrame frame = new JFrame(); |
| | | |
| | | // 设备断线通知回调 |
| | | private static DisConnect disConnect = new DisConnect(); |
| | | |
| | | // 网络连接恢复 |
| | | private static HaveReConnect haveReConnect = new HaveReConnect(); |
| | | |
| | | // 订阅句柄 |
| | | public static LLong m_hAttachHandle = new LLong(0); |
| | | |
| | | private Vector<String> chnList = new Vector<String>(); |
| | | |
| | | private AnalyzerDataCB analyzerCallback = new AnalyzerDataCB(); |
| | | |
| | | private java.awt.Component target = this; |
| | | |
| | | private boolean isAttach = false; |
| | | |
| | | public GateFrame() { |
| | | setTitle(Res.string().getGate()); |
| | | setLayout(new BorderLayout()); |
| | | pack(); |
| | | setSize(800, 400); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | LoginModule.init(disConnect, haveReConnect); // 打开工程,初始化 |
| | | |
| | | try { |
| | | UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | loginPanel = new LoginPanel(); |
| | | GatePanel gatePanel = new GatePanel(); |
| | | |
| | | |
| | | add(loginPanel, BorderLayout.NORTH); |
| | | add(gatePanel, BorderLayout.CENTER); |
| | | |
| | | |
| | | loginPanel.addLoginBtnActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | if(loginPanel.checkLoginText()) { |
| | | if(login()) { |
| | | frame = ToolKits.getFrame(e); |
| | | frame.setTitle(Res.string().getGate() + " : " + Res.string().getOnline()); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | |
| | | loginPanel.addLogoutBtnActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | frame.setTitle(Res.string().getGate()); |
| | | logout(); |
| | | } |
| | | }); |
| | | |
| | | addWindowListener(new WindowAdapter() { |
| | | public void windowClosing(WindowEvent e) { |
| | | GateModule.stopRealLoadPic(m_hAttachHandle); |
| | | LoginModule.logout(); |
| | | LoginModule.cleanup(); // 关闭工程,释放资源 |
| | | |
| | | dispose(); |
| | | |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | FunctionList demo = new FunctionList(); |
| | | demo.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /////////////////面板/////////////////// |
| | | // 设备断线回调: 通过 CLIENT_Init 设置该回调函数,当设备出现断线时,SDK会调用该函数 |
| | | private static class DisConnect implements NetSDKLib.fDisConnect { |
| | | public void invoke(LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { |
| | | System.out.printf("Device[%s] Port[%d] DisConnect!\n", pchDVRIP, nDVRPort); |
| | | // 断线提示 |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | frame.setTitle(Res.string().getGate() + " : " + Res.string().getDisConnectReconnecting()); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | // 网络连接恢复,设备重连成功回调 |
| | | // 通过 CLIENT_SetAutoReconnect 设置该回调函数,当已断线的设备重连成功时,SDK会调用该函数 |
| | | private static class HaveReConnect implements NetSDKLib.fHaveReConnect { |
| | | public void invoke(LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { |
| | | System.out.printf("ReConnect Device[%s] Port[%d]\n", pchDVRIP, nDVRPort); |
| | | |
| | | // 重连提示 |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | frame.setTitle(Res.string().getGate() + " : " + Res.string().getOnline()); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | // 登录 |
| | | public boolean login() { |
| | | if(LoginModule.login(loginPanel.ipTextArea.getText(), |
| | | Integer.parseInt(loginPanel.portTextArea.getText()), |
| | | loginPanel.nameTextArea.getText(), |
| | | new String(loginPanel.passwordTextArea.getPassword()))) { |
| | | |
| | | for(int i = 1; i < LoginModule.m_stDeviceInfo.byChanNum + 1; i++) { |
| | | chnList.add(Res.string().getChannel() + " " + String.valueOf(i)); |
| | | } |
| | | |
| | | // 登陆成功,将通道添加到控件 |
| | | chnComboBox.setModel(new DefaultComboBoxModel(chnList)); |
| | | |
| | | loginPanel.setButtonEnable(true); |
| | | setEnable(true); |
| | | |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getLoginFailed() + ", " + ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | // 登出 |
| | | public void logout() { |
| | | GateModule.stopRealLoadPic(m_hAttachHandle); |
| | | LoginModule.logout(); |
| | | |
| | | loginPanel.setButtonEnable(false); |
| | | |
| | | for(int i = 0; i < LoginModule.m_stDeviceInfo.byChanNum; i++) { |
| | | chnList.clear(); |
| | | } |
| | | |
| | | chnComboBox.setModel(new DefaultComboBoxModel()); |
| | | setEnable(false); |
| | | detachBtn.setEnabled(false); |
| | | |
| | | isAttach = false; |
| | | |
| | | clearPanel(); |
| | | } |
| | | |
| | | /** |
| | | * 闸机界面面板 |
| | | */ |
| | | private class GatePanel extends JPanel { |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public GatePanel() { |
| | | BorderEx.set(this, "", 4); |
| | | setLayout(new BorderLayout()); |
| | | |
| | | JPanel gateOperatePanel = new JPanel(); |
| | | JPanel gateShowPanel = new JPanel(); |
| | | |
| | | add(gateOperatePanel, BorderLayout.WEST); |
| | | add(gateShowPanel, BorderLayout.CENTER); |
| | | |
| | | /** |
| | | * 闸机操作面板 |
| | | */ |
| | | gateOperatePanel.setLayout(new BorderLayout()); |
| | | gateOperatePanel.setPreferredSize(new Dimension(250, 70)); |
| | | |
| | | JPanel channelPanel = new JPanel(); |
| | | JPanel operatePanel = new JPanel(); |
| | | gateOperatePanel.add(channelPanel, BorderLayout.NORTH); |
| | | gateOperatePanel.add(operatePanel, BorderLayout.CENTER); |
| | | |
| | | // 通道面板 |
| | | channelPanel.setBorder(BorderFactory.createTitledBorder("")); |
| | | channelPanel.setPreferredSize(new Dimension(220, 70)); |
| | | channelPanel.setLayout(new FlowLayout()); |
| | | |
| | | JLabel channelLabel = new JLabel(Res.string().getChannel()); |
| | | chnComboBox = new JComboBox(); |
| | | |
| | | chnComboBox.setPreferredSize(new Dimension(100, 20)); |
| | | |
| | | channelPanel.add(channelLabel); |
| | | channelPanel.add(chnComboBox); |
| | | |
| | | // 按钮面板 |
| | | operatePanel.setBorder(BorderFactory.createTitledBorder(Res.string().getOperate())); |
| | | operatePanel.setLayout(new FlowLayout()); |
| | | |
| | | attachBtn = new JButton(Res.string().getAttach()); |
| | | detachBtn = new JButton(Res.string().getDetach()); |
| | | cardOperateBtn = new JButton(Res.string().getCardOperate()); |
| | | JLabel nullJLabel = new JLabel(""); |
| | | |
| | | nullJLabel.setPreferredSize(new Dimension(205, 40)); |
| | | attachBtn.setPreferredSize(new Dimension(100, 20)); |
| | | detachBtn.setPreferredSize(new Dimension(100, 20)); |
| | | cardOperateBtn.setPreferredSize(new Dimension(205, 20)); |
| | | |
| | | operatePanel.add(attachBtn); |
| | | operatePanel.add(detachBtn); |
| | | operatePanel.add(nullJLabel); |
| | | operatePanel.add(cardOperateBtn); |
| | | |
| | | setEnable(false); |
| | | detachBtn.setEnabled(false); |
| | | |
| | | /** |
| | | * 闸机订阅展示面板 |
| | | */ |
| | | gateShowPanel.setBorder(BorderFactory.createTitledBorder("")); |
| | | gateShowPanel.setLayout(new BorderLayout()); |
| | | |
| | | personPaintPanel = new PaintPanel(); |
| | | JPanel cardInfoPanel = new JPanel(); |
| | | |
| | | personPaintPanel.setPreferredSize(new Dimension(250, 70)); |
| | | |
| | | gateShowPanel.add(personPaintPanel, BorderLayout.WEST); |
| | | gateShowPanel.add(cardInfoPanel, BorderLayout.CENTER); |
| | | |
| | | // |
| | | cardInfoPanel.setLayout(new FlowLayout()); |
| | | |
| | | JLabel timeLable = new JLabel(Res.string().getTime() + ":", JLabel.CENTER); |
| | | JLabel openStatusLable = new JLabel(Res.string().getOpenStatus() + ":", JLabel.CENTER); |
| | | JLabel openMethodLable = new JLabel(Res.string().getOpenMethod() + ":", JLabel.CENTER); |
| | | JLabel cardNameLable = new JLabel(Res.string().getCardName() + ":", JLabel.CENTER); |
| | | JLabel cardNoLable = new JLabel(Res.string().getCardNo() + ":", JLabel.CENTER); |
| | | JLabel userIdLable = new JLabel(Res.string().getUserId() + ":", JLabel.CENTER); |
| | | JLabel tempLable = new JLabel(Res.string().getTemp() + ":", JLabel.CENTER); |
| | | JLabel maskstutasLable = new JLabel(Res.string().getMaskstutas() + ":", JLabel.CENTER); |
| | | |
| | | |
| | | |
| | | timeLable.setPreferredSize(new Dimension(80, 20)); |
| | | openStatusLable.setPreferredSize(new Dimension(80, 20)); |
| | | openMethodLable.setPreferredSize(new Dimension(80, 20)); |
| | | cardNameLable.setPreferredSize(new Dimension(80, 20)); |
| | | cardNoLable.setPreferredSize(new Dimension(80, 20)); |
| | | userIdLable.setPreferredSize(new Dimension(80, 20)); |
| | | tempLable.setPreferredSize(new Dimension(80, 20)); |
| | | maskstutasLable.setPreferredSize(new Dimension(80, 20)); |
| | | |
| | | |
| | | timeTextField = new JTextField(""); |
| | | openStatusTextField = new JTextField(""); |
| | | openMethodTextField = new JTextField(""); |
| | | cardNameTextField = new JTextField(""); |
| | | cardNoTextField = new JTextField(""); |
| | | userIdTextField = new JTextField(""); |
| | | tempTextField = new JTextField(""); |
| | | maskStatusTextField = new JTextField(""); |
| | | |
| | | |
| | | Dimension dimension = new Dimension(); |
| | | dimension.width = 150; |
| | | dimension.height = 20; |
| | | timeTextField.setPreferredSize(dimension); |
| | | openStatusTextField.setPreferredSize(dimension); |
| | | openMethodTextField.setPreferredSize(dimension); |
| | | cardNameTextField.setPreferredSize(dimension); |
| | | cardNoTextField.setPreferredSize(dimension); |
| | | userIdTextField.setPreferredSize(dimension); |
| | | tempTextField.setPreferredSize(dimension); |
| | | maskStatusTextField.setPreferredSize(dimension); |
| | | |
| | | |
| | | timeTextField.setHorizontalAlignment(JTextField.CENTER); |
| | | openStatusTextField.setHorizontalAlignment(JTextField.CENTER); |
| | | openMethodTextField.setHorizontalAlignment(JTextField.CENTER); |
| | | cardNameTextField.setHorizontalAlignment(JTextField.CENTER); |
| | | cardNoTextField.setHorizontalAlignment(JTextField.CENTER); |
| | | userIdTextField.setHorizontalAlignment(JTextField.CENTER); |
| | | tempTextField.setHorizontalAlignment(JTextField.CENTER); |
| | | maskStatusTextField.setHorizontalAlignment(JTextField.CENTER); |
| | | |
| | | |
| | | timeTextField.setEditable(false); |
| | | openStatusTextField.setEditable(false); |
| | | openMethodTextField.setEditable(false); |
| | | cardNameTextField.setEditable(false); |
| | | cardNoTextField.setEditable(false); |
| | | userIdTextField.setEditable(false); |
| | | tempTextField.setEditable(false); |
| | | maskStatusTextField.setEditable(false); |
| | | |
| | | |
| | | cardInfoPanel.add(timeLable); |
| | | cardInfoPanel.add(timeTextField); |
| | | cardInfoPanel.add(openStatusLable); |
| | | cardInfoPanel.add(openStatusTextField); |
| | | cardInfoPanel.add(openMethodLable); |
| | | cardInfoPanel.add(openMethodTextField); |
| | | cardInfoPanel.add(cardNameLable); |
| | | cardInfoPanel.add(cardNameTextField); |
| | | cardInfoPanel.add(cardNoLable); |
| | | cardInfoPanel.add(cardNoTextField); |
| | | cardInfoPanel.add(userIdLable); |
| | | cardInfoPanel.add(userIdTextField); |
| | | cardInfoPanel.add(tempLable); |
| | | cardInfoPanel.add(tempTextField); |
| | | cardInfoPanel.add(maskstutasLable); |
| | | cardInfoPanel.add(maskStatusTextField); |
| | | |
| | | setOnClickListener(); |
| | | } |
| | | } |
| | | |
| | | // 监听 |
| | | private void setOnClickListener() { |
| | | // 订阅 |
| | | attachBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | m_hAttachHandle = GateModule.realLoadPic(chnComboBox.getSelectedIndex(), analyzerCallback); |
| | | if(m_hAttachHandle.longValue() != 0) { |
| | | isAttach = true; |
| | | attachBtn.setEnabled(false); |
| | | detachBtn.setEnabled(true); |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | // 取消订阅 |
| | | detachBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | GateModule.stopRealLoadPic(m_hAttachHandle); |
| | | synchronized (this) { |
| | | isAttach = false; |
| | | } |
| | | attachBtn.setEnabled(true); |
| | | detachBtn.setEnabled(false); |
| | | |
| | | clearPanel(); |
| | | } |
| | | }); |
| | | |
| | | |
| | | // 卡操作 |
| | | cardOperateBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | CardManegerDialog dialog = new CardManegerDialog(); |
| | | dialog.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | private void setEnable(boolean bln) { |
| | | chnComboBox.setEnabled(bln); |
| | | attachBtn.setEnabled(bln); |
| | | cardOperateBtn.setEnabled(bln); |
| | | } |
| | | |
| | | private void clearPanel() { |
| | | personPaintPanel.setOpaque(true); |
| | | personPaintPanel.repaint(); |
| | | |
| | | timeTextField.setText(""); |
| | | openStatusTextField.setText(""); |
| | | openMethodTextField.setText(""); |
| | | cardNameTextField.setText(""); |
| | | cardNoTextField.setText(""); |
| | | userIdTextField.setText(""); |
| | | tempTextField.setText(""); |
| | | maskStatusTextField.setText(""); |
| | | } |
| | | |
| | | private class AnalyzerDataCB implements NetSDKLib.fAnalyzerDataCallBack { |
| | | private BufferedImage gateBufferedImage = null; |
| | | |
| | | public int invoke(LLong lAnalyzerHandle, int dwAlarmType, |
| | | Pointer pAlarmInfo, Pointer pBuffer, int dwBufSize, |
| | | Pointer dwUser, int nSequence, Pointer reserved) |
| | | { |
| | | if (lAnalyzerHandle.longValue() == 0 || pAlarmInfo == null) { |
| | | return -1; |
| | | } |
| | | |
| | | File path = new File("./GateSnapPicture/"); |
| | | if (!path.exists()) { |
| | | path.mkdir(); |
| | | } |
| | | |
| | | ///< 门禁事件 |
| | | if(dwAlarmType == NetSDKLib.EVENT_IVS_ACCESS_CTL) { |
| | | DEV_EVENT_ACCESS_CTL_INFO msg = new DEV_EVENT_ACCESS_CTL_INFO(); |
| | | ToolKits.GetPointerData(pAlarmInfo, msg); |
| | | |
| | | // 保存图片,获取图片缓存 |
| | | String snapPicPath = path + "\\" + System.currentTimeMillis() + "GateSnapPicture.jpg"; // 保存图片地址 |
| | | byte[] buffer = pBuffer.getByteArray(0, dwBufSize); |
| | | ByteArrayInputStream byteArrInputGlobal = new ByteArrayInputStream(buffer); |
| | | |
| | | try { |
| | | gateBufferedImage = ImageIO.read(byteArrInputGlobal); |
| | | if(gateBufferedImage != null) { |
| | | ImageIO.write(gateBufferedImage, "jpg", new File(snapPicPath)); |
| | | } |
| | | } catch (IOException e2) { |
| | | e2.printStackTrace(); |
| | | } |
| | | |
| | | // 图片以及门禁信息界面显示 |
| | | EventQueue eventQueue = Toolkit.getDefaultToolkit().getSystemEventQueue(); |
| | | if (eventQueue != null) { |
| | | eventQueue.postEvent( new AccessEvent(target, |
| | | gateBufferedImage, |
| | | msg)); |
| | | } |
| | | } |
| | | |
| | | return 0; |
| | | } |
| | | } |
| | | |
| | | class AccessEvent extends AWTEvent { |
| | | /** |
| | | * |
| | | */ |
| | | private static final long serialVersionUID = 1L; |
| | | public static final int EVENT_ID = AWTEvent.RESERVED_ID_MAX + 1; |
| | | |
| | | private BufferedImage gateBufferedImage = null; |
| | | private DEV_EVENT_ACCESS_CTL_INFO msg = null; |
| | | |
| | | public AccessEvent(Object target, |
| | | BufferedImage gateBufferedImage, |
| | | DEV_EVENT_ACCESS_CTL_INFO msg) { |
| | | super(target, EVENT_ID); |
| | | this.gateBufferedImage = gateBufferedImage; |
| | | this.msg = msg; |
| | | } |
| | | |
| | | public BufferedImage getGateBufferedImage() { |
| | | return gateBufferedImage; |
| | | } |
| | | |
| | | public DEV_EVENT_ACCESS_CTL_INFO getAccessInfo() { |
| | | return msg; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | protected void processEvent(AWTEvent event) { |
| | | if (event instanceof AccessEvent) { // 门禁事件处理 |
| | | AccessEvent ev = (AccessEvent) event; |
| | | |
| | | BufferedImage gateBufferedImage = ev.getGateBufferedImage(); |
| | | DEV_EVENT_ACCESS_CTL_INFO msg = ev.getAccessInfo(); |
| | | |
| | | if(!isAttach) { |
| | | return; |
| | | } |
| | | |
| | | // 图片显示 |
| | | if(gateBufferedImage != null) { |
| | | personPaintPanel.setImage(gateBufferedImage); |
| | | personPaintPanel.setOpaque(false); |
| | | personPaintPanel.repaint(); |
| | | } else { |
| | | personPaintPanel.setOpaque(true); |
| | | personPaintPanel.repaint(); |
| | | } |
| | | |
| | | // 时间 |
| | | if(msg.UTC == null || msg.UTC.toString().isEmpty()) { |
| | | timeTextField.setText(""); |
| | | } else { |
| | | msg.UTC.setTime(msg.UTC.dwYear, msg.UTC.dwMonth, msg.UTC.dwDay, msg.UTC.dwHour+8, msg.UTC.dwMinute, msg.UTC.dwSecond); |
| | | timeTextField.setText(msg.UTC.toString()); |
| | | } |
| | | |
| | | // 开门状态 |
| | | if(msg.bStatus == 1) { |
| | | openStatusTextField.setText(Res.string().getSucceed()); |
| | | } else { |
| | | openStatusTextField.setText(Res.string().getFailed()); |
| | | } |
| | | |
| | | // 开门方式 |
| | | openMethodTextField.setText(Res.string().getOpenMethods(msg.emOpenMethod)); |
| | | |
| | | // 卡名 |
| | | try { |
| | | cardNameTextField.setText(new String(msg.szCardName, "GBK").trim()); |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | // 卡号 |
| | | cardNoTextField.setText(new String(msg.szCardNo).trim()); |
| | | |
| | | // 用户ID |
| | | userIdTextField.setText(new String(msg.szUserID).trim()); |
| | | |
| | | // 口罩状态 |
| | | maskStatusTextField.setText(Res.string().getMaskStatus(msg.emMask)); |
| | | |
| | | //温度 |
| | | if(msg.stuManTemperatureInfo.emTemperatureUnit==0) { |
| | | tempTextField.setText(String.valueOf(msg.stuManTemperatureInfo.fCurrentTemperature+"℃")); |
| | | }else if(msg.stuManTemperatureInfo.emTemperatureUnit==1){ |
| | | tempTextField.setText(String.valueOf(msg.stuManTemperatureInfo.fCurrentTemperature+"℉")); |
| | | }else if(msg.stuManTemperatureInfo.emTemperatureUnit==2) { |
| | | tempTextField.setText(String.valueOf(msg.stuManTemperatureInfo.fCurrentTemperature+"K")); |
| | | } |
| | | |
| | | |
| | | } else { |
| | | super.processEvent(event); |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * 登录控件 |
| | | */ |
| | | private LoginPanel loginPanel; |
| | | |
| | | private JComboBox chnComboBox; |
| | | private JButton attachBtn; |
| | | private JButton detachBtn; |
| | | private JButton cardOperateBtn; |
| | | |
| | | private PaintPanel personPaintPanel; |
| | | |
| | | private JTextField timeTextField; |
| | | private JTextField openStatusTextField; |
| | | private JTextField openMethodTextField; |
| | | private JTextField cardNameTextField; |
| | | private JTextField cardNoTextField; |
| | | private JTextField userIdTextField; |
| | | private JTextField tempTextField; |
| | | private JTextField maskStatusTextField; |
| | | } |
| | | |
| | | public class Gate { |
| | | public static void main(String[] args) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | GateFrame demo = new GateFrame(); |
| | | demo.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame.Gate; |
| | | |
| | | import java.awt.BorderLayout; |
| | | import java.awt.Dimension; |
| | | import java.awt.event.ActionEvent; |
| | | import java.awt.event.ActionListener; |
| | | import java.awt.event.WindowAdapter; |
| | | import java.awt.event.WindowEvent; |
| | | import java.io.IOException; |
| | | import java.util.Vector; |
| | | |
| | | import javax.swing.JButton; |
| | | import javax.swing.JCheckBox; |
| | | import javax.swing.JComboBox; |
| | | import javax.swing.JDialog; |
| | | import javax.swing.JLabel; |
| | | import javax.swing.JOptionPane; |
| | | import javax.swing.JPanel; |
| | | import javax.swing.JPasswordField; |
| | | import javax.swing.JTextField; |
| | | |
| | | import com.sun.jna.Memory; |
| | | |
| | | import com.netsdk.common.BorderEx; |
| | | import com.netsdk.common.DateChooserJButton; |
| | | import com.netsdk.common.PaintPanel; |
| | | import com.netsdk.common.Res; |
| | | import com.netsdk.demo.module.GateModule; |
| | | import com.netsdk.lib.ToolKits; |
| | | |
| | | public class ModifyCardDialog extends JDialog{ |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | private Memory memory = null; |
| | | |
| | | private Vector<String> vector = null; |
| | | |
| | | private String picPath = ""; |
| | | |
| | | public ModifyCardDialog(Vector<String> v){ |
| | | setTitle(Res.string().getModify() + Res.string().getCardInfo()); |
| | | setLayout(new BorderLayout()); |
| | | setModal(true); |
| | | pack(); |
| | | setSize(520, 390); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | setDefaultCloseOperation(DISPOSE_ON_CLOSE); // 释放窗体 |
| | | |
| | | CardInfoPanel cardInfoPanel = new CardInfoPanel(); |
| | | ImagePanel imagePanel = new ImagePanel(); |
| | | |
| | | add(cardInfoPanel, BorderLayout.CENTER); |
| | | add(imagePanel, BorderLayout.EAST); |
| | | |
| | | this.vector = v; |
| | | showCardInfo(); |
| | | |
| | | addWindowListener(new WindowAdapter() { |
| | | public void windowClosing(WindowEvent e){ |
| | | clear(); |
| | | dispose(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * 卡信息 |
| | | */ |
| | | private class CardInfoPanel extends JPanel { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public CardInfoPanel() { |
| | | BorderEx.set(this, Res.string().getCardInfo(), 4); |
| | | |
| | | JLabel cardNoLabel = new JLabel(Res.string().getCardNo() + ":", JLabel.CENTER); |
| | | JLabel userIdLabel = new JLabel(Res.string().getUserId() + ":", JLabel.CENTER); |
| | | JLabel cardNameLabel = new JLabel(Res.string().getCardName() + ":", JLabel.CENTER); |
| | | JLabel cardPasswdLabel = new JLabel(Res.string().getCardPassword() + ":", JLabel.CENTER); |
| | | JLabel cardStatusLabel = new JLabel(Res.string().getCardStatus() + ":", JLabel.CENTER); |
| | | JLabel cardTypeLabel = new JLabel(Res.string().getCardType() + ":", JLabel.CENTER); |
| | | JLabel useTimesLabel = new JLabel(Res.string().getUseTimes() + ":", JLabel.CENTER); |
| | | JLabel validPeriodLabel = new JLabel(Res.string().getValidPeriod() + ":", JLabel.CENTER); |
| | | |
| | | Dimension dimension = new Dimension(); |
| | | dimension.width = 85; |
| | | dimension.height = 20; |
| | | cardNoLabel.setPreferredSize(dimension); |
| | | userIdLabel.setPreferredSize(dimension); |
| | | cardNameLabel.setPreferredSize(dimension); |
| | | cardPasswdLabel.setPreferredSize(dimension); |
| | | cardStatusLabel.setPreferredSize(dimension); |
| | | cardTypeLabel.setPreferredSize(dimension); |
| | | useTimesLabel.setPreferredSize(dimension); |
| | | validPeriodLabel.setPreferredSize(dimension); |
| | | |
| | | cardNoTextField = new JTextField(); |
| | | userIdTextField = new JTextField(); |
| | | cardNameTextField = new JTextField(); |
| | | cardPasswdField = new JPasswordField(); |
| | | cardStatusComboBox = new JComboBox(Res.string().getCardStatusList()); |
| | | cardTypeComboBox = new JComboBox(Res.string().getCardTypeList()); |
| | | useTimesTextField = new JTextField(); |
| | | firstEnterCheckBox = new JCheckBox(Res.string().getIsFirstEnter()); |
| | | enableCheckBox = new JCheckBox(Res.string().getEnable()); |
| | | enableCheckBox.setSelected(true); |
| | | enableCheckBox.setVisible(false); |
| | | startTimeBtn = new DateChooserJButton(); |
| | | endTimeBtn = new DateChooserJButton(); |
| | | |
| | | cardNoTextField.setPreferredSize(new Dimension(145, 20)); |
| | | userIdTextField.setPreferredSize(new Dimension(145, 20)); |
| | | cardNameTextField.setPreferredSize(new Dimension(145, 20)); |
| | | cardPasswdField.setPreferredSize(new Dimension(145, 20)); |
| | | useTimesTextField.setPreferredSize(new Dimension(145, 20)); |
| | | cardStatusComboBox.setPreferredSize(new Dimension(145, 20)); |
| | | cardTypeComboBox.setPreferredSize(new Dimension(145, 20)); |
| | | startTimeBtn.setPreferredSize(new Dimension(145, 20)); |
| | | endTimeBtn.setPreferredSize(new Dimension(145, 20)); |
| | | firstEnterCheckBox.setPreferredSize(new Dimension(170, 20)); |
| | | enableCheckBox.setPreferredSize(new Dimension(70, 20)); |
| | | |
| | | JLabel nullLabel1 = new JLabel(); |
| | | JLabel nullLabel2 = new JLabel(); |
| | | JLabel nullLabel3 = new JLabel(); |
| | | nullLabel1.setPreferredSize(new Dimension(5, 20)); |
| | | nullLabel2.setPreferredSize(new Dimension(30, 20)); |
| | | nullLabel3.setPreferredSize(new Dimension(85, 20)); |
| | | |
| | | cardNoTextField.setEditable(false); |
| | | userIdTextField.setEditable(false); |
| | | |
| | | modifyBtn = new JButton(Res.string().getModify()); |
| | | cancelBtn = new JButton(Res.string().getCancel()); |
| | | JLabel nullLabel4 = new JLabel(); |
| | | nullLabel4.setPreferredSize(new Dimension(250, 20)); |
| | | modifyBtn.setPreferredSize(new Dimension(110, 20)); |
| | | cancelBtn.setPreferredSize(new Dimension(110, 20)); |
| | | |
| | | add(cardNoLabel); |
| | | add(cardNoTextField); |
| | | add(userIdLabel); |
| | | add(userIdTextField); |
| | | |
| | | add(cardNameLabel); |
| | | add(cardNameTextField); |
| | | add(cardPasswdLabel); |
| | | add(cardPasswdField); |
| | | |
| | | add(cardStatusLabel); |
| | | add(cardStatusComboBox); |
| | | add(cardTypeLabel); |
| | | add(cardTypeComboBox); |
| | | |
| | | add(useTimesLabel); |
| | | add(useTimesTextField); |
| | | add(nullLabel1); |
| | | add(firstEnterCheckBox); |
| | | add(nullLabel2); |
| | | add(enableCheckBox); |
| | | |
| | | add(validPeriodLabel); |
| | | add(startTimeBtn); |
| | | add(nullLabel3); |
| | | add(endTimeBtn); |
| | | |
| | | add(nullLabel4); |
| | | add(modifyBtn); |
| | | add(cancelBtn); |
| | | |
| | | // 修改 |
| | | modifyBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | try { |
| | | if (cardNameTextField.getText().getBytes("UTF-8").length > 63) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getCardNameExceedLength() + "(63)", Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | |
| | | if (new String(cardPasswdField.getPassword()).getBytes("UTF-8").length > 63) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getCardPasswdExceedLength() + "(63)", Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return; |
| | | } |
| | | } catch (Exception e1) { |
| | | e1.printStackTrace(); |
| | | } |
| | | |
| | | int useTimes = 0; |
| | | if(useTimesTextField.getText().isEmpty()) { |
| | | useTimes = 0; |
| | | } else { |
| | | useTimes = Integer.parseInt(useTimesTextField.getText()); |
| | | } |
| | | |
| | | if(GateModule.modifyCard(Integer.parseInt(vector.get(3).toString()), cardNoTextField.getText(), |
| | | userIdTextField.getText(), cardNameTextField.getText(), |
| | | new String(cardPasswdField.getPassword()), |
| | | Res.string().getCardStatusInt(cardStatusComboBox.getSelectedIndex()), |
| | | Res.string().getCardTypeInt(cardTypeComboBox.getSelectedIndex()), |
| | | useTimes, firstEnterCheckBox.isSelected() ? 1:0, |
| | | enableCheckBox.isSelected() ? 1:0, startTimeBtn.getText(), endTimeBtn.getText())) { |
| | | if(memory == null) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSucceedModifyCard(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE); |
| | | dispose(); |
| | | } else { |
| | | if(GateModule.modifyFaceInfo(userIdTextField.getText(), memory)) { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSucceedModifyCardAndPerson(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE); |
| | | dispose(); |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getSucceedModifyCardButFailedModifyPerson() + " : " + ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | } |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getFailedModifyCard() + " : " + ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | // 取消 |
| | | cancelBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | clear(); |
| | | dispose(); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 选择图片 |
| | | */ |
| | | private class ImagePanel extends JPanel { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public ImagePanel() { |
| | | BorderEx.set(this, Res.string().getPersonPicture(), 4); |
| | | Dimension dimension = new Dimension(); |
| | | dimension.width = 250; |
| | | setPreferredSize(dimension); |
| | | setLayout(new BorderLayout()); |
| | | |
| | | addImagePanel = new PaintPanel(); // 添加的人员信息图片显示 |
| | | selectImageBtn = new JButton(Res.string().getSelectPicture()); |
| | | add(addImagePanel, BorderLayout.CENTER); |
| | | add(selectImageBtn, BorderLayout.SOUTH); |
| | | |
| | | // 选择图片,获取图片的信息 |
| | | selectImageBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | // 选择图片,获取图片路径,并在界面显示 |
| | | picPath = ToolKits.openPictureFile(addImagePanel); |
| | | |
| | | if(!picPath.isEmpty()) { |
| | | try { |
| | | memory = ToolKits.readPictureFile(picPath); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 界面显示要修改的卡信息 |
| | | */ |
| | | private void showCardInfo() { |
| | | // 卡号 |
| | | cardNoTextField.setText(vector.get(1).toString()); |
| | | |
| | | // 卡名 |
| | | cardNameTextField.setText(vector.get(2).toString()); |
| | | |
| | | // 用户ID |
| | | userIdTextField.setText(vector.get(4).toString()); |
| | | |
| | | // 卡密码 |
| | | cardPasswdField.setText(vector.get(5).toString()); |
| | | |
| | | // 卡状态 |
| | | cardStatusComboBox.setSelectedIndex(Res.string().getCardStatusChomBoxIndex(vector.get(6).toString())); |
| | | |
| | | // 卡类型 |
| | | cardTypeComboBox.setSelectedIndex(Res.string().getCardTypeChomBoxIndex(vector.get(7).toString())); |
| | | |
| | | // 使用次数 |
| | | useTimesTextField.setText(vector.get(8).toString()); |
| | | |
| | | // 是否首卡 |
| | | if(vector.get(9).toString().equals(Res.string().getFirstEnter())) { |
| | | firstEnterCheckBox.setSelected(true); |
| | | } else { |
| | | firstEnterCheckBox.setSelected(false); |
| | | } |
| | | |
| | | // 是否有效 |
| | | if(vector.get(10).toString().equals(Res.string().getValid())) { |
| | | enableCheckBox.setSelected(true); |
| | | } else { |
| | | enableCheckBox.setSelected(false); |
| | | } |
| | | |
| | | // 有效开始时间 |
| | | startTimeBtn.setText(vector.get(11).toString()); |
| | | |
| | | // 有效结束时间 |
| | | endTimeBtn.setText(vector.get(12).toString()); |
| | | } |
| | | |
| | | private void clear() { |
| | | memory = null; |
| | | vector = null; |
| | | picPath = ""; |
| | | } |
| | | |
| | | private PaintPanel addImagePanel; |
| | | private JButton selectImageBtn; |
| | | |
| | | private JTextField cardNoTextField; |
| | | private JTextField userIdTextField; |
| | | private JTextField cardNameTextField; |
| | | private JPasswordField cardPasswdField; |
| | | private JComboBox cardStatusComboBox; |
| | | private JComboBox cardTypeComboBox; |
| | | private JTextField useTimesTextField; |
| | | private JCheckBox firstEnterCheckBox; |
| | | private JCheckBox enableCheckBox; |
| | | private DateChooserJButton startTimeBtn; |
| | | private DateChooserJButton endTimeBtn; |
| | | |
| | | private JButton modifyBtn; |
| | | private JButton cancelBtn; |
| | | } |
对比新文件 |
| | |
| | | package com.netsdk.demo.frame; |
| | | |
| | | import com.sun.jna.Pointer; |
| | | import com.netsdk.common.*; |
| | | import com.netsdk.demo.module.*; |
| | | import com.netsdk.lib.NetSDKLib; |
| | | import com.netsdk.lib.ToolKits; |
| | | |
| | | import javax.swing.*; |
| | | import javax.swing.border.EmptyBorder; |
| | | import javax.swing.table.DefaultTableCellRenderer; |
| | | import javax.swing.table.DefaultTableModel; |
| | | |
| | | import java.awt.*; |
| | | import java.awt.event.*; |
| | | import java.util.*; |
| | | import java.util.List; |
| | | import java.util.concurrent.ExecutorService; |
| | | import java.util.concurrent.Executors; |
| | | |
| | | /** |
| | | * 人数统计事件 demo |
| | | */ |
| | | class HumanNumberStatisticFrame extends JFrame { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | |
| | | /* |
| | | * 界面、SDK初始化及登录 |
| | | */ |
| | | public HumanNumberStatisticFrame() { |
| | | setTitle(Res.string().getHumanNumberStatistic()); |
| | | setLayout(new BorderLayout()); |
| | | pack(); |
| | | setSize(1080, 560); |
| | | setResizable(false); |
| | | setLocationRelativeTo(null); |
| | | LoginModule.init(disConnectCB, haveReConnectCB); // 打开工程,SDK初始化,注册断线和重连回调函数 |
| | | |
| | | try { |
| | | UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | loginPanel = new LoginPanel(); |
| | | humanStatisticPanel = new HumanStatisticPanel(); |
| | | |
| | | add(loginPanel, BorderLayout.NORTH); |
| | | add(humanStatisticPanel, BorderLayout.CENTER); |
| | | |
| | | // 调用按钮登录事件 |
| | | loginPanel.addLoginBtnActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | if (loginPanel.checkLoginText()) { |
| | | if (login()) { |
| | | mainFrame = ToolKits.getFrame(e); |
| | | mainFrame.setTitle(Res.string().getHumanNumberStatistic() + " : " + Res.string().getOnline()); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | // 调用按钮登出事件 |
| | | loginPanel.addLogoutBtnActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | mainFrame.setTitle(Res.string().getHumanNumberStatistic()); |
| | | logout(); |
| | | } |
| | | }); |
| | | |
| | | // 注册窗体清出事件 |
| | | addWindowListener(new WindowAdapter() { |
| | | public void windowClosing(WindowEvent e) { |
| | | RealPlayModule.stopRealPlay(m_hPlayHandle); // 退出句柄 |
| | | TargetRecognitionModule.renderPrivateData(m_hPlayHandle, 0); // 关闭规则框 |
| | | VideoStateSummaryModule.detachAllVideoStatSummary(); // 退订事件 |
| | | LoginModule.logout(); // 退出 |
| | | LoginModule.cleanup(); // 关闭工程,释放资源 |
| | | dispose(); |
| | | // 返回主菜单 |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | FunctionList demo = new FunctionList(); |
| | | demo.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /////////////////////////////// 登录相关 ////////////////////////////////////// |
| | | ////////////////////////////////////////////////////////////////////////////// |
| | | |
| | | // 设备断线通知回调 |
| | | private static DisConnectCallBack disConnectCB = new DisConnectCallBack(); |
| | | |
| | | // 网络连接恢复 |
| | | private static HaveReConnectCallBack haveReConnectCB = new HaveReConnectCallBack(); |
| | | |
| | | private Vector<String> chnList = new Vector<String>(); |
| | | |
| | | // 预览句柄 |
| | | public static NetSDKLib.LLong m_hPlayHandle = new NetSDKLib.LLong(0); |
| | | |
| | | // 设备断线回调: 通过 CLIENT_Init 设置该回调函数,当设备出现断线时,SDK会调用该函数 |
| | | private static class DisConnectCallBack implements NetSDKLib.fDisConnect { |
| | | public void invoke(NetSDKLib.LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { |
| | | System.out.printf("Device[%s] Port[%d] DisConnectCallBack!\n", pchDVRIP, nDVRPort); |
| | | // 断线提示 |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | mainFrame.setTitle(Res.string().getHumanNumberStatistic() + " : " + Res.string().getDisConnectReconnecting()); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | } |
| | | |
| | | // 网络连接恢复,设备重连成功回调 |
| | | // 通过 CLIENT_SetAutoReconnect 设置该回调函数,当已断线的设备重连成功时,SDK会调用该函数 |
| | | private static class HaveReConnectCallBack implements NetSDKLib.fHaveReConnect { |
| | | public void invoke(NetSDKLib.LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { |
| | | System.out.printf("ReConnect Device[%s] Port[%d]\n", pchDVRIP, nDVRPort); |
| | | |
| | | // 重连提示 |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | mainFrame.setTitle(Res.string().getHumanNumberStatistic() + " : " + Res.string().getOnline()); |
| | | } |
| | | }); |
| | | |
| | | // 断线后需要重新订阅 |
| | | ExecutorService service = Executors.newSingleThreadExecutor(); |
| | | service.execute(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | |
| | | if (b_RealPlay) { // 如果断前正在预览 |
| | | stopRealPlay(); // 退出预览 |
| | | realPlay(); // 重新开启预览 |
| | | } |
| | | |
| | | if (b_Attachment) { // 如果断前正在订阅 |
| | | // 重订阅事件 |
| | | VideoStateSummaryModule.reAttachAllVideoStatSummary(humanNumberStatisticCB); |
| | | setAttachBtnTextEnable(); |
| | | } |
| | | } |
| | | }); |
| | | service.shutdown(); |
| | | } |
| | | |
| | | } |
| | | |
| | | // 登录 |
| | | public boolean login() { |
| | | if (LoginModule.login(loginPanel.ipTextArea.getText(), |
| | | Integer.parseInt(loginPanel.portTextArea.getText()), |
| | | loginPanel.nameTextArea.getText(), |
| | | new String(loginPanel.passwordTextArea.getPassword()))) { |
| | | |
| | | loginPanel.setButtonEnable(true); |
| | | setButtonEnable(true); |
| | | |
| | | final int chanNum = LoginModule.m_stDeviceInfo.byChanNum; |
| | | |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | // 更新列表长度 |
| | | int listSize = Math.max(chanNum, 32); |
| | | groupListPanel.remove(scrollPane); |
| | | groupListPanel.creatGroupInfoPanel(listSize); |
| | | |
| | | // 登陆成功,将通道添加到控件 |
| | | for (int i = 0; i < chanNum; i++) { |
| | | chnList.add(Res.string().getChannel() + " " + String.valueOf(i + 1)); |
| | | SummaryInfo summaryInfo = new SummaryInfo(); |
| | | summaryInfo.nChannelID = i; |
| | | EventDisplay.dataList.add(summaryInfo); |
| | | } |
| | | chnComboBox.setModel(new DefaultComboBoxModel(chnList)); |
| | | |
| | | setEnableAllInnerComponent(controlPanel, true); |
| | | |
| | | EventDisplay.setEventInfo(groupInfoTable, EventDisplay.dataList); |
| | | } |
| | | }); |
| | | |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, Res.string().getLoginFailed() + ", " + ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | // 登出 |
| | | public void logout() { |
| | | |
| | | VideoStateSummaryModule.detachAllVideoStatSummary(); // 退订阅 |
| | | stopRealPlay(); //退出播放 |
| | | LoginModule.logout(); // 退出登录 |
| | | |
| | | chnList.clear(); // 清除通道号列表 |
| | | EventDisplay.clearEventInfoList(); // 清除事件列表数据 |
| | | chnComboBox.setModel(new DefaultComboBoxModel()); |
| | | |
| | | loginPanel.setButtonEnable(false); |
| | | setAttachBtnTextDisable(); |
| | | setEnableAllInnerComponent(controlPanel, false); |
| | | } |
| | | |
| | | /////////////////////////////// 人数统计事件 //////////////////////////////// |
| | | //////////////////////////////////////////////////////////////////////////// |
| | | |
| | | private static boolean b_RealPlay = false; |
| | | private static boolean b_Attachment = false; |
| | | |
| | | /* |
| | | * 一级面板:人数统计控制面板 |
| | | */ |
| | | private class HumanStatisticPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public HumanStatisticPanel() { |
| | | setLayout(new BorderLayout()); |
| | | Dimension dim = getPreferredSize(); |
| | | dim.width = 320; |
| | | setPreferredSize(dim); |
| | | |
| | | humanStatisticAttachPanel = new HumanStatisticControlPanel(); // 人数统计控制面板 |
| | | realPanel = new RealPanel(); // 实时显示面啊 |
| | | groupListPanel = new GroupListPanel(); // 事件展示面板 |
| | | |
| | | add(humanStatisticAttachPanel, BorderLayout.NORTH); |
| | | add(realPanel, BorderLayout.EAST); |
| | | add(groupListPanel, BorderLayout.CENTER); |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * 二级面板: 控制面板 通道、码流设置,事件订阅 |
| | | */ |
| | | private class HumanStatisticControlPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public HumanStatisticControlPanel() { |
| | | BorderEx.set(this, Res.string().getHumanNumberStatisticAttach(), 2); |
| | | setLayout(new FlowLayout()); |
| | | |
| | | /* 预览控制面板 */ |
| | | controlPanel = new Panel(); |
| | | add(controlPanel); |
| | | |
| | | chnLabel = new JLabel(Res.string().getChannel()); |
| | | chnComboBox = new JComboBox(); |
| | | |
| | | streamLabel = new JLabel(Res.string().getStreamType()); |
| | | String[] stream = {Res.string().getMasterStream(), Res.string().getSubStream()}; |
| | | streamComboBox = new JComboBox(stream); |
| | | realPlayBtn = new JButton(Res.string().getStartRealPlay()); |
| | | attachBtn = new JButton(Res.string().getAttach()); |
| | | clearBtn = new JButton(Res.string().getHumanNumberStatisticEventClearOSD()); |
| | | |
| | | controlPanel.setLayout(new FlowLayout()); |
| | | controlPanel.add(chnLabel); |
| | | controlPanel.add(chnComboBox); |
| | | controlPanel.add(streamLabel); |
| | | controlPanel.add(streamComboBox); |
| | | controlPanel.add(realPlayBtn); |
| | | controlPanel.add(attachBtn); |
| | | controlPanel.add(clearBtn); |
| | | |
| | | chnComboBox.setPreferredSize(new Dimension(90, 20)); |
| | | streamComboBox.setPreferredSize(new Dimension(120, 20)); |
| | | realPlayBtn.setPreferredSize(new Dimension(120, 20)); |
| | | attachBtn.setPreferredSize(new Dimension(120, 20)); |
| | | clearBtn.setPreferredSize(new Dimension(120, 20)); |
| | | |
| | | chnComboBox.setEnabled(false); |
| | | streamComboBox.setEnabled(false); |
| | | realPlayBtn.setEnabled(false); |
| | | attachBtn.setEnabled(false); |
| | | clearBtn.setEnabled(false); |
| | | |
| | | realPlayBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | realPlay(); |
| | | } |
| | | }); |
| | | |
| | | attachBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent arg0) { |
| | | |
| | | int channel = chnComboBox.getSelectedIndex(); |
| | | |
| | | if (!VideoStateSummaryModule.channelAttached(channel)) { |
| | | if (VideoStateSummaryModule.attachVideoStatSummary(channel, humanNumberStatisticCB)) { |
| | | setAttachBtnTextEnable(); |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | } else { |
| | | if (VideoStateSummaryModule.detachVideoStatSummary(channel)) { |
| | | setAttachBtnTextDisable(); |
| | | SummaryInfo info = new SummaryInfo(); |
| | | info.nChannelID = channel; |
| | | EventDisplay.dataList.add(channel, info); |
| | | EventDisplay.dataList.remove(channel + 1); |
| | | EventDisplay.setEventInfo(groupInfoTable, EventDisplay.dataList); |
| | | } else { |
| | | JOptionPane.showMessageDialog(null, ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | |
| | | // 添加下拉框事件监听器 |
| | | chnComboBox.addItemListener(new ItemListener() { |
| | | @Override |
| | | public void itemStateChanged(ItemEvent e) { |
| | | if (e.getStateChange() == ItemEvent.SELECTED) { |
| | | int channel = chnComboBox.getSelectedIndex(); |
| | | if (VideoStateSummaryModule.channelAttached(channel)) { |
| | | setAttachBtnTextEnable(); |
| | | } else { |
| | | setAttachBtnTextDisable(); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | |
| | | clearBtn.addActionListener(new ActionListener() { |
| | | @Override |
| | | public void actionPerformed(ActionEvent e) { |
| | | clearSummaryInfo(); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | private static void setRealPlayBtnTextEnable() { |
| | | b_RealPlay = true; |
| | | realPlayBtn.setText(Res.string().getStopRealPlay()); |
| | | } |
| | | |
| | | private static void setRealPlayBtnTextDisable() { |
| | | b_RealPlay = false; |
| | | realPlayBtn.setText(Res.string().getStartRealPlay()); |
| | | } |
| | | |
| | | private static void setAttachBtnTextEnable() { |
| | | b_Attachment = VideoStateSummaryModule.getM_hAttachMap().size() > 0; |
| | | attachBtn.setText(Res.string().getDetach()); |
| | | } |
| | | |
| | | private static void setAttachBtnTextDisable() { |
| | | b_Attachment = VideoStateSummaryModule.getM_hAttachMap().size() > 0; |
| | | attachBtn.setText(Res.string().getAttach()); |
| | | } |
| | | |
| | | private static void setButtonEnable(boolean bln) { |
| | | realPlayWindow.setEnabled(bln); |
| | | chnComboBox.setEnabled(bln); |
| | | streamComboBox.setEnabled(bln); |
| | | realPlayBtn.setEnabled(bln); |
| | | attachBtn.setEnabled(bln); |
| | | clearBtn.setEnabled(bln); |
| | | } |
| | | |
| | | // 启用/禁用 Container 内所有组件 |
| | | public static void setEnableAllInnerComponent(Component container, boolean enable) { |
| | | for (Component component : getComponents(container)) { |
| | | component.setEnabled(enable); |
| | | } |
| | | } |
| | | |
| | | // 获取 Swing Container 内所有的非 Container 组件 |
| | | public static Component[] getComponents(Component container) { |
| | | ArrayList<Component> list = null; |
| | | |
| | | try { |
| | | list = new ArrayList<Component>(Arrays.asList( |
| | | ((Container) container).getComponents())); |
| | | for (int index = 0; index < list.size(); index++) { |
| | | list.addAll(Arrays.asList(getComponents(list.get(index)))); |
| | | } |
| | | } catch (ClassCastException e) { |
| | | list = new ArrayList<Component>(); |
| | | } |
| | | |
| | | return list.toArray(new Component[0]); |
| | | } |
| | | |
| | | private void clearSummaryInfo() { |
| | | VideoStateSummaryModule.clearVideoStateSummary(chnComboBox.getSelectedIndex()); |
| | | } |
| | | |
| | | /* |
| | | * 二级面板:预览面板 |
| | | */ |
| | | private class RealPanel extends JPanel { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public RealPanel() { |
| | | BorderEx.set(this, Res.string().getRealplay(), 2); |
| | | Dimension dim = this.getPreferredSize(); |
| | | dim.width = 420; |
| | | this.setPreferredSize(dim); |
| | | this.setLayout(new BorderLayout()); |
| | | |
| | | realPlayPanel = new JPanel(); |
| | | add(realPlayPanel, BorderLayout.CENTER); |
| | | |
| | | /************ 预览面板 **************/ |
| | | realPlayPanel.setLayout(new BorderLayout()); |
| | | realPlayPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); |
| | | realPlayWindow = new Panel(); |
| | | realPlayWindow.setBackground(Color.GRAY); |
| | | realPlayWindow.setSize(480, 480); |
| | | realPlayPanel.add(realPlayWindow, BorderLayout.CENTER); |
| | | } |
| | | } |
| | | |
| | | // 预览 |
| | | public static void realPlay() { |
| | | if (!b_RealPlay) { |
| | | m_hPlayHandle = RealPlayModule.startRealPlay( |
| | | chnComboBox.getSelectedIndex(), |
| | | streamComboBox.getSelectedIndex() == 0 ? 0 : 3, |
| | | realPlayWindow); |
| | | |
| | | if (m_hPlayHandle.longValue() != 0) { // 正常状态下句柄不为空 |
| | | TargetRecognitionModule.renderPrivateData(m_hPlayHandle, 1); // 开启规则框 |
| | | realPlayWindow.repaint(); |
| | | chnComboBox.setEnabled(false); |
| | | streamComboBox.setEnabled(false); |
| | | setRealPlayBtnTextEnable(); |
| | | } |
| | | } else { |
| | | stopRealPlay(); |
| | | } |
| | | } |
| | | |
| | | public static void stopRealPlay() { |
| | | RealPlayModule.stopRealPlay(m_hPlayHandle); // 为空则说明失败,退出拉流 |
| | | TargetRecognitionModule.renderPrivateData(m_hPlayHandle, 0); // 关闭规则框 |
| | | realPlayWindow.repaint(); |
| | | chnComboBox.setEnabled(true); |
| | | streamComboBox.setEnabled(true); |
| | | setRealPlayBtnTextDisable(); |
| | | } |
| | | |
| | | // 搜索数据列表 |
| | | public class GroupListPanel extends JPanel { |
| | | |
| | | private Object[][] statisticData = null; // 人脸库列表 |
| | | |
| | | private final String[] groupName = { |
| | | Res.string().getHumanNumberStatisticEventChannel(), |
| | | Res.string().getHumanNumberStatisticEventTime(), |
| | | Res.string().getHumanNumberStatisticEventHourIn(), |
| | | Res.string().getHumanNumberStatisticEventTodayIn(), |
| | | Res.string().getHumanNumberStatisticEventTotalIn(), |
| | | Res.string().getHumanNumberStatisticEventHourOut(), |
| | | Res.string().getHumanNumberStatisticEventTodayOut(), |
| | | Res.string().getHumanNumberStatisticEventTotalOut() |
| | | }; |
| | | private DefaultTableModel groupInfoModel; |
| | | |
| | | public GroupListPanel() { |
| | | BorderEx.set(this, Res.string().getHumanNumberStatisticEventTitle(), 2); |
| | | setLayout(new BorderLayout()); |
| | | |
| | | statisticData = new Object[32][9]; |
| | | creatGroupInfoPanel(32); |
| | | } |
| | | |
| | | private void creatGroupInfoPanel(int listSize) { |
| | | statisticData = new Object[listSize][9]; // 人脸库列表集合修改 |
| | | groupInfoModel = new DefaultTableModel(statisticData, groupName); |
| | | groupInfoTable = new JTable(groupInfoModel) { |
| | | @Override // 不可编辑 |
| | | public boolean isCellEditable(int row, int column) { |
| | | return false; |
| | | } |
| | | }; |
| | | |
| | | groupInfoTable.getColumnModel().getColumn(0).setPreferredWidth(10); |
| | | groupInfoTable.getColumnModel().getColumn(1).setPreferredWidth(80); |
| | | groupInfoTable.getColumnModel().getColumn(2).setPreferredWidth(10); |
| | | groupInfoTable.getColumnModel().getColumn(3).setPreferredWidth(10); |
| | | groupInfoTable.getColumnModel().getColumn(4).setPreferredWidth(10); |
| | | groupInfoTable.getColumnModel().getColumn(5).setPreferredWidth(10); |
| | | groupInfoTable.getColumnModel().getColumn(6).setPreferredWidth(10); |
| | | groupInfoTable.getColumnModel().getColumn(7).setPreferredWidth(10); |
| | | |
| | | groupInfoTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // 只能选中一行 |
| | | |
| | | // 列表显示居中 |
| | | DefaultTableCellRenderer dCellRenderer = new DefaultTableCellRenderer(); |
| | | dCellRenderer.setHorizontalAlignment(JLabel.CENTER); |
| | | groupInfoTable.setDefaultRenderer(Object.class, dCellRenderer); |
| | | |
| | | scrollPane = new JScrollPane(groupInfoTable); |
| | | this.add(scrollPane, BorderLayout.CENTER); |
| | | } |
| | | } |
| | | |
| | | // 人数统计回调事件 |
| | | public static fHumanNumberStatisticCallBack humanNumberStatisticCB = fHumanNumberStatisticCallBack.getInstance(); |
| | | |
| | | public static class fHumanNumberStatisticCallBack implements NetSDKLib.fVideoStatSumCallBack { |
| | | |
| | | private static fHumanNumberStatisticCallBack instance = new fHumanNumberStatisticCallBack(); |
| | | |
| | | public static fHumanNumberStatisticCallBack getInstance() { |
| | | return instance; |
| | | } |
| | | |
| | | private EventTaskCommonQueue eventTaskQueue = new EventTaskCommonQueue(); |
| | | |
| | | public fHumanNumberStatisticCallBack() { |
| | | eventTaskQueue.init(); |
| | | } |
| | | |
| | | public void invoke(NetSDKLib.LLong lAttachHandle, NetSDKLib.NET_VIDEOSTAT_SUMMARY stVideoState, int dwBufLen, Pointer dwUser) { |
| | | |
| | | SummaryInfo summaryInfo = new SummaryInfo( |
| | | stVideoState.nChannelID, stVideoState.stuTime.toStringTime(), |
| | | stVideoState.stuEnteredSubtotal.nToday, |
| | | stVideoState.stuEnteredSubtotal.nHour, |
| | | stVideoState.stuEnteredSubtotal.nTotal, |
| | | stVideoState.stuExitedSubtotal.nToday, |
| | | stVideoState.stuExitedSubtotal.nHour, |
| | | stVideoState.stuExitedSubtotal.nTotal); |
| | | System.out.printf("Channel[%d] GetTime[%s]\n" + |
| | | "People In Information[Total[%d] Hour[%d] Today[%d]]\n" + |
| | | "People Out Information[Total[%d] Hour[%d] Today[%d]]\n", |
| | | summaryInfo.nChannelID, summaryInfo.eventTime, |
| | | summaryInfo.enteredTotal, summaryInfo.enteredHour, summaryInfo.enteredToday, |
| | | summaryInfo.exitedTotal, summaryInfo.exitedHour, summaryInfo.exitedToday); |
| | | eventTaskQueue.addEvent(new EventDisplay(summaryInfo)); |
| | | } |
| | | } |
| | | |
| | | private static class SummaryInfo { |
| | | |
| | | public int nChannelID; |
| | | public String eventTime; |
| | | public int enteredToday; |
| | | public int enteredHour; |
| | | public int enteredTotal; |
| | | public int exitedToday; |
| | | public int exitedHour; |
| | | public int exitedTotal; |
| | | |
| | | public SummaryInfo() { |
| | | } |
| | | |
| | | public SummaryInfo(int nChannelID, String eventTime, |
| | | int enteredToday, int enteredHour, |
| | | int enteredTotal, int exitedToday, |
| | | int exitedHour, int exitedTotal) { |
| | | this.nChannelID = nChannelID; |
| | | this.eventTime = eventTime; |
| | | this.enteredToday = enteredToday; |
| | | this.enteredHour = enteredHour; |
| | | this.enteredTotal = enteredTotal; |
| | | this.exitedToday = exitedToday; |
| | | this.exitedHour = exitedHour; |
| | | this.exitedTotal = exitedTotal; |
| | | } |
| | | |
| | | } |
| | | |
| | | private static class EventDisplay implements EventTaskHandler { |
| | | |
| | | private static List<SummaryInfo> dataList = new LinkedList<SummaryInfo>(); |
| | | |
| | | private int getMaxSize() { |
| | | int channelNum = LoginModule.m_stDeviceInfo.byChanNum; |
| | | return Math.max(channelNum, 32); |
| | | } |
| | | |
| | | private static final Object lockObj = new Object(); |
| | | |
| | | private final SummaryInfo summaryInfo; |
| | | |
| | | public EventDisplay(SummaryInfo Info) { |
| | | this.summaryInfo = Info; |
| | | } |
| | | |
| | | @Override |
| | | public void eventTaskProcess() { |
| | | InsertOrUpdateEventInfo(summaryInfo); |
| | | } |
| | | |
| | | private void InsertOrUpdateEventInfo(SummaryInfo summaryInfo) { |
| | | |
| | | synchronized (lockObj) { |
| | | dataList.add(summaryInfo.nChannelID, summaryInfo); |
| | | dataList.remove(summaryInfo.nChannelID + 1); |
| | | if (dataList.size() > getMaxSize()) { |
| | | dataList.remove(getMaxSize()); |
| | | } |
| | | setEventInfo(groupInfoTable, dataList); |
| | | } |
| | | } |
| | | |
| | | private static void setEventInfo(JTable groupInfoTable, List<SummaryInfo> dataList) { |
| | | clearTableModel(groupInfoTable); |
| | | |
| | | for (int i = 0; i < dataList.size(); i++) { |
| | | groupInfoTable.setValueAt(dataList.get(i).nChannelID + 1, i, 0); |
| | | groupInfoTable.setValueAt(dataList.get(i).eventTime, i, 1); |
| | | groupInfoTable.setValueAt(dataList.get(i).enteredHour, i, 2); |
| | | groupInfoTable.setValueAt(dataList.get(i).enteredToday, i, 3); |
| | | groupInfoTable.setValueAt(dataList.get(i).enteredTotal, i, 4); |
| | | groupInfoTable.setValueAt(dataList.get(i).exitedHour, i, 5); |
| | | groupInfoTable.setValueAt(dataList.get(i).exitedToday, i, 6); |
| | | groupInfoTable.setValueAt(dataList.get(i).exitedTotal, i, 7); |
| | | } |
| | | |
| | | } |
| | | |
| | | // 清空 DefaultTableModel |
| | | public static void clearTableModel(JTable jTableModel) { |
| | | int rowCount = jTableModel.getRowCount(); |
| | | int columnCount = jTableModel.getColumnCount(); |
| | | //清空DefaultTableModel中的内容 |
| | | for (int i = 0; i < rowCount; i++)//表格中的行数 |
| | | { |
| | | for (int j = 0; j < columnCount; j++) {//表格中的列数 |
| | | jTableModel.setValueAt(" ", i, j);//逐个清空 |
| | | } |
| | | } |
| | | } |
| | | |
| | | private static void clearEventInfoList() { |
| | | synchronized (lockObj) { |
| | | dataList.clear(); |
| | | setEventInfo(groupInfoTable, dataList); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | /////////////////////////////// 界面控件定义 //////////////////////////////// |
| | | //////////////////////////////////////////////////////////////////////////// |
| | | |
| | | /********************************************************************** |
| | | * 主界面窗口(mainFrame): mainFrame |
| | | * 1) 登录(login): loginPanel |
| | | * 2) 人数事件统计(humanStatistic): humanStatisticPanel |
| | | * (1) 控制面板(HumanStatisticAttach): HumanStatisticControlPanel |
| | | * (2) 预览(realPlay): realPanel |
| | | * (3) 事件信息展示面板(eventInfo): groupListPanel |
| | | **********************************************************************/ |
| | | |
| | | ///////////////////// 主面板 ///////////////////// |
| | | |
| | | private static JFrame mainFrame = new JFrame(); |
| | | |
| | | ///////////////////// 一级面板 ///////////////////// |
| | | |
| | | /* 登录面板 */ |
| | | private LoginPanel loginPanel; |
| | | |
| | | /* 人数统计面板 */ |
| | | private HumanStatisticPanel humanStatisticPanel; |
| | | |
| | | ///////////////////// 二级面板 ///////////////////// |
| | | |
| | | /* 人数统计面板 */ |
| | | private HumanStatisticControlPanel humanStatisticAttachPanel; |
| | | private Panel controlPanel; |
| | | private JLabel chnLabel; |
| | | private static JComboBox chnComboBox; |
| | | private JLabel streamLabel; |
| | | private static JComboBox streamComboBox; |
| | | private static JButton realPlayBtn; |
| | | private static JButton attachBtn; |
| | | private static JButton clearBtn; |
| | | |
| | | /* 实时预览面板 */ |
| | | private RealPanel realPanel; |
| | | private JPanel realPlayPanel; |
| | | private static Panel realPlayWindow; |
| | | |
| | | |
| | | /* 事件数据展示面板 */ |
| | | private static JTable groupInfoTable; |
| | | private GroupListPanel groupListPanel; |
| | | private JScrollPane scrollPane; |
| | | } |
| | | |
| | | public class HumanNumberStatistic { |
| | | public static void main(String[] args) { |
| | | SwingUtilities.invokeLater(new Runnable() { |
| | | public void run() { |
| | | HumanNumberStatisticFrame demo = new HumanNumberStatisticFrame(); |
| | | demo.setVisible(true); |
| | | } |
| | | }); |
| | | } |
| | | } |
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/Main.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/PTZControl.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/RealPlay.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/RealplayEx.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/Talk.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/TargetRecognition/AddPersonDialog.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/TargetRecognition/DispositionOperateDialog.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/TargetRecognition/DownloadPictureDialog.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/TargetRecognition/FindFaceEventRecordDialog.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/TargetRecognition/GroupOperateDialog.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/TargetRecognition/LatticeScreen.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/TargetRecognition/ModifyPersonDialog.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/TargetRecognition/NewLatticeScreen.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/TargetRecognition/PersonOperateDialog.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/TargetRecognition/SearchByPicDialog.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/TargetRecognition/TargetRecognition.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/ThermalCamera/HeatMapDialog.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/ThermalCamera/ItemQueryDialog.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/ThermalCamera/PointQueryDialog.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/ThermalCamera/TemperQueryDialog.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/ThermalCamera/ThermalCamera.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/TrafficAllowList.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/TrafficEvent.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/scada/SCADAAlarmAttachInfoCallBack.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/scada/SCADAAttachModule.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/scada/SCADADemo.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/vto/CollectionFingerPrint.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/vto/DefaultDisConnect.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/vto/DefaultHaveReconnect.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/vto/OperateInfo.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/vto/OperateManager.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/vto/VTOAnalyzerCallBack.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/vto/VTODemo.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/frame/vto/VTOMessageCallBack.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/module/AlarmListenModule.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/module/AttendanceModule.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/module/AutoRegisterModule.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/module/CapturePictureModule.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/module/DeviceControlModule.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/module/DeviceInitModule.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/module/DeviceSearchModule.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/module/DotmatrixScreenModule.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/module/DownLoadRecordModule.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/module/GateModule.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/module/LoginModule.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/module/PtzControlModule.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/module/RealPlayModule.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/module/SearchByPictureModule.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/module/TalkModule.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/module/TargetRecognitionModule.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/module/ThermalCameraModule.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/module/TrafficEventModule.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/demo/module/VideoStateSummaryModule.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/DynamicParseUtil.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/ImageAlgLib.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/LastError.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/LibraryLoad.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/NativeString.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/NetSDKLib.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/ToolKits.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/Utils.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/callback/fRedirectServerCallBackEx.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/callback/fVideoStatHeatMapCallBack.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/callback/securityCheck/fNotifyPopulationStatisticsInfo.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/callback/securityCheck/fSecurityGateAttachAlarmStatistics.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/callback/securityCheck/fXRayAttachPackageStatistics.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/constant/SDKStructureFieldLenth.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/constant/SDK_ALARM_Ex_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/CAPTURE_SIZE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/CFG_ACCESS_PROPERTY_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/CFG_DEFOG_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/CFG_EM_ASG_VOICE_DIRECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/CFG_EM_BODY_TRAIT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/CFG_EM_FACEDETECT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/CFG_EM_FACE_SNAP_POLICY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/CFG_EM_FACE_TRAIT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/CFG_EM_INSTANCE_SUBCLASS_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/CFG_EM_PREVIEW_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/CFG_EM_STREAM_TYPES.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/CFG_EM_VOICE_ID.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/CFG_LIGHT_INTENSITY_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/CFG_PTZ_FUNC_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/CFG_VIDEO_COMPRESSION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/DH_LOG_QUERY_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EMDeviceType.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ABNORMAL_OBJECT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ABSTRACT_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ACCESSORY_ALARM_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ACCESSORY_INPUT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ACCESSORY_SENSITIVITY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ACCESSORY_VOLUME.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ACCESS_SENSOR_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ACROSS_PARKING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ACTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_AC_UNLOCK_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_AGE_GROUP_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_AIRBORNE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ALARMOUT_POLE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_ONECLICKARMING_FUNCTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_ONECLICKARMING_TRIGGEROPTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_USERAUTHORITY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_USER_GROUP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ALGORITHM_PARTITION_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ALGORITHM_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ALLOW_PERMIT_FLAG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ANALYSE_TASK_ERROR.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ANALYSE_TASK_START_RULE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ANGLE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ANTI_MISPRESS_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_AREAALARM_TRIGGER_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_AREAARM_TRIGGERMODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_AREAARM_USER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ARMING_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ARM_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ARM_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ASG_WORK_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ASSOCIATED_RECORD_SOURCE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ATTACH_TOPICS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_AUDIO_DATA_SOURCE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_AUDIO_DATA_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_AUDIO_SOURCE_FLAG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_AUTO_PROTECT_WEEK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_BACKLIGHT_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_ERROR_CODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_FORMAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_SOURCE_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_SOURCE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_TARGET_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_TARGET_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_BAG_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_BATTERY_EXIST_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_BATTERY_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_BATTERY_TEMPER_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_BEARD_STATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_BIND_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_BOAT_DIRECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_BREED_DETECT_CATEGORY_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_BROADCAST_TEXT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_BUTTON_ALARM_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_BYPASSMODE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CALIBRATEAREA_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CALIBRATEINFO_OPERATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CALLLIFT_ACTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CALLLIFT_CMD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CALL_ACTION_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CAMERA_CONNECT_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CAMERA_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CAN_START_STREAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CAPTURE_PROCESS_END_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CAP_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CARD_PROVINCE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CAR_COLOR_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CAR_DRIVING_DIRECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CAR_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CATEGORY_NONMOTOR_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CB_STATES.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_3GFLUXTACTIC.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_APN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_AUTHMODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_CAP_CMD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_CHEF_CLOTHES_COLORS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_CROSSREGION_ALARMTYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_DAY3GFLUXACTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_DAY3GFLUXTACTIC.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_DEFENCEAREATYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_EAP_AUTH_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_EAP_METHOD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_LC_LIGHT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_LC_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_NAS_CLOUDPROTOCOL_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_NAS_DIRECTORY_CACHE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_NAS_DIRECTORY_PROTOCAL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_OBJECT_FILTER_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_RULE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_WIRELESS_AUTHENTICATION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_WIRELESS_DATA_ENCRYPT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CFG_WORKMODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CHANNELS_STATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CHANNEL_PROTOCOL_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CHANNEL_WIDTH.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CITIZENIDCARD_SEX_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CITYMOTOR_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CLASS_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CLOTHES_COLOR.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CLOTHES_LEGAL_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CLOTHES_PATTERN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CLOTHES_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_COAT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CODEID_SENSE_METHOD_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_COLLECTIVITY_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_COLLISION_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_COMMON_SEAT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_COMM_ATTACHMENT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_COMPARE_RESULT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_COMPLIANCE_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_COMPLIANTDETAIL_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_COMPOSIT_CHANNEL_BIND_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CONSUMPTION_EVENT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CONSUMPTION_RECORD_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CONSUMPTION_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CONTROL_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_COORDINATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_COUNTDOWN_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_COURSECOMPOSITE_OPERATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_COURSERECORD_OPERATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_COURSE_LOCK_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_COURSE_RECORD_COMPRESSION_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_COURSE_RECORD_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_COURSE_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_COVER_PLATE_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CROWD_LEVEL_DETECTION_TRIGGERMODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CTRL_ENABLE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CTRL_SCHEME.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CURRENT_OPERATE_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CURRENT_STATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOMER_DEV_SETTING_DOOR_METHOD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOM_DEV_PROTOCOL_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOM_EDUCATION_VOICE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOM_MEDICAL_VOICE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOM_PASSWORD_ENCRYPTION_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOM_SNAP_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DATA_SOURCE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DATE_SOURCE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DEFENCE_AREA_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DELETE_BY_SOURCEUID_ERRCODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DELIVERY_FILE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DETECTION_SCENE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DETECTOR_STATUS_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DETECT_OBJECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DETECT_OBJECT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DETECT_SENSOR_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DEVICE_ATTRIBUTE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DEV_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DIALDETECT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DIAL_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DIRECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DIRECTION_ACCURATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DIRECTION_AFTER_POWER_OFF.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DISK_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DISPLAY_CAMERA_ANGLE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DOOR_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DOWNLOAD_DATA_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DOWNLOAD_FILE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DOWNLOAD_TIME_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DRIVING_DIRECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_DYNAMIC_LOCK_ERRORCODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_EMERGENCYSTATUS_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_EMOTION_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ENCLOSURE_ALARM_TYPE_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ENCLOSURE_TYPE_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ENTRY_DIRECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ENTRY_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_DETECT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_IVS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_IVS_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_LEVEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_ORDER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_TYPE_DESCEIBEINFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_WORKCLOTHES_RULE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_EXPOWER_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_EXTERNAL_WIFI_PRIORITY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_EYE_STATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_FACE_APPEND_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_FACE_CHECK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_FACE_TRAIT_ALIVE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_FACE_TRAIT_EMOTION_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_FEATURE_ERROR_CODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_FEATURE_LIST_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_FEATURE_VERSION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_FILE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_FILE_UPDATE_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_FILTER_IMAGE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_FIREPROOF_CLOTHES_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_FIRE_EXTINGUISHER_CATEGORY_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_FIRE_LANE_MOVE_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_FIRE_LANE_OILCAP_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_FOCUS_LIMIT_SELECT_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_FOLLOW_CAR_ALARM_IMAGE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_FORBID_PARKING_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_FREQUENCY_ALARM_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_GATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_GATHER_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_GETUSERINFOBYCONDITION_USER_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_GETUSERINFOBYCONDITION_USER_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_GLASSES_RULE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_GLASS_STATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_GLOBAL_LANES_LINE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_GRANULARITY_STARTFIND_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_GREENCNHEALTH_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_GROUP_COLOR_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_GROUP_GRADE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_GUIDESCREEN_POS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_GUIDESCREEN_ROLL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_H264_PROFILE_RANK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_HAIR_STYLE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_HAS_BABYCARRIAGE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_HAS_BADGE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_HAS_BAG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_HAS_DOWNBODY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_HAS_GLASS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_HAS_HAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_HAS_HEAD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_HAS_HOLD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_HAS_RAINCOAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_HAS_UMBRELLA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_HAS_VEST.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_HAT_STYLE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_HEALTH_CODE_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_HEATMAP_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_HELMET_EVENT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_HUMAN_ANIMAL_ALARM_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_HUMAN_POSTURE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_IDCARD_MSG_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_IMAGE_LIGHT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_IMAGE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_IMAGE_TYPE_EX2.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_INFRARED_FUNC_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_INFRARED_LIGHT_LEVEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_INSIDE_OBJECT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_INSTRUMENT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_INSULATOR_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_INTENSITY_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_IPC_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_IS_CURRENT_VK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_IS_ENCRYPT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_IS_ERRORDETECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_IS_RECORD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_LAMP_COLOR.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_LAMP_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_LANE_RUNING_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_LC_CONFIG_VERSION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_LC_LIGHT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_LC_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_LC_SUPPORT_EVENTS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_LEAVEDETECTION_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_LEAVEDETECTION_TRIGGER_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_LED_BRIGHTNESS_LEVEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_LIFT_CALLER_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_LIGHTGROUP_FAULT_LEVEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_LINE_COLOR_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_MAIN_PAGE_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_MASK_DETECT_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_MASK_STATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_MASK_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_MIX_SNAP_SPEED_SOURCE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_MOBILE_ENFORCE_FILE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_MOBILE_ENFORCE_FORMAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_MOBILE_ENFORCE_UPLOAD_FLAG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_MOSAIC_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_MOUTH_STATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_MSGROUP_OPERATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_MSG_OBJ_PERSON_DIRECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_MULTIFACE_DETECT_ERRCODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NAS_STATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NEEDED_PIC_RETURN_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NET_CONSUMPTION_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NET_ECK_PANEL_COLOR.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NET_ECK_PANEL_DIRECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NET_ECK_PANEL_ICON.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NET_ECK_PANEL_ISBOLD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NET_ECK_PANEL_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NET_PLATE_COLOR_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NET_PLATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NET_QUERY_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NET_SERVER_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NET_TRAFFIC_CAR_CONTROL_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NET_VIFORMAT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NET_WIEGAND_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NET_WIEGAND_OUT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NET_WIEGAND_TRANSFER_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NEW_CONFIG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NEW_QUERY_SYSTEM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NONMOTOR_OBJECT_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NON_ALLOW_LIST_CAR.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NON_NEW_ENERGY_CAR.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NTP_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_NUMBER_STAT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_OBJECT_ABNORMAL_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_OBJECT_BASKET_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_OBJECT_COLOR_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_OBJECT_NONMOTORANGLE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_OBJECT_STORAGEBOX_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ONLINE_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_OPEN_STROBE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_OPERATE_FACERECONGNITIONDB_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_OPERATE_USERINFO_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_OPERATION_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_OUTPUT_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_OUTPUT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_OVERSEA_VEHICLE_CATEGORY_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PARKINGSPACE_DIRECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PARKINGSPACE_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PARKING_SPACE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PARKING_TRIGGER_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PARTITION_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PASSERBY_DB_DUPLICATE_REMOVE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PASSERBY_DB_OVERWRITE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PASS_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PERSON_FEATURE_ERRCODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PIC_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PLATE_ATTRIBUTE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PLATE_COLOR_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PLATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PLAYAUDIO_PRIORITY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PLAY_WITH_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_POWER_REGULATION_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PREALARM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PRESSING_PLATE_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PRIVACY_MASKING_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PRIVACY_MASKING_VERSION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PRIVACY_MASK_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PROCESS_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PROPERTIES_VALUE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PTZ_FUNCTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PTZ_MOVING_RESULT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PTZ_TASK_NAME.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_PTZ_UNSUPPORT_DIRECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_QRCODE_IS_EXPIRED.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_QRCODE_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_QUERY_TEMPERATURE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_ALARM_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_DETECTION_VEHICLE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_DETECT_OBJECT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_GETCAPS_AREASUB_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_GETCAPS_RADAR_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_OBJECTTYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_OPERATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_POINTTYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RAID_ERROR.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RAID_ERR_SUBDISK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RAIN_SHED_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_REAL_DATA_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_REASON_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RECORD_BACKUP_FAIL_REASON.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RECORD_BACKUP_FIND_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RECORD_SNAP_FLAG_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RECORD_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RELAY_STATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RELAY_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RESPIRATOR_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ROAD_LEVEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RPC_NETAPP_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_RULE_TYPE_ACCURATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SAVE_COLLECTION_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SCENE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SCREEN_TEXT_COLOR.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SCREEN_TEXT_ROLL_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SCREEN_TEXT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SDK_LOG_QUERY_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SD_ENCRYPT_FLAG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SD_LOCK_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_ALARM_LEVEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_ALARM_POSITION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_EXPRESSION_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_GLASSES_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_PERSON_PASS_DIRECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_SEX_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SEND_SEARCH_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SENSE_METHOD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SERVER_OPTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SEX_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SHAPE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SHOES_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SHOW_COLOR.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SIGNLIGHT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SMALL_OCCUPY_LARGE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SMARTHOME_SCENE_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SMART_KITCHEN_CLOTHES_COLOUR.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SMART_KITCHEN_CLOTHES_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SMELLY_LEVEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SMOKE_COLOR.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SNAPCATEGORY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SNAP_POLICY_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SOLARCELL_SYSTEM_FAULT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SOURCE_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SOURCE_VIDEO_LOCATION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SPACE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_STANDARD_VEHICLE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_STARTFIND_DIRECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_STARTUP_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_STATEMANAGER_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_STATISTICS_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_STAT_DIRECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_STAT_GRANULARITY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_STEREO_ACTION_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_STORAGEPOINT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_STORAGE_DEVICE_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_STORAGE_DISK_POWERMODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_STORAGE_DISK_PREDISKCHECK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_STORAGE_HEALTH_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_STORAGE_PACKET_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_STRABISMUS_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SUBCLASSID_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SUBLINK_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SUBLINK_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SUBLINK_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORTED_COLOR_LIST_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORTFINGERPRINT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_CLOSE_UP_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_FAST_CHECK_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_FAST_IMPORT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_FOCUS_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_HELMET_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_LIFT_CONTROL_TYPES.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_LOCALDATA_STORE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_SEARCH_BY_PIC.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TALK_AUDIO_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TAMPERALTERSTATUS_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TANK_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TEMPERATUREEX_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TEMPERATURE_UNIT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TEMPERATURE_UNIT_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TEMP_MEASURE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TEST_ITEMS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_THERMAL_IMAGE_CALIBRATION_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_ACTION_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_CONDITION_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_CONNECT_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_CURRENTSTATUSGET_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_RULECONTENT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_SERVICE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_TRIGGER_TIMER_CORN_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_TRIGGER_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TITLE_TEXT_ALIGNTYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TOLLS_VEHICLE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRACK_OBJECT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFICCAR_CAR_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFICCAR_LANE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFICCAR_MOVE_DIRECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFICSTROBE_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_EVENT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_FLOW_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_LIGHT_DETECT_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_DEVICE_WORK_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_RADAR_DETECT_CAR_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_STROBE_RUN_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRANSMIT_PROXY_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRANSMIT_PROXY_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRAVELCODE_COLOR_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRAVEL_CODE_COLOR.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRFAFFIC_LIGHT_SOURCE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRFAFFIC_LIGHT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRIGGER_OCCUR_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TRIGGER_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_TROUSERS_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_UNIFIED_COLOR_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_UNIFORM_STYLE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_UPDATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_UPLOAD_FLAG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_UPPER_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_USERMANAGER_IMAGE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_USER_PASS_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_USE_PROPERTY_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_VAULT_DOORSTATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_VAULT_LOCKSTATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLEINOUT_CAR_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_DRIVING_DIRECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_HEAD_DIRECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_POSITION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_POSTURE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_REG_DB_OPERATOR_ERRCODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_TYPE_SPLIT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_VIDEODIAGNOSIS_TASK_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_VIDEOINPUTS_SERVICE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_VIDEOIN_BACKLIGHT_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_VIDEO_ABNORMAL_DETECT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_VIDEO_FILE_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_VIDEO_STREAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_VIDEO_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_VIRTUAL_COIL_OCCUPANCY_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_VOLTAGE_STATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_VSP_GAVI_PLATFORM_CODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_WATERDATA_STAT_SERVER_SUPPORT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_WATER_DETECTION_ALARM_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_WATER_QUALITY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_WEARING_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_WEB_TUNNEL_PROTOCOL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_WIRELESS_DEVICE_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_WLAN_SCAN_AND_CONFIG_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_WORKACTION_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_WORKCLOTHES_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_WORKPANTS_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_WORKSTATDETECTION_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_WORKSUIT_ABSTRACT_ERRCODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_WORKSUIT_APPEND_ERRCODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_WORKSUIT_GROUP_POLICY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_WORKSUIT_GROUP_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_WORK_HELMET_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_DETECTION_JUDGE_REMOTELY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_IMAGE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_PACKAGE_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_RELATED_IMAGE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/EM_ZONE_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/ENUMERROR.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/ENUM_IN_REGION_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/ENUM_MOTION_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/ENUM_RECORDBACKUP_FILE_PROGRESS_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/ENUM_RECORDBACKUP_FILE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/ENUM_VAGEOBJECT_ACTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/GetDevCaps_Type.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/LastErrorNew.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_ACCESS_ERRORCODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_CODEID_ERROR_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_COURSECOMPOSITE_MODE_OPERATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_2DCODE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_ATTITUDE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_CFG_OPERATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_ETH_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_FAILCODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_FIREWARNING_MODE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_FLOW_ATTRIBUTE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_FORMAT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_GET_ALARMREGION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_IMAGE_QUALITY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_INTELLIPARKING_DATA_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_LATTICE_SCREEN_BACKGROUND_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_LATTICE_SCREEN_CONTROL_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_LATTICE_SCREEN_LOGO_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_LATTICE_SCREEN_SHOW_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_LIGHTING_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_LOGIC_CHANNEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_AREATYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_COLORTYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_DISPLAYTYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_ELEM_NAMETYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_FONTCOLOR.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_FONTSIZE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_SHOWMODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_TRANSMODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_MASK_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_MOSAIC_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_OFFLINE_CALL_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_OVER_FLOW_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_POWER_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_RADAR_RFIDCARD_ACTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_RECORD_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_SCENEDETECTION_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_SCENE_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_SCREEN_SHOW_CONTENTS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_SDK_LOCAL_CFG_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_SET_ALARMREGION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_SHAPE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_SIM_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_STAFF_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_TAMPER_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_VIDEO_COMPRESSION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_VS_DATA_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EM_VS_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_ENUM_INPUT_CHANNEL_MEDIA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EVENT_DEVICE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EVENT_OPERATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_EVENT_USER_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_FLOWSTAT_DIRECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_MONITORWALL_OPERATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_NOTIFY_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_RADIOMETRY_ALARMCONTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_RADIOMETRY_RESULT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_SENSE_METHOD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_SPLIT_OPERATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_THREE_STATUS_BOOL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_TRAFFIC_JAM_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_TRAFFIC_LIGHT_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_TRAFFIC_ROAD_RANK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_VOLUME_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_WIRELESSDEV_LOWPOWER_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/NET_WIRELESS_DEVICE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/REC_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/SNAP_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/STREAM_RATE_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/enumeration/TALK_CODING_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_AREAALARM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_AREAARM_MODECHANGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_AUDIO_ANOMALY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_BETWEENRULE_DIFFTEMPER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_CITIZEN_PICTURE_COMPARE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_COLDSPOT_WARNING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_ENCLOSURE_INFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_EVENT_LEFT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_FACE_FEATURE_ABSTRACT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_FAN_SPEED.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_FIRE_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_GYROABNORMALATTITUDE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_HEATIMG_TEMPER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_HOTSPOT_WARNING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_HUMIDITY_ALARM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_IP_CONFLICT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_KEYPAD_LOCK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_KEYPAD_TAMPER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_LOGIN_FAILIUR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_MAN_NUM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_MOVE_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_NO_DISK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_RADAR_REGIONDETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_RAID_INFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_REGION_PARKING_NO_ENTRY_RECORD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_REGION_PARKING_TIMEOUT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_RTSC_LAMP_RUNNING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_RTSC_PHASE_RUNNING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_RTSC_RUNNING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_RTSC_TRAFFIC_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_SOLARCELL_SYSTEM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_STORAGE_IPC_FAILURE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_STORAGE_LOW_SPACE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_TAKENAWAY_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_TALKING_HANGUP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFICSTROBESTATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_FLOW_JUNTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_FLOW_QUEUE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_FLOW_STAT_EX_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_FLOW_STAT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_FLOW_VEHICLE_STOP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_LIGHT_STATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_VEHICLE_POSITION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_USERLOCK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_USER_LOCK_EVENT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_VEHICLE_INOUT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_WANDERDETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_WIRELESSDEV_LOWPOWER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_WIRELESSDEV_POWERLESS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ALARM_WORKSUIT_FEATURE_ABSTRACT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ANATOMY_TEMP_DETECT_PERSON_FILTER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ARM_FAILED_DETAIL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ARM_FAILED_DETAIL_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/AV_CFG_MONITOR_WALL_OUT_MODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/Auxs.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/BODY_TRAIT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/BYTE_18.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/BYTE_2048.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/BYTE_256.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/BYTE_32.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/BYTE_40.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/BYTE_64.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/Byte64Arr.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ByteSize16.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CAR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_ABLOCK_DOOR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_ABLOCK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_ACCESS_CONTROL_ASG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_ACCESS_GENERAL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_ACCESS_VOICE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_ACCESS_VOICE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_ACCURATE_NUMBER_STAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_ACTIVITY_ANALYSE_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_ALARMIN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_ALARM_SENSE_METHOD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_ALARM_SUBSYSTEM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_ALARM_SUBSYSTEM_MSG_HANDLE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_ANATOMYTEMP_DETECT_SCENE_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_ANATOMYTEMP_VISUAL_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_AREA_MODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_AUDIO_SPIRIT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_AUDIO_SPIRIT_CHANNEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_AUDIO_SPIRIT_LINKAGE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_AUTO_HOMING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_AUTO_REMOTE_CHECK_INFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_CALIBRATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_CALIBRATE_UNIT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_CALIBRATE_UNIT_INFO_ARR.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_CAMERA_OCCLUSION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_CAP_ACCESSCONTROL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_CAP_ALARM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_CAP_ANALYSE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_CAP_ANALYSE_INFO_OPT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_CAP_ANALYSE_REQ_EXTEND_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_CAP_CELIBRATE_AREA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_CAP_SCENE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_CHANNEL_TIME_SECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_CHASSISINTRUSION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_CROSSLINE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_CROSSREGION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_DETAIL_DRIVEASSISTANT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_DETECT_REGION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_DETECT_REGIONS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_DEVLOCATION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_DISTRACT_DRIVING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_DRIVEING_CALLING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_DRIVER_NOBELT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_DRIVE_ACIONANAYLSE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_DRIVE_LEAVE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_DRIVE_SMOKING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_ENCODECAP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_EXITMAN_STAY_STAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_FATIGUE_DRIVING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_FIREWARNING_EXT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_GENEAL_ATTITUDE_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_GUIDESCREEN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_GUISCREEN_ARROW.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_HIGH_TOSS_DETECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_IDENTITY_ANOMALY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_INFRARED_BLOCKING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_INFRARED_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_INTELLI_SHELF_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_IVS_MAN_NUM_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_LIGHTING_V2_DAYNIGHT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_LIGHTING_V2_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_LIGHTING_V2_UNIT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_LINK_CLASS_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_LOCATION_CALIBRATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_LOCATION_CALIBRATE_POINT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_MANNUMDETECTION_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_MOTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_MOTION_WINDOW.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_NAS_GROUP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_NAS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_NAS_INFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_NAS_INFO_NEW.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_NETAPP_WLAN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_NETWORK_BOND_INTERFACE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_NETWORK_BR_INTERFACE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_NET_TIME.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_NET_TIME_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_NUMBERSTAT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_NUMBERSTAT_MULT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_NUMBERSTAT_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_NUMBER_STAT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PARKING_STATISTICS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PIG_STAY_STAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PORTRAIT_DETECTION_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PRIVACY_MASKING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PROFILE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PSTN_PERSON_SERVER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PSTN_PERSON_SERVER_INFO_ALL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PTZ_ABSOLUTELY_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PTZ_ACTION_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PTZ_ALL_AUTOMOVE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PTZ_AREA_SCAN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PTZ_AUTOMOVE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PTZ_CONTINUOUSLY_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PTZ_LIGHTING_CONTROL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PTZ_MEASURE_DISTANCE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PTZ_MOTION_RANGE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PTZ_MOVE_ABSOLUTELY_CAP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PTZ_MOVE_CONTINUOUSLY_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PTZ_PER_AUTOMOVE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PTZ_PRIVACY_MASKING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_PTZ_PROTOCOL_CAPS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_QUEUEDETECTION_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_RADIOMETRY_RULE_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_RAINBRUSH_TOUR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_RECORDTOSTORAGEPOINT_EX_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_RECORDTOSTORAGEPOINT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_REGULATOR_DETECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_RTSP_INFO_IN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_RTSP_INFO_OUT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_SCENE_MODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_SPACE_MODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_STEREO_BEHAVIOR_SCENE_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_STORAGEPOINT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_SUBSTITUTION_DRIVING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_SUPPORTED_COMP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_SUPPORTED_RULES_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_SUPPORT_SCHEDULE_REPORT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_THERMO_GAIN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_TRAFFIC_OVERSPEED_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_TRAFFIC_UNDERSPEED_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_VACAP_SUPPORTEDSCENES.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_VIDEOABNORMALDETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_VIDEOINDEFOG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_VIDEOINDEFOG_LIST.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_VIDEOIN_BACKLIGHT_BASE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_VIDEOIN_BACKLIGHT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_VIDEOSATA_SUMMARY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_VIDEO_ALGORITHMTYPE_ALGORITHM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_VIDEO_ALGORITHMTYPE_DETECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_VIDEO_AVAILABILITY_DETECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_VIDEO_ENCODECAP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_VIDEO_FILCKERING_DETECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_VIDEO_IN_FOCUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_VIDEO_IN_FOCUS_UNIT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_VIDEO_LOSS_FRAME_DETECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_VIDEO_SNOWFLAKE_DETECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_VOICE_PLAY_PLAN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_VSP_GAYS_ALARM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_VSP_GAYS_CHANNEL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_VSP_GAYS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_WIRELESS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_WLAN_EAP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_WLAN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CFG_WLAN_NETWORK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CGF_MASKING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CROWD_CALIBRATION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CTRL_ARM_DISARM_PARAM_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CTRL_ARM_DISARM_PARAM_EX_IN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CTRL_ARM_DISARM_PARAM_EX_OUT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CTRL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CUR_STEP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/CUSTOM_PERSON_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_ACCESS_CTL_IMAGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_ALRAM_SCENECHANGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_DAHUA_RADAR_CONFIG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_ENCODER_CFG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_ENCODER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_ABNORMALRUNDETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_ALARM_ANALOGALRM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_ANIMAL_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_ANYTHING_DETECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_BARELAND_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_BREAK_RULE_BUILDIING_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_BREED_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_CAR_DRIVING_IN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_CAR_DRIVING_IN_OUT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_CAR_DRIVING_OUT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_CONSUMPTION_EVENT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_CROSSLINE_INFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_CROWD_LEVEL_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_DENSITYDETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_DIALRECOGNITION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_DISTANCE_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_DREGS_UNCOVERED_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_ELECTRICFAULTDETECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_FACEBODY_ANALYSE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_FACEBODY_DETECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_FACERECOGNITION_INFO_V1.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_FIRE_EXTINGUISHER_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_FIRE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_FIRE_LANE_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_FIRE_LINE_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_FISHING_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_FOLLOW_CAR_ALARM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_GENEAL_ATTITUDE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_HEAT_IMAGING_TEMPER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_HELMET_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_HOTSPOT_WARNING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_HUDDLE_MATERIAL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_HUMAN_ANIMAL_COEXISTENCE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_INTELLI_SHELF_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_NONMOTOR_ENTRYING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_NUMBERSTAT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_OBJECT_ABNORMAL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_OBJECT_NUM_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_OBJECT_PLACEMENT_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_OBJECT_REMOVAL_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_OPEN_INTELLI_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_OUTDOOR_ADVERTISEMENT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_PARKINGSPACE_MANUALSNAP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_PARKING_LOT_STATUS_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_PLAY_MOBILEPHONE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_PRESERVATION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_QSYTRAFFICCARWEIGHT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_RADAR_REGION_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_RIDING_MOTOR_CYCLE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_ROAD_CONDITIONS_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_SECURITYGATE_PERSONALARM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_SEWAGE_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_SHOP_SIGN_ABNORMAL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_SHOP_WINDOW_POST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_SLEEP_DETECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_SMARTMOTION_HUMAN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_SMARTMOTION_VEHICLE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_SMOKE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_SNAPBYTIME.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_STREET_SUNCURE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFICACCIDENT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFICTRUCKFORBID_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_CARDISTANCESHORT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_CAR_MEASUREMENT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_CHANGE_LANE_CONTINUES_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_DRIVER_ABNORMAL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_ELETAGINFO_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_NONMOTORINMOTORROUTE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_NONMOTOR_HOLDUMBRELLA_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_NONMOTOR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_NONMOTOR_OVERLOAD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_NONMOTOR_RUN_REDLIGHT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_NONMOTOR_WITHOUTSAFEHAT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_NON_MOTOR_RETROGRADE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_OVERTAKE_ONRIGHT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_PARKINGSPACEOVERLINE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_PARKING_BACKING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_PARKING_STATISTICS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_PEDESTRAINRUNREDLIGHT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_QUEUEJUMP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_REAREND_ACCIDENT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_ROAD_ALERT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_ROAD_BLOCK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_ROAD_CONSTRUCTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_SERPENTINE_CHANGE_LANE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_SPECIAL_VEHICLE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_SPEED_DROP_SHARPLY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_THROW_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_TRUCK_OCCUPIED_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_VEHICLE_BC.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_VEHICLE_CLEANLINESS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_VEHICLE_IN_EMERGENCY_LANE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_VISIBILITY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRASH_WITHOUT_COVER_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRUCKNOTCLEAN_FOR_PRMA_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TUMBLE_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_VEHICLE_DISTANCE_NEAR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_VIDEO_NORMAL_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_WATERCOLOR_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_WORKCLOTHES_DETECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_WORKSTATDETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_XRAY_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_EVENT_XRAY_UNPACKING_CHECK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_RADAR_CONFIG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DEV_SCADA_DATA_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DHDEVTIME.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DHDEV_DEVICE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DHDEV_SMART_HARDDISK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DHDEV_SMART_VALUE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DH_DEVICE_LOG_ITEM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DH_DEVICE_LOG_ITEM_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DH_IN_SPLIT_GET_RECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DH_IN_SPLIT_SET_RECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DH_IN_SPLIT_SET_TOP_WINDOW.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DH_LOG_ITEM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DH_OUT_PTZ_VIEW_RANGE_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DH_OUT_SPLIT_GET_RECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DH_OUT_SPLIT_SET_RECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DH_OUT_SPLIT_SET_TOP_WINDOW.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DH_POINT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DH_POLY_POINTS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DH_RECT_REGION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DH_SIG_CARWAY_INFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DH_TRAFFICFLOWSTAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DH_TRAFFICFLOWSTAT_OUT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DH_WND_ZORDER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DISKCTRL_PARAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/DREGS_UNCOVERED_VEHICLE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ENTER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ENTER_LANE_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ENTER_STATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ENTER_TRAFFIC_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/EVENT_MANUALSNAP_PARKING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/EVENT_PLATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/EVENT_SNAPBYTIME_DATA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/EVENT_VEHICLE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/EmptyStructure.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/FACEBODY_ANALYSE_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/FACEBODY_DETECT_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/FACERECOGNITION_PERSON_INFOEX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/FACE_FEATURE_ABSTRACT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/FACE_TRAIT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/FIND_RECORD_ACCESS_CTL_CONSUMPTION_INFO_CONDITION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/GLOBAL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/HUMAN_ATTRIBUTES_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/HUMAN_ATTRIBUTES_INFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/IDENTITY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/LAMP_GROUP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/LAMP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/LAMP_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/LANE_CTRL_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/LANE_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/LANE_STATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/LANE_STATE_INFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/LAN_TRAFFIC_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/LIGHT_COLOR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/LPNET_RECORDFILE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/MANUAL_SNAP_PARAMETER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/MEDIAFILE_ANATOMY_TEMP_DETECT_CANDIDATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/MEDIAFILE_ANATOMY_TEMP_DETECT_FACEDETECT_RESULT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/MEDIAFILE_ANATOMY_TEMP_DETECT_FACERECOGNITION_RESULT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/MEDIAFILE_ANATOMY_TEMP_DETECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/MEDIAFILE_ANATOMY_TEMP_DETECT_PARAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/MEDIAFILE_FIRE_CONTROL_MONITOR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/MEDIAFILE_FIRE_CONTROL_MONITOR_PARAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/MEDIAFILE_MOBILE_ENFORCE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/MEDIAFILE_MOBILE_ENFORCE_PARAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/MEDIAFILE_SMART_KITCHEN_CLOTHES_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/MEDIAFILE_SMART_KITCHEN_CLOTHES_DETECTION_PARAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/MONITORWALL_COLLECTION_SCHEDULE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/MaxNameByteArrInfo.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/MaxSceneSupTypeByteArrInfo.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NAS_DIRECTORY_CFG_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NETDEV_NETINTERFACE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NETDEV_VIRTUALCAMERA_STATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_3DFLOAT_POINT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_3DFLOAT_POSTURE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_3DFLOAT_SIZE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ACCESSCTL_SPECIALDAY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ACCESS_CARD_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ACCESS_FACE_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ACCESS_FINGERPRINT_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ACCESS_IRIS_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ACCESS_USER_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ACCESS_USER_INFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ACCESS_USER_INFO_EX2.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_AC_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_AIRBORNE_DETECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_ARC_OFFLINE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_ARMING_FAILURE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_ATS_FAULT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_CHANNEL_COUNT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_DEVICE_MODIFIED_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_DYNAMIC_LOCK_UPLOAD_RANDOMCODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_DYNAMIC_PWDLOCK_CLOSE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_INTELLI_MODULE_HIGH_TEMP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_INTELLI_MODULE_OFFLINE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_IN_CHANNEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_MANUAL_TEST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_MINIINDOOR_RADAR_ALARM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_OVER_TEMPERATURE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_REID_CLUSTER_STATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_RF_JAMMING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_USER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_USER_EXTERN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_USER_MODIFIED_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_USER_ONECLICKARMING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_USER_PASS_CONFIRM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALARM_WIFI_FAILURE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALGORITHM_BUILD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALGORITHM_DEV_STORAGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALGORITHM_SDK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALGORITHM_SVN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ALGORITHM_UPGRADE_AI_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ANALYSE_TASK_GLOBAL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ANALYSE_TASK_GLOBAL_CALIBRATEAREA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ANALYSE_TASK_GLOBAL_LANES.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ANALYSE_TASK_MODULE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ANATOMY_TEMP_DETECT_ANATOMYTEMPDETECT_RESULT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ANATOMY_TEMP_DETECT_FILTER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ANIMAL_OBJECTS_STATISTICS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ANIMAL_OBJECT_LIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ANIMAL_SCENE_IMAGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ANTIGEN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ANTI_SUBMARINE_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_APRON_ATTRIBUTE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_AREAS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_AREA_ABNORMAL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_AREA_MODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ARMMODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ARM_DETAIL_OPTIONS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ARM_MODE_ZONE_ABNORMAL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ARM_OPTIONS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ATTACH_HYGROTHERMOGRAPH_FILTER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ATTRIBUTE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_AUDIOOUT_VOLUME_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_AUDIO_DATA_CB_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_AUDIO_DECODE_FORMAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_AUDIO_OUTPUT_CHANNEL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_BACKUP_SOURCE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_BACKUP_STATES_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_BACKUP_TARGET.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_BAND_SPEED_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_BARRIERS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_BARRIER_LIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_BAR_CODE_IMAGE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_BAR_CODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_BATTERY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_BLACK_WHITE_DETECTIONRESULT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_BOAT_OBJECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_BOAT_TYPE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_BOOT_ATTRIBUTE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_BREATHING_MASK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_BROADCAST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_BURN_PARAM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CALIBRATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CALIBRATE_UNIT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CAMERA_CFG_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CAMERA_PTZ_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CANDIDATE_INFOEX2.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CARDNOARRAY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CAR_WEIGHT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CASEABNORMAL_OUTV_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CASEABNORMAL_STATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CASEABNORMAL_SWITCHWARN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CASERUNNING_AIRSWITCH_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CASERUNNING_COMM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CASERUNNING_OUTV_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CASERUNNING_STATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CASERUNNING_TF_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CB_BACKUPTASK_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CB_CAMERASTATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CB_CROWD_DISTRI_STREAM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CB_CUSTOM_SNAP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CB_MULTIFACE_DETECT_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CB_MULTIFACE_DETECT_STATE_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CB_REDIRECT_SERVER_CALLBACK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CB_STATES.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CB_THINGS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CB_THINGS_PROPER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CB_TRANSMIT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CB_VEHICLES_DISTRIBUTION_DATA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CB_VIDEOSTAT_HEATMAP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CB_VIDEOSTAT_STREAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_ACCESSCONTROL_MEASURE_TEMP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_ACCESSCTL_SPECIALDAYS_SCHEDULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_ACCESSCTL_SPECIALDAY_GROUP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_AC_GZYD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_AREA_ARM_MODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_AUDIO_PLAY_PATH.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_AUDIO_PROPERTY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_AUTO_PAN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_BGY_CUSTOMERCFG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_BSCCUSTOM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_CALIBRATEBOX_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_CAP_ACCESSCONTROL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_CAP_AUDIO_FORMAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_CAP_SPEAK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_CARD_MNG_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_CONSUMPTION_STRATEGY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_CONTROL_CASE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_COURSE_RECORD_DEFAULT_CONFIG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_CUSTOMER_DEV_SETTING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_DISABLE_BEEP_LINKAGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_DISABLE_LINKAGE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_DISABLE_LINKAGE_TIME_SECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_ENVIRONMENT_THERM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_FILE_HOLD_DAYS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_FINANCIAL_CABINET_CONFIG_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_FORBIDDEN_ADVERT_PLAY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_FORBIDDEN_ADVERT_PLAY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_HEALTH_CODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_LAMP_EXTERNAL_DEVICE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_MINIRADAR_AFBSTATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_MINIRADAR_BREATHE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_MINIRADAR_COMP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_MINIRADAR_DECT_PARAM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_MINIRADAR_FALLALARM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_MINIRADAR_HEATERATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_MINIRADAR_INDOOR_ALARM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_MINIRADAR_INSTALL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_MINIRADAR_NUMALARM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_MINIRADAR_REGION_DETECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_MINIRADAR_RESIDENTALARM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_NAS_DIRECTORY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_OBJECT_FILTER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_PTZ_MOVEMENT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_QR_CODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_RADAR_DEVLIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_RADAR_RFIDCARD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_RADAR_SCREEN_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_REMOTE_DISABLE_LINKAGE_TIME_SECTION_SYNC_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_RTSC_SCH_CHANNELS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_RTSC_SCH_CROSSLIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_RTSC_SCH_MANAGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_RTSC_SCH_NIGHTASK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_RTSC_SCH_OPTIMIZES_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_RTSC_SCH_OVERFLOW_CONTROL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_RTSC_SCH_PEDDESTRAIN_PRIORITY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_RTSC_SCH_PEDDETECTOR_LIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_RTSC_SCH_PLANS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_RTSC_SCH_VARLANELIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_RTSC_SCH_VARLANE_MANAGEMENT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_RTSC_SCH_VEHICLE_DETECTORLIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_RTSC_TEMP_SCH_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_SIZE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_SIZEFILTER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_SIZE_WIDE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_THERMOMETRY_SHIELD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_TIME_RECORDBACKUP_RESTORE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_TRAFFIC_LAMP_CONFIG_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_VIDEOTALK_SIGNLIGHT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_VIOLATIONTYPE_NORMAL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_VSP_GAVI_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_VSP_GAYS_SERVER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_VSP_LXSJ_ELEMENT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_VSP_LXSJ_LEDCONFIG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_VSP_LXSJ_NOPLATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_VSP_LXSJ_PARKING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_VSP_LXSJ_VIOLATIONTYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CFG_WIEGAND_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CHANNELS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CHANNELS_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CHANNELS_STATE_CONDITION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CHANNEL_CFG_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CHANNEL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CHANNEL_STATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CHANNEL_STATE_INFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CIGARETTE_CASE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CLASSIFY_RESULT_STATISTICS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CLOSURE_SETTING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CLUSTER_DETAIL_CONDITION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CLUSTER_DETAIL_FIND_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COLOR_MASKING_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COLOR_RGBA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COMMON_CONFIG_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COMMON_DATE_PLAN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COMM_PROP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COMPLIANT_BOAT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COMPLIANT_FORMAT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COMPLIANT_HUMAN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COMPLIANT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COMPLIANT_NONMOTOR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COMPLIANT_VEHICLE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COMPOSE_CHANNEL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COMPOSE_PLAN_DETAIL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COMPOSE_PLAN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COMPOSITECHANNELMODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COMPOSITECHANNELMODE_WINDOWS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COMPOSITECHANNEL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CONFIG_OPENSSL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CONFIG_STREAMCONVERTOR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CONTROL_CASE_OUTV_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CONTROL_CASE_ZIGBEE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CORRECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COUNT_DETAIL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COURSE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COURSECOMPOSITE_CHANNEL_MODE_ADD_RESULT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COURSEMEDIA_FILE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COURSE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COURSE_RESULT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_COVER_PLATE_DETECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CPU_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CPU_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CROSSREGION_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CROSS_LIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CROWD_STAT_DATA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CTRL_ACCESS_CALL_LIFT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CTRL_ECK_GUIDINGPANEL_CONTENT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CTRL_LOWRATEWPAN_ADD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CTRL_LOWRATEWPAN_REMOVE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CTRL_LOWRATEWPAN_REMOVEALL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CTRL_SET_BYPASS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CUSTOM_DEV_VIDEO_INPUTS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CUSTOM_MEASURE_TEMPER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CUSTOM_PROJECTS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CYCLE_PLAN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_CYCLE_SETTINGS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DAY_ACTIONS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DAY_ACTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DAY_PLANS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DAY_PLAN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DELETE_VEHICLE_CONDITION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DETAIL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DETECTOR_CONFIG_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DETECTOR_SETTING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DETECT_BIG_PIC_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DETECT_BIG_PIC_INFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEVICE_CHANNEL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEVICE_FAULT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEVICE_STORAGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEVLOCATION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEVSTATUS_NET_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEVSTATUS_POWER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEVSTATUS_SIM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_ACTION_COUNT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_ANTI_COUNTERFEIT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_CIGARETTE_CASE_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_COLLISION_CONFLICT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_CROSSLINE_STAT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_DROP_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_GARBAGE_PLASTICBAG_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_GRANARY_TRANS_ACTION_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_HUMIDITY_ALARM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_ILLEGAL_CARRIAGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_OBJECT_APPEAR_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_OBJECT_DISAPPEAR_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_OBJECT_STATE_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_POSITION_SNAP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_REGIONNUM_STAT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_REGION_PROPORTION_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_REMOTE_APPROVAL_ALARM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_SAME_OBJECT_SEARCH_COUNT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_SAME_OBJECT_SEARCH_DETECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_TEMPERATURE_ALARM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_TRAFFIC_ACCELERATION_RAPID_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_TRAFFIC_TURN_SHARP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_USERMANAGER_FOR_TWSDK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_WADING_DETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_IO_STAT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DEV_NETWORK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DIAGNOSIS_DRAMATIC_DETECTIONRESULT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DIAL_DETECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DISPLAY_OPTIONS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DOOR_DETECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DOWNLOADFILE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DOWNLOADFILE_OPTIONS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DOWNLOAD_CONDITION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DVR_VIDEOITEM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DVR_VIDEOOSD_CFG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_DVR_VIDEO_WIDGET.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ECK_PANEL_CONTENT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_EM_CFG_USER_PASS_DATA_COUNT_CLEAR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ENCODE_AUDIO_COMPRESSION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ENCODE_AUDIO_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ENCODE_VIDEO_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_EPIDEMIC_AREA_EXPERIENCE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_EVENT_AREAR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_EVENT_GPS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_EVENT_HANDLER_VOICE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_EVENT_IMAGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_EVENT_IMAGE_OFFSET_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_EVENT_INFO_EXTEND.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_EVENT_RADAR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_EVENT_TRAFFIC_OCCUPYING_THEPATH_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_EXAM_RECORDING_PLAN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_EXTRA_PLATES.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FACEBOXCOLOR_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FACECOMPARISON_PTZ_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FACEDETECT_IMAGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FACERECOGNITION_PERSON_INFOEX2.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FACE_FEATURE_VECTOR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FACE_ORIGINAL_SIZE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FACE_PIC_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FAN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FAN_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FFCPERIOD_RANGE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FILCKER_LIGHTING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FILE_PROCESS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FINANCIAL_CABINET_AUTOARM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FINANCIAL_CABINET_MESSAGE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FINANCIAL_CABINET_VAULTDOOR.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FINANCIAL_CABINET_WORKTIME.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FINANCIAL_CABIN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FIND_VEHICLE_CONDITION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FINGERPRINT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FIREPROOF_CLOTHES.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FIRE_CONTROL_MONITOR_FILTER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FIRE_DETECTION_POSITION_PARAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FIRE_DETECTION_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FIRE_EXTINGUISHER_CATEGORY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FIRE_EXTINGUISHER_OBJECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FIRING_GPS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FLOORS_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FLOORS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FOG_DETECTION_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FOLLOW_CAR_ALARM_CUSTOM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FOLLOW_CAR_ALARM_IMAGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_FUEL_DISPENSER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_GETSUMMARY_CROWD_LIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_GETSUMMARY_CROWD_STAT_DATA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_GETSUMMARY_REGION_LIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_GETSUMMARY_REGION_PEOPLE_LIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_GET_ACCESSORY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_GET_CALIBRATEINFO_CALCINFO_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_GET_CALIBRATEINFO_POINT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_GET_CONDITION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_GET_DEVICE_INFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_GLASSES_RELATED_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_GLOVE_ATTRIBUTE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_GPS_INFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_GPS_POSITION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_GPS_STATUS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_GUIDE_MODULE_MEASURE_MODE_PARAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HEALTH_CODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HISTORY_NON_MOTOR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HISTORY_TRAFFIC_CAR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HKIMAGESERVER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HSJC_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_AGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_ANGLE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_BEARD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_COAT_COLOR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_COAT_TYPE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_EMOTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_FEATURE_VECTOR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_GLASSES_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HAIR_STYLE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HAS_BAG_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HAS_HAT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HAS_UMBRELLA_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HELMET_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HOLD_BABY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_MASK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_RAIN_COAT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_SEX_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_TEMPERATURE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_TROUSERS_COLOR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_TROUSERS_TYPE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HUMAN_VEST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_HYGROTHERMOGRAPH_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IDCARD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IMAGE_COMPARE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IMAGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IMAGE_INFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IMAGE_INFO_EX2.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IMAGE_INFO_EX3.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IMAGE_RELATION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IMAGE_RELATION_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IMAGE_RELATION_EX_IMAGEINFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IMAGE_RELATION_LIST.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_INFRARED_MEASURE_MODE_PARAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_INSIDE_OBJECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_INSIDE_SUB_TOTAL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_INSULATOR_DETECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_INTELLIPARKING_OPENAREA_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_INTELLIPARKING_PLANAREA_IDINFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_INTELLIPARKING_PLANAREA_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_INTELLI_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_INTER_LOCK_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ACCESSCONTROL_CAPTURE_CMD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ACCESSCONTROL_CAPTURE_NEWCARD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_AC_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ADAPTIVE_DOWNLOAD_BY_TIME.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_ALARM_USER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_COURSE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_REC_BAK_RST_REMOTE_TASK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_SOFT_TOUR_POINT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ASYNC_ADD_CUSTOM_DEVICE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_BACKUP_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_CROWDDISTRI_MAP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_CUSTOM_SNAP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_GATE_POPULATION_STATISTICS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_GYRO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_HYGROTHERMOGRAPH.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_LOWRATEWPAN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_RADAR_RFIDCARD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_SCADA_DATA_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_TRAFFICLIGHT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_TRAFFIC_FLOW_STAT_REAL_FLOW.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_TRANSMIT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_VEHICLES_DISTRIBUTION_DATA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_VIDEOSTAT_HEATMAP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_VIDEOSTAT_STREAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_VIDEO_ANALYSE_ANALYSE_PROC.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_VIDEO_ANALYSE_TRACK_PROC.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_VIDEO_STATISTICS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_AUDIO_DECODE_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_CAMERASTATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_CLEAR_PRIVACY_MASKING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_COURSECOMPOSITE_CHANNEL_MODE_ADD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_COURSECOMPOSITE_CHANNEL_MODE_DELETE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_COURSECOMPOSITE_CHANNEL_MODE_GET.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_COURSECOMPOSITE_CHANNEL_MODE_MODIFY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_COURSECOMPOSITE_GET_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_COURSECOMPOSITE_GET_LOCKINFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_COURSECOMPOSITE_LOCK_CONTROL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_COURSECOMPOSITE_SET_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_COURSECOMPOSITE_UPDATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_COURSERECORD_GETINFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_COURSERECORD_GET_TIME.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_COURSERECORD_SETINFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_COURSERECORD_UPDATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_CREATE_GROUP_FOR_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_CREATE_TRANSMIT_TUNNEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_CREATE_WORKSUIT_COMPARE_GROUP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_CREAT_SUB_BUSINESS_MDL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_CTRL_LOWRATEWPAN_ACCESSORY_PARAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DELETE_ALARM_USER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DELETE_CALIBRATEINFO_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DELETE_COURSE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DELETE_GROUP_FROM_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DELETE_PRIVACY_MASKING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DELETE_VEHICLE_FROM_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DELETE_WORKSUIT_BY_SOURCEUID.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DELETE_WORKSUIT_COMPARE_GROUP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DELIVER_USER_PICTURE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DEL_BY_CONDITION_FROM_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DETACH_TRANSMIT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DEV_IO_STATS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DOFIND_FACERECONGNITION_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DOWNLOAD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DOWNLOAD_BYFILE_SELFADAPT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DOWNLOAD_MULTI_FILE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DOWNLOAD_PIECE_FILE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_DETAIL_CLUSTER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_TALK_DEV.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_WATERDATA_STAT_SERVER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_ENCODE_CFG_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_FACERECOGNITIONSERVER_CAPSBILITYQUERY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_FACERSERVER_GETDETEVTTOKEN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_FACE_RECOGNITION_DETECT_MULTI_FACE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_GROUP_FROM_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_REC_BAK_RST_TASK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_WORKSUIT_COMPARE_GROUP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GETALL_CALIBRATEINFO_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GETCOUNT_LOG_PARAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GETFACEEIGEN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GETSUMMARY_CROWDDISTRI_MAP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_ALARMMODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_BIND_MODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_BYPASSMODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CABINET_STATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CALIBRATEINFO_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CAMERA_CFG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CAMERA_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CHANNELS_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CHANNEL_CFG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CHANNEL_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CLUSTER_STATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_COURSE_LOGIC_CHANNEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_COURSE_RECORD_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CUSTOMINFO_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEFAULT_REAL_CHANNEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEVICESERIALNO_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEVICETYPE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEVICE_AII_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEVICE_ETH_BAND_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEVICE_INFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEV_STORAGE_SMART_VALUE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DYNAMIC_LOCK_RANDOM_PUBLICKEY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_ELEVATOR_WORK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_FILE_INFO_BY_PATH_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_FINANCIAL_CABIN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_GLOBAL_PARAMETER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_GPS_STATUS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_HEATMAPS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_INPUT_CHANNEL_MEDIA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_LASER_DISTANCE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_OUTPUT_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_POPULATION_STATISTICS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PRIVACY_MASKING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PRIVACY_MASKING_ENABLE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PTZ_WASH_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_REAL_PREVIEW_CHANNEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_RECORD_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_RUNNING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_RUNNING_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_SMOKE_DATA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_STATEMANAGER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_TEMPERATUREEX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_VAULTDOOR_STATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_VIDEOSTAT_HEATMAP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_VTO_MANAGER_RELATION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_XRAY_MULTILEVEL_DETECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GET_ZONE_ARMODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_GOTO_PRIVACY_MASKING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_INSERT_MULTI_TALK_DEV.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_IVSEVENT_FIND_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_IVSEVENT_NEXTFIND_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_LIGHTINGCONTROL_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MAKE_TOKEN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MANUAL_TEST.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MINI_RADAR_ALARMPOINTINFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_ALARM_USER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_ALARM_USER_PASSWORD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_COURSE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_GROUP_FOR_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_PARKINGRECORD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_VEHICLE_FOR_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_GET_COLL_SCHD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_GET_ENABLE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_SET_COLL_SCHD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_SET_ENABLE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MOVE_DIRECTLY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_CLOSE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_LOCATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_OPEN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_RECTLOCATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_TRACK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MULTIFACE_DETECT_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MULTI_APPEND_TO_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_MULTI_APPEND_TO_WORKSUIT_GROUP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_NAS_DIRECTORY_GET_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_GET_MOBILE_INTERFACE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_LINK_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_NET_DATA_STAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_PACKAGE_STATISTICS_BYGRADE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_PACKAGE_STATISTICS_BYTYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_PERSON_INFO_INPUT_RESULT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_PRE_UPLOAD_REMOTE_FILE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_PTZBASE_GET_CENTER_GPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_PTZBASE_GET_HFOV_VALUE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_PTZBASE_GET_VFOV_VALUE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_PTZBASE_MOVEABSOLUTELY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_PTZBASE_SET_FOCUS_MAP_VALUE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_PTZ_CURRENT_FOV_VALUE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_PTZ_SET_ZOOM_VALUE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_PTZ_STATUS_PROC.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_PUSH_ANALYSE_PICTURE_FILE_BYRULE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_QUERYNEXTLOG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSEMEDIA_FILE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSEMEDIA_FILECLOSE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSEMEDIA_FILEOPEN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSE_CLOSE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSE_OPEN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_ALARMPOINTINFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_CALCULATEREALSIZE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_GETCAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_GETSTATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_GET_RFID_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_MANUAL_TRACK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_SETCALIBRATION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_SET_RFID_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_STARTUPGRADE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_REMOTE_SLEEP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_REMOVE_SOFT_TOUR_POINT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SCADA_GET_ATTRIBUTE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SCENICSPOT_GETCAPS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SCENICSPOT_GETPOINTINFOS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SCENICSPOT_SETPOINTINFO_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SCENICSPOT_TURNTOPOINT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SECURITYGATE_ATTACH_ALARM_STATISTICS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_2DCODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_ALARMMODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_BACKUP_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_BIND_MODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_BLIND_REAL_CHANNEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_BYPASSMODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_CALIBRATEINFO_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_CAMERA_CFG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_CHANNEL_CFG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_CONSUME_RESULT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_COURSE_RECORD_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_COURSE_RECORD_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_DYNAMIC_LOCK_COMMUNICATIONKEY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_DYNAMIC_LOCK_OPENKEY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_DYNAMIC_LOCK_OPEN_CODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_DYNAMIC_LOCK_TEMP_USERID_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_EXAM_RECORDING_PLANS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_GLOBAL_PARAMETER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_IVSEVENT_PARSE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_OUTPUT_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_PARKINGRULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_PARKINGSPACE_STATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_PARK_CONTROL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_POLLING_CONFIG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_PRIVACY_MASKING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_PRIVACY_MASKING_ENABLE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_PTZ_WASH_POSISTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_RUNNING_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_STATEMANAGER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_TRANSMITTUNNEL_PARAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_VTO_MANAGER_RELATION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_XRAY_MULTILEVEL_DETECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SET_ZONE_ARMODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SMOKE_REMOTE_REBOOT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SNAP_BY_EVENT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SPLIT_GET_OSD_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SPLIT_SET_HIGHLIGHT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_SPLIT_SET_OSD_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_STARTMULTIFIND_FACERECONGNITION_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_STARTSERACH_DEVICE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_START_BACKUP_TASK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_START_BACKUP_TASK_SESSION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_START_FIND_DETAIL_CLUSTER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_START_FIND_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_START_FIND_WATERDATA_STAT_SERVER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_START_QUERYLOG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_START_REDIRECT_SERVICE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_START_SUBLINK_LISTEN_SERVER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_START_TALK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_STOP_FIND_DETAIL_CLUSTER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_STOP_FIND_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_STOP_FIND_WATERDATA_STAT_SERVER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_STORAGE_DEV_INFOS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_TALK_SEND_DATA_FILE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_TALK_SEND_DATA_STREAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_ATTACH.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_DOFIND_HISTORYDATA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_GET.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_GET_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_GET_DEVLIST.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_GET_NETSTATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_SERVICE_ADDDEVICE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_SERVICE_ADDRULE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_SERVICE_AIRSWITHFIND.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_SERVICE_AIRSWITHRESET.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_SERVICE_CHARGECLEAR.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_SERVICE_CURRENTSTATUSGET.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_SERVICE_DELDEVICE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_SERVICE_DELRULE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_SERVICE_DEVREPLACE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_SERVICE_ENABLE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_SERVICE_LEAKCURTPOST.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_SERVICE_LEAKCURTPOSTASYNC.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_SERVICE_MODRULE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_SERVICE_OFFLINELOGCLEAN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_SERVICE_QUERULE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_SERVICE_VALVECONTROL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_SET.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_THINGS_START_HISTORYDATA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_TRAFFICDOFINDSTAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_TRAFFICSTARTFINDSTAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_TRAFFIC_RADAR_GET_OBJECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_TRAFFIC_SNAP_RADAR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_TRAFFIC_SNAP_STROBE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_TRANSFER_SUBLINK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_TRANSMIT_CMD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_UNIFIEDINFOCOLLECT_GET_DEVSTATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_UPDATE_MULTI_TALK_DEV.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_UPLOAD_UPPACKING_CHECK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_VIDEOIN_DAYNIGHT_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_VIDEO_ENCODE_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_VIEW_RANGE_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_WATERDATA_STAT_SERVER_GETCAPS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_WATERDATA_STAT_SERVER_GETDATA_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_WLAN_ACCESSPOINT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_XRAY_ATTACH_PACKAGE_STATISTICS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IN_XRAY_PACKAGE_STATISTICS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ISCSI_TARGET.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IVSEVENT_EVENT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IVS_DIALRECOGNITION_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_IVS_ELECTRICFAULT_DETECT_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_KEEP_LIGHTING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LAMP_EXTERNAL_DEVICE_ALARM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LAMP_EXTERNAL_DEVICE_CAMERA_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LAMP_EXTERNAL_DEVICE_ENVIRONMENT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LAMP_EXTERNAL_DEVICE_LIGHT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LAMP_EXTERNAL_DEVICE_SCREEN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LAMP_EXTERNAL_DEVICE_SPEAKER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LAMP_EXTERNAL_DEVICE_WIFIAP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LANE_LIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LANE_PLAN_LIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LEAKAGE_DETECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LEFTDETECTION_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LIGHTINFO_CFG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LIGHTPERIODS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LIGHT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LIGHT_TYPE_COMPLEX_DETAIL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LINKING_ABILITY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LINKING_DETAIL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LINK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LOCAL_SERVER_NET_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LOCATED_AREAS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LOCATION_CALIBRATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LOCATION_CALIBRATE_POINT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LOGIC_CHANNEL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LOG_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LOG_MESSAGE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_LOOPPLAYBACK_AUDIOALARM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MANUALSNAP_PARKINGSPACE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MASK_ATTRIBUTE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MATCH_TWO_FACE_IN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MATCH_TWO_FACE_OUT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MEDIAFILE_EXAM_PARAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MEDIAFILE_GENERAL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MEDIA_QUERY_TRAFFICCAR_PARAM_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MEMBERS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MEMORY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MEMORY_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_METAL_CORROSION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MINI_RADAR_ALARMPOINT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MINI_RADAR_NOTIFY_ALARMPOINTINFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MODES_COMPLEX_LIGHT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MONITORWALL_COLLECTION_NAME.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MONITORWALL_ENABLE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MONITORWALL_NAME.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MONITOR_WALL_DEVICE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MONITOR_WALL_OUT_MODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MOSAIC_MASKING_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MOTIONDETECT_REGION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MSG_OBJECT_SUPPLEMENT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MULTI_APPEND_EXTENDED_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MULTI_LEVEL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MULTI_PLAYBACK_PARAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_MULTI_TIMESECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_NEST_DETECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_NETAPP_COMMUNICATION_LIST.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_NETAPP_COMMUNICATION_LIST_CFG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_NETAPP_RECEIVE_STAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_NETAPP_TRANSMIT_STAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_NIGHT_ASK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_NOHAT_ATTRIBUTE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_NONMOTOR_CATEGORY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_NONMOTOR_COLOR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_NONMOTOR_CYCLING_NUM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_NONMOTOR_STAY_STAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_NORMALHAT_ATTRIBUTE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_NOTIFY_GYRO_DATA_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_NOTIFY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_NOTIFY_SCADA_DATA_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OBJECT_IMAGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OBJECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OBJECT_RADAR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OPENDOOR_MATCHINFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OPEN_INTELLI_OBJECT_ATTRIBUTE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OPEN_INTELLI_OBJECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OPEN_INTELLI_USER_DATA_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OPTIMIZES_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OSD_CFG_COVERS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OSD_CFG_PTZ_COORDINATES.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OSD_CFG_PTZ_DIRECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OSD_CFG_PTZ_PATTERN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OSD_CFG_PTZ_PRESET.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OSD_CFG_PTZ_RS485_DETECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OSD_CFG_TEMPERATURE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OSD_PTZZOOM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OSD_USER_DEF_TITLE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ACCESSCONTROL_CAPTURE_CMD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ACCESSCONTROL_CAPTURE_NEWCARD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_AC_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ADAPTIVE_DOWNLOAD_BY_TIME.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ADD_ALARM_USER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ADD_COURSE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ADD_REC_BAK_RST_REMOTE_TASK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ADD_SOFT_TOUR_POINT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ASYNC_ADD_CUSTOM_DEVICE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_BACKUP_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_CROWDDISTRI_MAP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_CUSTOM_SNAP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_GATE_POPULATION_STATISTICS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_GYRO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_HYGROTHERMOGRAPH.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_LOWRATEWPAN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_RADAR_RFIDCARD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_SCADA_DATA_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_TRAFFICLIGHT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_TRAFFIC_FLOW_STAT_REAL_FLOW.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_TRANSMIT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VEHICLES_DISTRIBUTION_DATA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEOSTAT_HEATMAP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEOSTAT_STREAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEO_ANALYSE_ANALYSE_PROC.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEO_ANALYSE_TRACK_PROC.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEO_STATISTICS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_AUDIO_DECODE_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_CAMERASTATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_CLEAR_PRIVACY_MASKING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_ADD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_DELETE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_GET.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_MODIFY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_GET_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_GET_LOCKINFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_LOCK_CONTROL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_SET_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_UPDATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSERECORD_GETINFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSERECORD_GET_TIME.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSERECORD_SETINFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSERECORD_UPDATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_CREATE_GROUP_FOR_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_CREATE_TRANSMIT_TUNNEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_CREATE_WORKSUIT_COMPARE_GROUP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_CREAT_SUB_BUSINESS_MDL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_ALARM_USER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_CALIBRATEINFO_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_COURSE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_GROUP_FROM_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_PRIVACY_MASKING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_VEHICLE_FROM_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_WORKSUIT_BY_SOURCEUID.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_WORKSUIT_COMPARE_GROUP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DELIVER_USER_PICTURE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DEL_BY_CONDITION_FROM_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DETACH_TRANSMIT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DEV_IO_STATS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DOFIND_FACERECONGNITION_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DOWNLOAD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DOWNLOAD_BYFILE_SELFADAPT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DOWNLOAD_MULTI_FILE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DOWNLOAD_PIECE_FILE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DO_FIND_DETAIL_CLUSTER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DO_FIND_TALK_DEV.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DO_FIND_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_DO_FIND_WATERDATA_STAT_SERVER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_ENCODE_CFG_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_FACERECOGNITIONSERVER_CAPSBILITYQUERY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_FACERSERVER_GETDETEVTTOKEN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_FACE_RECOGNITION_DETECT_MULTI_FACE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_FIND_GROUP_FROM_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_FIND_REC_BAK_RST_TASK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_FIND_WORKSUIT_COMPARE_GROUP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GETALL_CALIBRATEINFO_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GETCOUNT_LOG_PARAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GETFACEEIGEN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GETSUMMARY_CROWDDISTRI_MAP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_ALARMMODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_BIND_MODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_BYPASSMODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_CABINET_STATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_CALIBRATEINFO_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_CAMERA_CFG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_CAMERA_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_CHANNELS_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_CHANNEL_CFG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_CHANNEL_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_CLUSTER_STATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_COURSE_LOGIC_CHANNEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_COURSE_RECORD_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_CUSTOMINFO_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_DEFAULT_REAL_CHANNEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_DEVICESERIALNO_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_DEVICETYPE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_DEVICE_AII_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_DEVICE_ETH_BAND_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_DEVICE_INFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_DEV_STORAGE_SMART_VALUE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_DYNAMIC_LOCK_RANDOM_PUBLICKEY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_ELEVATOR_WORK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_FILE_INFO_BY_PATH_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_FINANCIAL_CABIN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_GLOBAL_PARAMETER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_GPS_STATUS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_HEATMAPS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_INPUT_CHANNEL_MEDIA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_LASER_DISTANCE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_OUTPUT_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_POPULATION_STATISTICS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_PRIVACY_MASKING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_PRIVACY_MASKING_ENABLE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_PTZ_WASH_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_REAL_PREVIEW_CHANNEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_RECORD_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_RUNNING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_RUNNING_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_SMOKE_DATA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_STATEMANAGER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_TEMPERATUREEX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_VAULTDOOR_STATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_VIDEOSTAT_HEATMAP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_VTO_MANAGER_RELATION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_XRAY_MULTILEVEL_DETECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_ZONE_ARMODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_GOTO_PRIVACY_MASKING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_INSERT_MULTI_TALK_DEV.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_IVSEVENT_FIND_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_IVSEVENT_NEXTFIND_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_LIGHTINGCONTROL_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MAKE_TOKEN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MANUAL_TEST.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MINI_RADAR_ALARMPOINTINFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_ALARM_USER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_ALARM_USER_PASSWORD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_COURSE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_GROUP_FOR_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_PARKINGRECORD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_VEHICLE_FOR_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_GET_COLL_SCHD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_GET_ENABLE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_SET_COLL_SCHD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_SET_ENABLE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_CLOSE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_LOCATE_INTO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_OPEN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_RECTLOCATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_TRACK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MULTIFACE_DETECT_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MULTI_APPEND_TO_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_MULTI_APPEND_TO_WORKSUIT_GROUP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_NAS_DIRECTORY_GET_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_GET_MOBILE_INTERFACE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_LINK_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_NET_DATA_STAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_PERSON_INFO_INPUT_RESULT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_PRE_UPLOAD_REMOTE_FILE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZBASE_GET_CENTER_GPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZBASE_GET_HFOV_VALUE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZBASE_GET_VFOV_VALUE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZ_CURRENT_FOV_VALUE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZ_SET_ZOOM_VALUE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZ_STATUS_PROC.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZ_ZOOM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_PUSH_ANALYSE_PICTURE_FILE_BYRULE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERYNEXTLOG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSEMEDIA_FILE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSEMEDIA_FILECLOSE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSEMEDIA_FILEOPEN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSE_CLOSE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSE_OPEN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_ALARMPOINTINFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_CALCULATEREALSIZE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_GETCAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_GETSTATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_GET_RFID_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_MANUAL_TRACK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_SETCALIBRATION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_SET_RFID_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_STARTUPGRADE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_REMOTE_SLEEP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_REMOVE_SOFT_TOUR_POINT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SCADA_GET_ATTRIBUTE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SCENICSPOT_GETCAPS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SCENICSPOT_GETPOINTINFOS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SCENICSPOT_SETPOINTINFO_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SCENICSPOT_TURNTOPOINT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SECURITYGATE_ATTACH_ALARM_STATISTICS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_2DCODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_ALARMMODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_BACKUP_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_BIND_MODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_BLIND_REAL_CHANNEL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_BYPASSMODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_CALIBRATEINFO_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_CAMERA_CFG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_CHANNEL_CFG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_CONSUME_RESULT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_COURSE_RECORD_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_COURSE_RECORD_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_DYNAMIC_LOCK_COMMUNICATIONKEY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_DYNAMIC_LOCK_OPENKEY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_DYNAMIC_LOCK_OPEN_CODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_DYNAMIC_LOCK_TEMP_USERID_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_EXAM_RECORDING_PLANS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_GLOBAL_PARAMETER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_OUTPUT_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PARKINGRULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PARKINGSPACE_STATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PARK_CONTROL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_POLLING_CONFIG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PRIVACY_MASKING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PRIVACY_MASKING_ENABLE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PTZ_WASH_POSISTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_RUNNING_MODE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_STATEMANAGER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_TRANSMITTUNNEL_PARAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_VTO_MANAGER_RELATION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_XRAY_MULTILEVEL_DETECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_ZONE_ARMODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SMOKE_REMOTE_REBOOT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SNAP_BY_EVENT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SPLIT_GET_OSD_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SPLIT_SET_HIGHLIGHT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_SPLIT_SET_OSD_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_STARTMULTIFIND_FACERECONGNITION_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_STARTSERACH_DEVICE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_START_BACKUP_TASK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_START_BACKUP_TASK_SESSION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_DETAIL_CLUSTER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_WATERDATA_STAT_SERVER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_START_QUERYLOG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_START_SUBLINK_LISTEN_SERVER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_START_TALK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_FIND_DETAIL_CLUSTER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_FIND_VEHICLE_REG_DB.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_FIND_WATERDATA_STAT_SERVER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_STORAGE_DEV_INFOS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_TALK_SEND_DATA_FILE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_TALK_SEND_DATA_STREAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_ATTACH.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_DOFIND_HISTORYDATA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_GET.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_GET_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_GET_DEVLIST.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_GET_NETSTATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_ADDDEVICE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_ADDRULE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_AIRSWITHFIND.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_AIRSWITHRESET.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_CHARGECLEAR.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_CURRENTSTATUSGET.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_DELDEVICE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_DELRULE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_DEVREPLACE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_ENABLE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_LEAKCURTPOST.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_LEAKCURTPOSTASYNC.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_MODRULE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_OFFLINELOGCLEAN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_QUERULE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_VALVECONTROL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SET.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_START_HISTORYDATA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_TRAFFICDOFINDSTAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_TRAFFICSTARTFINDSTAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_TRAFFIC_RADAR_GET_OBJECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_TRAFFIC_SNAP_RADAR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_TRAFFIC_SNAP_STROBE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_TRANSFER_SUBLINK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_TRANSMIT_CMD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_UNIFIEDINFOCOLLECT_GET_DEVSTATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_UPDATE_MULTI_TALK_DEV.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_UPLOAD_UPPACKING_CHECK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_VIDEOIN_DAYNIGHT_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_VIDEO_ENCODE_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_VIEW_RANGE_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_WATERDATA_STAT_SERVER_GETCAPS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_WATERDATA_STAT_SERVER_GETDATA_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_WLAN_ACCESSPOINT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OUT_XRAY_ATTACH_PACKAGE_STATISTICS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OVER_FLOW_CONTROL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_OVER_LAPS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PACKAGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PARKINGDETECTION_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PARKINGRECORD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PASSED_SUBTOTAL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PASSERBY_DB_CONFIG_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PEDESTRAIN_PRIORITY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PED_DETECTOR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PEOPLE_REGION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PERSON_FEATURE_VALUE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PERSON_FREQUENCY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PHASES_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PHASE_CONFIG_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PHASE_CONFIG_NIGHT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PHASE_LIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PHASE_PRIORITY_CONFIG_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PHASE_PRIORITY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PHASE_SETTINGS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PIG_STAY_STAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PIG_TEMPERATURE_DATA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PIG_TEMPERATURE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_POINT_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_POINT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_POINT_PAIR_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_POPULATION_STATISTICS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_POSTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_POWER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_POWER_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PRESET_POSITION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PRESSING_PLATE_DETECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PREVENTION_OF_ARMING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PRIVACY_MASKING_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PRIVACY_MASKING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PROHELMET_ATTRIBUTE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PROJECT_TASK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PROPERTIES_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PROPERTIES_INTARRAY_VALUE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PROPERTIES_NAME.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PROPERTY_LIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PROPERTY_PLAN_LIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PROTECTIVE_SUIT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PTZ_MOVING_DETECTIONRESULT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PTZ_WASH_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PUSH_PICFILE_BYRULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_PUSH_PICTURE_BYRULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RADAR_ALARMPOINT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RADAR_CAPACITY_CAP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RADAR_CARSPEED_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RADAR_CHANNEL_CAP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RADAR_DETECT_OBJECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RADAR_DEVICE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RADAR_MOVEDDETECT_CAP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RADAR_NOTIFY_ALARMPOINTINFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RADAR_NOTIFY_RFIDCARD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RADAR_PIXELLINE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RADAR_PIXELPOINT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RADAR_PROTOCAL_CAP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RADAR_REGIONDETECTION_RFIDCARD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RADAR_RFIDCARD_CONFIG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RADAR_RFIDCARD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RADAR_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RADAR_SCENE_CAP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RADAR_SCREEN_RULE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RAID_ERR_DETAIL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RAID_MEMBER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RECORDBACKUP_PROCESSTIME.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RECORDBACKUP_REMOTE_TASK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RECORDBACKUP_TASKID_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RECORDFILE_INFOEX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RECORD_ACCESS_CTL_CONSUMPTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RECORD_BACKUP_PROGRESS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RECORD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RECORD_INFO_ARRAY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RECORD_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_REGION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_REGION_PEOPLE_STAT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RELATING_VIDEO_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_REMAIN_ANALYSE_TOTAL_CAPACITY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_REMOTE_FILE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_REMOTE_STREAM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RESOLUTION_INFO_ARRAY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RESPIRATOR_DETECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RETROGRADE_DETECTION_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RFIDELETAG_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RFID_CARD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RINGS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RINGS_LIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RIOTERDETECTION_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_RUNMODE_PARAMS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SAFETY_ROPE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SAFETY_SHOES_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SAFE_BELT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SCADA_NOTIFY_POINT_ALARM_INFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SCENICSPOT_CAPS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SCREEN_SHOW_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SECURITYGATE_ALARM_FACEIMAGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SECURITYGATE_ALARM_FACE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SECURITYGATE_ALARM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SECURITYGATE_ALARM_STATISTICS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SECURITYGATE_CANDIDATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SECURITYGATE_PERSON.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SENIOR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SENSITIVITY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SENSOR_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SET_POLLING_CONFIG_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SHIELD_ZOOM_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SHOESCOVER_ATTRIBUTE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SIGNAL_ROAD_LIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SIGNAL_VEHICLE_DETECTOR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SIP_SERVER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SMALL_PIC_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SMARTDETECT_HUMAN_OBJECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SMARTDETECT_VEHICLE_OBJECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SMART_KITCHEN_CLOTHES_CHEF_CLOTHES.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SMART_KITCHEN_CLOTHES_CHEF_HAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SMART_KITCHEN_CLOTHES_CHEF_MASK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SMART_VALUE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SMOKE_DETECTION_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SMOKING_DETECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SPACE_MODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SPACE_OCCUPY_RATIO_MULTI.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SPECIAL_DATE_PLANS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SPECIAL_DATE_PLAN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SPECIAL_DAYS_SCHEDULE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SPECIAL_DAYS_SCHEDULE_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SPEED_LIMIT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SPLIT_OSD.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_STAFF_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_START_FIND_VEHICLE_REG_DB_CONDITION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_START_FIND_WATERDATA_CONDITION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_STATEMANAGER_V_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_STAT_ATTRIBUTE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_STAT_ATTRMAP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_STAT_DETAIL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_STJ77D5_RADAR_CONFIG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_STORAGE_DEVICE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_STORAGE_PARTITION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_STORAGE_PARTITION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_STORAGE_RAID.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_STORAGE_TANK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_STREAM_CFG_CAPS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_STU_LOG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_STU_OLD_LOG.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SUBBIZ_DISCONNECT_CALLBACK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SUBLINK_SERVER_CALLBACK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SYSTEM_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_SYSTEM_STATUS_CHECK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TALK_DEV_DETAIL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TALK_DEV_DO_FIND_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TALK_DEV_FRONT_DEV_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TALK_DEV_UPDATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TEMPERATUREEX_VALUE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TEMPERATURE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TEMPERATURE_STATISTICS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TEMPERATURE_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TEST_RESULT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_THERMAL_IMAGE_MEASURE_MODE_PARAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_THINGS_DEVLIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_THINGS_HISTORYDATA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_THINGS_HISTORYDATA_PROPER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_THINGS_RULECONTENT_ACTION_SETPROPERTY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_THINGS_RULECONTENT_CONDITION_PROPERTY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_THINGS_RULECONTENT_TRIGGER_PROPERTY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_THINGS_RULECONTENT_TRIGGER_TIMER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_THINGS_SERVICE_CURRENTSTATUSGET_STATUS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_THINGS_SERVICE_DELDEVICE_LIST.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_THINGS_SERVICE_QUERULE_RULECONTENT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_THINGS_SERVICE_QUERULE_RULES.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_THINGS_SERVICE_RULECONTENT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_THINGS_SERVICE_RULECONTENT_ACTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_THINGS_SERVICE_RULECONTENT_CONDITION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_THINGS_SERVICE_RULECONTENT_TRIGGER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_THINGS_START_HISTORYDATA_TOPICS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_THINGS_TRIGGER_TIMER_CORN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TIME.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TIME_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TIME_EX1.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TIME_RECORDBACKUP_TASK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFICCAR_INFO_EXTERN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFICCAR_ORIGINAL_VEHICLE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFICLIGHT_CHANNEL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFICLIGHT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_ACCIDENT_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_BACKING_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_CAR_ATTRIBUTE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_CROSSLANE_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_FLOWSTAT_INFO_DIR.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_FLOWSTAT_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_FLOW_STAT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_FLOW_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_JAM_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_LATTICE_SCREEN_ALARM_NOTICE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_LATTICE_SCREEN_LOGO_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_LIGHT_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_OVERSPEED_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_OVERYELLOWLINE_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_PARKING_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_PEDESTRAIN_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_RETROGRADE_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_ROAD_BLOCK_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_ROAD_CONSTRUCTION_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_THROW_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_UNDERSPEED_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRANSMIT_DISCONNECT_CALLBACK.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TRAVEL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_TSECT_DAY.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_UINT_POINT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_UNIFORM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_UPDATE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_UPLOAD_CLIENT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_USERMANAGER_IMAGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_USER_DEF_TITLE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_USER_PICTURE_DATA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VACCINE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VAGEOBJECT_IMAGE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VAGEOBJECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VAOBJECT_ANIMAL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VAOBJECT_NUMMAN.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VARLANE_PLAN_LIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VAR_LANE_LIST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VEDIO_WIDGET_COVER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VEHICLEDETECT_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VEHICLES_DISTRIBUTION_DATA.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VEHICLE_ATTACHMENT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VEHICLE_BRAND_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VEHICLE_CALLING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VEHICLE_COLOR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VEHICLE_DRIVING_DIRECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VEHICLE_FUSED_OBJECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VEHICLE_GROUP_FOUND_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VEHICLE_GROUP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VEHICLE_INOUT_ANALYSE_PROC.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VEHICLE_OBJECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VEHICLE_PLATE_COLOR_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VEHICLE_SAFE_BELT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VEHICLE_TYPE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VEST_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEOABNORMALDETECTION_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEOCHANNELS_INPUT_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEODIAGNOSIS_PROJECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEOENC_OPT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEOIN_DEFOG_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEOIN_LIGHTING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEOSTAT_CROWD_DISTRI_MAP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEOSTAT_INSIDESUBTOTAL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEOSTAT_SUMMARY_HEAD_LIFT_DETECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEOSTAT_SUMMARY_INTELLIPARKING.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEOSTAT_SUMMARY_STEREO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEOSTAT_SUMMARY_TANK_CAPACITY_DETECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEOTALK_SIGNLIGHT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEO_ALGORITHMTYPE_DETECTIONRESULT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEO_ANALYSE_ANALYSE_PROC.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEO_ANALYSE_TRACK_PROC.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEO_AVAILABILITY_DETECTIONRESULT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEO_DELAY_DETECTIONRESUL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEO_DIAGNOSIS_COMPARE_RECORD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEO_DIAGNOSIS_RECORD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEO_FILCKERING_DETECTION_RESULT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEO_LOSS_FRAME_DETECTION_RESULT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEO_SNOWFLAKE_DETECTIONRESULT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEO_TRACK_OBJECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VIDEO_TRACK_OBJECT_INFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VKINFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VOTE_SETTINGS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VSP_GAVI_CHANNEL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VSP_GAVI_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VSP_GAVI_NOTIFY_OBJECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VSP_GAVI_PLATFORM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VTO_DEV_NODE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VT_CONTACTINFO_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_VT_CONTACTINFO_INFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WANDERDETECTION_RULE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WATERDATA_STAT_SERVER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WATER_DETECTION_UPLOAD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WEEKS_PLAN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WEEK_PLANS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WEEK_PLAN_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WIEGAND_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WLAN_ACCESSPOINT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WORKSUIT_ABSTRACT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WORKSUIT_APPEND_IDENTI_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WORKSUIT_CHANNEL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WORKSUIT_COMPARE_GROUP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WORKSUIT_SAMPLE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WPAN_ACCESSORY_BUTTON_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WPAN_ACCESSORY_CAPS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WPAN_ACCESSORY_IMAGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WPAN_ACCESSORY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WPAN_ACCESSORY_LOCK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WPAN_ARMING_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WPAN_CARD_READER_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WPAN_EXTERNAL_WIFI_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WPAN_HEARTBEAT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WPAN_OVER_TEMPERATURE_ALARM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WPAN_RELAY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WPAN_WIFI_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WRIST_GUARD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_WRIST_MEASURE_MODE_PARAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_XRAY_CUT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_XRAY_IMAGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_XRAY_INSIDE_ONJECT_TYPE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_XRAY_MULTILEVEL_DETECT_CFG_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_XRAY_OBJECT_GROUP.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_XRAY_OBJECT_GROUP_EVENT_HANDLER.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_XRAY_OBJECT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_XRAY_RELATED_IMAGE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ZONE_ABNORMAL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NET_ZONE_ARM_MODE_DEVICE_FAULT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/NEXT_STEP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/Net_PIC_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/OBJECT_RELATED_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ObjectPath.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/ObjectUrl.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/OneDimensionalInformation.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/PASSERBY_DB_DUPLICATE_REMOVE_CONFIG_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/POINTCOORDINATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/POINTINFOS.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/POSTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/PTZ_NORMALIZED_POSITION_UNIT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/PTZ_PRESET_UNIT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/PTZ_SPACE_UNIT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/PTZ_SPEED.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/PassingCityByteArr.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/PlateNumber.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/PointerSize.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/PtotoListByteArr.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/QUERY_DEVICE_LOG_PARAM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/RADAR_REPORTS_VEHICLE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/RECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/RELATED_IMAGE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/RUN_LAMP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/RUN_PHASE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/RuleTypeByteArr.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/SCENE_SUPPORT_RULE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/SDK_DEVICE_LOG_ITEM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/SDK_DEVICE_LOG_ITEM_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/SDK_DEV_TIME.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/SDK_HARDDISK_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/SDK_LOG_ITEM.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/SDK_PIC_INFO_EX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/SDK_TSECT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/SOLARCELL_BATTERY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/SOLARCELL_PANEL_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/SOLARCELL_SYSTEM_HISTORY_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/START_LISTEN_FINISH_RESULT_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/STEP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/STEP_SEQUENCE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/StringByteArr32.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/StringByteArrSixteen.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/SupportedModeByteArr.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/THERMOMETRY_SHIELD_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/TIME_SECTION_6.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/TRAFFIC_EVENT.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/TRAFFIC_FLOW_JUNTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/TRAFFIC_FLOW_LANE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/TRAFFIC_FLOW_QUEUE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/TRAFFIC_FLOW_STAT_EX_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/TRAFFIC_FLOW_VEHICLE_STOP_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/TRAFFIC_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/TRAFFIC_QUEUE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/TRAFFIC_STATE.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/UNPACKING_CHECK_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/USER_TIME_SECTION.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/VA_CAPS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/VA_DYNAMIC_CAPS_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/VA_OBJECT_ANIMAL.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/VaccinateDateByteArr.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/customize/CANDIDATE_INFO_CEX.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/customize/DEV_EVENT_CROSSLINE_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/customize/DEV_EVENT_CROSSREGION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/customize/DEV_EVENT_PARKINGDETECTION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/customize/EVENT_INTELLI_COMM_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/customize/MEDIAFILE_FACERECOGNITION_INFO.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/optimized/ALARM_RTSC_RUNNING_INFO_V1.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/optimized/ENTER_INFO_V1.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/optimized/LAMP_GROUP_INFO_V1.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/optimized/LAMP_STATE_V1.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/optimized/NET_IN_WM_GET_COLLECTIONS_V1.java
iailab-module-data/iailab-module-data-biz/src/main/java/com/netsdk/lib/structure/optimized/NET_OUT_WM_GET_COLLECTIONS_V1.java
iailab-module-data/iailab-module-data-biz/src/main/resources/application-dev.yml
iailab-module-data/iailab-module-data-biz/src/main/resources/application.yml
iailab-module-data/iailab-module-data-biz/src/main/resources/dynamic-lib-load.xml
iailab-module-data/iailab-module-data-biz/src/main/resources/res_en_US.properties
iailab-module-data/iailab-module-data-biz/src/main/resources/res_zh_CN.properties
iailab-module-data/pom.xml
iailab-module-model/iailab-module-model-biz/pom.xml
iailab-module-model/pom.xml
iailab-module-system/iailab-module-system-api/pom.xml
iailab-module-system/iailab-module-system-biz/src/main/java/com/iailab/module/system/controller/admin/auth/AuthController.java
iailab-module-system/iailab-module-system-biz/src/main/java/com/iailab/module/system/controller/admin/permission/MenuController.java
iailab-module-system/iailab-module-system-biz/src/main/java/com/iailab/module/system/convert/auth/AuthConvert.java
iailab-module-system/iailab-module-system-biz/src/main/java/com/iailab/module/system/service/app/AppServiceImpl.java
iailab-module-system/iailab-module-system-biz/src/main/java/com/iailab/module/system/service/permission/MenuService.java
iailab-module-system/iailab-module-system-biz/src/main/java/com/iailab/module/system/service/permission/MenuServiceImpl.java
iailab-module-system/iailab-module-system-biz/src/main/java/com/iailab/module/system/service/permission/PermissionServiceImpl.java
iailab-module-system/iailab-module-system-biz/src/main/resources/application.yaml |