JRT连接希森美康出图

上一篇用JRT连设备实现了比较有难度的Sebia绘图设备和TCP模式连接。这次连接最常见的检验设备(西森美康),读文件和图上传出图。

视频演示

结果格式
在这里插入图片描述
通道对应
在这里插入图片描述

接口设置
在这里插入图片描述

接口处理实现,JRT设备连接全部采用CMD驱动方式实现,所以需要客户端执行对应操作返回对应CMD即可。客户端对CMD负责,实现了对应的CMD执行器。
在这里插入图片描述

import JRT.Core.Dto.CmdDto;
import JRT.Core.Dto.OutValue;
import JRT.Core.Util.LogUtils;
import JRT.Core.Util.MakeCmdUtil;
import JRT.Model.Bussiness.Parameters;
import JRTBLLBase.BaseHttpHandlerMachine;
import JRTBLLBase.Helper;import java.util.ArrayList;
import java.util.List;/*** 希森美康XN9000仪器接口*/
public class miXN9000 extends BaseHttpHandlerMachine {/*** 流水号*/private static String dataEpis="";/*** 数据的日期*/private static int date=Helper.GetNowDate();/*** 数据的时间*/private static int time=Helper.GetNowTime();/*** 缓存结果*/private static String result="";/*** 保存仪器数据** @param Param   参数* @param Session* @param Output* @return* @throws Exception*/public String SaveData(Parameters Param, OutValue Session, OutValue Output) throws Exception {String mi = Param.P0;String data = Param.P1;String epis = Param.P2;String fileName = Param.P3;String DBColName = Param.P4;Trace(mi, data, "M->H");//读取文件到第几行数据int index = Helper.ValidParam(Param.P5, -1);//返回的数据List<CmdDto> cmdList = new ArrayList<>();try {String [] arr=data.split(",");//第一行解析流水号和结果日期时间if(arr[0].equals("0")){String dateStr=arr[1];date=Helper.DateToInt(dateStr);String timeStr=arr[2];time=Helper.TimeToInt(timeStr);dataEpis=arr[3];result="";}//解析结果else if(arr[0].equals("1")){String chl=arr[1];String res=arr[3];result+=chl+"\\"+res+",";}//解析图片else if(arr[0].equals("3")){String imgClass=arr[2];String imgPath=arr[3];//取图MakeCmdUtil.AddGetImageCmd(cmdList, dataEpis, imgClass, imgPath, "");//删图//MakeCmdUtil.AddRMCmd(cmdList,imgPath);}//最后一行保存结果if(index==-1&&!dataEpis.isEmpty()){Trace(mi, result, "解析结果");//处理数据Helper.GetBllMethodData("mi.miBase", "SaveResult", mi, dataEpis, result, date, time);}Trace(mi, "解析完成", "M->H");} catch (Exception ex) {LogUtils.WriteExceptionLog("解析XN9000仪器结果发生错误", ex);}return Helper.Object2Json(cmdList);}/*** 得到文件服务地址供接口上传图片** @param Param* @param Session* @param Output* @return* @throws Exception*/public String GetFileService(Parameters Param, OutValue Session, OutValue Output) throws Exception {String mi = Param.P0;String path = (String) Helper.GetBllMethodData("mi.miBase", "GetFileService", mi);//返回文件服务路径return path;}/*** 保存文件到数据库** @param Param* @param Session* @param Output* @return* @throws Exception*/public String SaveImage(Parameters Param, OutValue Session, OutValue Output) throws Exception {String mi = Param.P0;String epis = Param.P1;String ImageClass = Param.P2;String fileName = Param.P3;String fullName = Param.P4;String caption = "";String displayRatio = "";String width = "";String height = "";String sequence = "";Integer receiveDate = null;String ret = (String) Helper.GetBllMethodData("mi.miBase", "SaveImage", mi, epis, ImageClass, "", fileName, null, caption, displayRatio, width, height, sequence);return ret;}/*** 查询要上传的指令** @param Param* @param Session* @param Output* @return* @throws Exception*/public String QryUpdata(Parameters Param, OutValue Session, OutValue Output) throws Exception {String mi = Param.P0;//先写Log测试LogUtils.WriteDebugLog("mi:" + mi + ",调用上传查询");//返回的数据List<CmdDto> cmdList = new ArrayList<>();return Helper.Object2Json(cmdList);}/*** 设置上传指令执行状态** @param Param* @param Session* @param Output* @return* @throws Exception*/public String SetQryStatus(Parameters Param, OutValue Session, OutValue Output) throws Exception {String mi = Param.P0;String setStatusKey = Param.P1;//先写Log测试LogUtils.WriteDebugLog("mi:" + mi + ",setStatusKey:" + setStatusKey + "设置状态");return "";}}

效果
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这就是第二个仪器接口演示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/17347.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

The First项目报告:解读去中心化衍生品交易所AVEO

2023 年12月8日凌晨&#xff0c;Solana 生态 MEV 基础设施开发商 Jito Labs 开放了 JTO 空投申领窗口&#xff0c;JTO 的价格在开盘短暂震荡后迅速攀高&#xff0c;一度触及 4.94 美元。 JTO 是加密社区这两日关注的热门标的&#xff0c;而在这场讨论中&#xff0c;除 Solana …

springboot 集成 es--未完结

基于es7.10.x版本 一、前提知识 常见的两种方式&#xff1a;spring boot提供的API 和 ES 官方提供的API ES官方&#xff1a; RestHighLevelClient&#xff1a; 适用于复杂、更细粒度控制的Elasticsearch 操作 spring boot&#xff1a; ElasticsearchRestTemplate&#xff1a…

【无标题】MySQL基础命令

好的&#xff0c;以下是15个常见的MySQL命令及其解释&#xff1a; ### 1. 连接到MySQL服务器 sql mysql -u username -p - **解释**&#xff1a;使用指定的用户名连接到MySQL服务器&#xff0c;-p表示需要输入密码。 ### 2. 显示数据库列表 sql SHOW DATABASES; - **解释**…

AI智能体研发之路-模型篇(四):一文入门pytorch开发

博客导读&#xff1a; 《AI—工程篇》 AI智能体研发之路-工程篇&#xff08;一&#xff09;&#xff1a;Docker助力AI智能体开发提效 AI智能体研发之路-工程篇&#xff08;二&#xff09;&#xff1a;Dify智能体开发平台一键部署 AI智能体研发之路-工程篇&#xff08;三&am…

C++ | Leetcode C++题解之第115题不同的子序列

题目&#xff1a; 题解&#xff1a; class Solution { public:int numDistinct(string s, string t) {int m s.length(), n t.length();if (m < n) {return 0;}vector<vector<unsigned long long>> dp(m 1, vector<unsigned long long>(n 1));for (i…

[docker] docker 安全知识 - 镜像,port registry

[docker] docker 安全知识 - 镜像&#xff0c;port & registry 这是第一篇&#xff0c;安全部分还有一篇笔记就记完了 说实话&#xff0c;看完了要学的这些东西&#xff0c;感觉大多数安全问题都可以通过验证登录的合法性去解决 镜像 镜像的问题还是比较多的&#xff0…

Mybatis——入门

新建 idea 准备 数据库 create table user(id int unsigned primary key auto_increment comment ID,name varchar(100) comment 姓名,age tinyint unsigned comment 年龄,gender tinyint unsigned comment 性别, 1:男, 2:女,phone varchar(11) comment 手机号 ) comment 用…

C语言 | Leetcode C语言题解之第116题填充每个节点的下一个右侧节点指针

题目&#xff1a; 题解&#xff1a; struct Node* connect(struct Node* root) {if (root NULL) {return root;}// 从根节点开始struct Node* leftmost root;while (leftmost->left ! NULL) {// 遍历这一层节点组织成的链表&#xff0c;为下一层的节点更新 next 指针stru…

调整GIF图大小的方法是什么?分享4个

调整GIF图大小的方法是什么&#xff1f;在数字化时代&#xff0c;GIF以其独特的动图魅力&#xff0c;成为了网络交流中不可或缺的一部分。无论是社交媒体、博客文章还是工作汇报&#xff0c;一个恰到好处的GIF图往往能有效吸引观众的注意&#xff0c;传递信息&#xff0c;但过大…

【YOLOv8改进[Neck]】小目标遮挡检测的性能提升(SEAM、MultiSEAM)- 目标遮挡检测(本文包含代码 + 修改方式等全部内容)

目录 一 SEAM 和 Repulsion Loss 1 SEAM 2 MultiSEAM 3 排斥损失Repulsion Loss 二 使用SEAM和 MultiSEAM改进YoloV8

File类.Java

一、File类 1&#xff0c;概述&#x1f3c0;&#x1f3c0;&#x1f3c0; &#xff08;1&#xff09; java.io.File类&#xff1a;文件和文件目录路径的抽象表示形式&#xff0c;与平台无关 &#xff08;2&#xff09; File类中涉及到关于文件或文件目录的创建、删除、重命…

Golang | Leetcode Golang题解之第115题不同的子序列

题目&#xff1a; 题解&#xff1a; func numDistinct(s, t string) int {m, n : len(s), len(t)if m < n {return 0}dp : make([][]int, m1)for i : range dp {dp[i] make([]int, n1)dp[i][n] 1}for i : m - 1; i > 0; i-- {for j : n - 1; j > 0; j-- {if s[i] …

对k8s 中etcd 存储进行备份和恢复操作

一. 安装 etcdctl 前面的步骤已经描述了如何安装 etcdctl&#xff0c;这里只做简要回顾&#xff1a; 下载 etcd&#xff1a; wget https://github.com/etcd-io/etcd/releases/download/v3.5.4/etcd-v3.5.4-linux-amd64.tar.gz解压缩&#xff1a; tar -xvf etcd-v3.5.4-linux-a…

山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(十七)- JUC(3)

目录 synchronized 面向对象改进 synchronized加在方法上 线程八锁 synchronized 线程1上锁之后&#xff0c;线程2无法获取锁不能够执行临时区&#xff0c;线程2阻塞等待线程1完成释放锁之后才能够使用。可以把synchronize类比成一个房间&#xff0c;每次有锁的人才能够进入…

Linux基础 (十一):进程间通信

Linux进程间通信&#xff08;Inter-Process Communication, IPC&#xff09;是指在不同进程之间交换数据或信息的机制。由于进程间不能直接共享内存&#xff0c;Linux 提供了多种 IPC 机制来实现进程间的通信。主要为&#xff1a;管道、信号量、共享内存、消息队列、套接字。 目…

C++三方库编译之GCC11.3.0

本系列准备持续更新&#xff0c;目的是将网上开源的三方库的编译过程与步骤&#xff0c;无脑展示&#xff0c;内容纯执行脚本与代码&#xff0c;不讲原理&#xff0c;也不科普库。 三方库编译很简单的(三板斧&#xff1a;configuremakeinstall)&#xff0c;为啥还需要整理&…

[Cesium学习]

底图切换 Cesium之底图切换_cesium地图切换-CSDN博客 ImageryProvider Cesium中比例尺设置 cesium给地图添加比例尺学习踩坑记录_cesium 比例尺-CSDN博客 webpack与less-loader版本对应问题 报错this.getOptions is not a function at Object.lessLoader”指的是在使用we…

halcon 传统缺陷检测

一、电路检测 算子解释 dyn_threshold *dyn_threshold 利用局部阈值分割图像*OrigImage (input_object)&#xff1a;原始图像*ThresholdImage (input_object)&#xff1a;处理后图像&#xff08;一般采用滤波处理&#xff09;*RegionDynThresh (output_object)&#xff1…

操作系统 - 文件管理

文件管理 考纲内容 文件 文件的基本概念&#xff1b;文件元数据和索引节点(inode) 文件的操作&#xff1a;建立&#xff0c;删除&#xff0c;打开&#xff0c;关闭&#xff0c;读&#xff0c;写 文件的保护&#xff1b;文件的逻辑结构&#xff1b;文件的物理结构目录 目录的基…

在Android系统中运行i2c tools

步骤 安装交叉编译工具 验证是否安装arm-none-eabi-gcc: arm-none-eabi-gcc -v安装&#xff1a;sudo apt install gcc-arm-none-eabi 安装 i2c-tools 下载i2c-tools源码: https://www.kernel.org/pub/software/utils/i2c-tools/ 编译 查看当前cpu架构:adb shell getprop r…