mdc-parent/mdc-collect/src/main/java/com/qianwen/mdc/MdcCollectApplication.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
mdc-parent/mdc-collect/src/main/java/com/qianwen/mdc/service/focas/JNAFocas.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
mdc-parent/mdc-collect/src/test/java/com/qianwen/mdc/service/focas/FocasClientTest.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
mdc-parent/mdc-collect/src/test/java/com/qianwen/mdc/service/focas/MyJNAFocas.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/controller/MachineDataController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/dto/machine/MachiningDataFullDTO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/mapper/MachiningDataMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
mdc-parent/mdc-showdb-mysql/src/main/resources/mapper/MachiningDataMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
mdc-parent/mdc-collect/src/main/java/com/qianwen/mdc/MdcCollectApplication.java
@@ -5,8 +5,11 @@ import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.system.ApplicationHome; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.scheduling.annotation.EnableScheduling; import com.qianwen.mdc.service.focas.JNAFocas; @ServletComponentScan(basePackages = {"com.qianwen.mdc.listener"}) @SpringBootApplication @@ -18,5 +21,10 @@ public static void main(String[] args) { logger.trace("MdcCollectionApplication start"); SpringApplication.run(MdcCollectApplication.class, args); ApplicationHome ah = new ApplicationHome(JNAFocas.class); String dllPath = ah.getSource().getParentFile().toString() + "\\lib\\focas\\"; System.out.println("dllPath="+dllPath); } } mdc-parent/mdc-collect/src/main/java/com/qianwen/mdc/service/focas/JNAFocas.java
@@ -9,6 +9,7 @@ public interface JNAFocas extends Library { public static final ApplicationHome ah = new ApplicationHome(JNAFocas.class); public static final String dllPath = ah.getSource().getParentFile().toString() + "\\lib\\focas\\"; //public static final String dllPath = "lib\\focas\\"; public static final JNAFocas HxFocas = (JNAFocas) Native.load(dllPath + "HxFocasApi", JNAFocas.class); public static final JNAFocas Fwlib32 = (JNAFocas) Native.load(dllPath + "Fwlib32", JNAFocas.class); public static final JNAFocas Fwlibe1 = (JNAFocas) Native.load(dllPath + "fwlibe1", JNAFocas.class); mdc-parent/mdc-collect/src/test/java/com/qianwen/mdc/service/focas/FocasClientTest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,29 @@ package com.qianwen.mdc.service.focas; import org.junit.jupiter.api.Test; import com.sun.jna.Native; import com.sun.jna.ptr.ShortByReference; public class FocasClientTest { public static final String dllPath = "D:\\mdc\\lib\\focas\\"; //public static final MyJNAFocas HxFocas = (MyJNAFocas) Native.load(dllPath + "HxFocasApi", JNAFocas.class); public static final MyJNAFocas Fwlib32 = (MyJNAFocas) Native.load(dllPath + "Fwlib64", MyJNAFocas.class); @Test public void testConn() { ShortByReference flibHndl = new ShortByReference(); //short result = Fwlib32.connectServer("localhost", (short)8193, 5000, flibHndl); //short ret = Fwlib32.disconnectServer(flibHndl.getValue()); /* FocasClient c = new FocasClient(); c.setIp("localhost"); c.setPort((short)8193);//é»è®¤ç«¯å£ int cresult = c.connect(); System.out.println(cresult); c.disconnect(); */ } } mdc-parent/mdc-collect/src/test/java/com/qianwen/mdc/service/focas/MyJNAFocas.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,17 @@ package com.qianwen.mdc.service.focas; import com.sun.jna.Library; import com.sun.jna.Native; import com.sun.jna.ptr.ShortByReference; public interface MyJNAFocas extends Library { public static final String dllPath = "lib\\focas\\"; //public static final JNAFocas HxFocas = (JNAFocas) Native.load(dllPath + "HxFocasApi", JNAFocas.class); public static final JNAFocas Fwlib32 = (JNAFocas) Native.load(dllPath + "Fwlib32", JNAFocas.class); //public static final JNAFocas Fwlibe1 = (JNAFocas) Native.load(dllPath + "fwlibe1", JNAFocas.class); short connectServer(String ipAddr, short port, int timeout, ShortByReference flibHndl); short disconnectServer(short flibHndl); } mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/controller/MachineDataController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,239 @@ package com.qianwen.mdc.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.qianwen.mdc.common.OpResult; import com.qianwen.mdc.domain.AccountToken; import com.qianwen.mdc.domain.MachiningData; import com.qianwen.mdc.dto.machine.MachiningDataFullDTO; import com.qianwen.mdc.mapper.AccountTokenMapper; import com.qianwen.mdc.mapper.MachineMapper; import com.qianwen.mdc.mapper.MachiningDataMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.List; @RestController @CrossOrigin @RequestMapping(value = "/machinedata", method = RequestMethod.POST) public class MachineDataController { @Autowired private AccountTokenMapper mdcTokenMapper; @Autowired private MachineMapper machineMapper; @Autowired private MachiningDataMapper machiningDataMapper; public static final Logger logger = LoggerFactory.getLogger(MachineDataController.class); /* @RequestMapping(value = "/current", method = RequestMethod.POST) public JSONObject getCurrentMachineData(@RequestHeader(value = "mdc-token", defaultValue = "") String token, String pageNo) { //TODO checktoken JSONObject jsonResult = new JSONObject(); jsonResult.put("result", "SUCCESS"); List<MdcMachineData> list = mdcMachineDataMapper.selectAll(); String totalPage = String.format("%d", (list.size() - 1) / 10 + 1); jsonResult.put("totalPage", totalPage); JSONArray jsonArray = new JSONArray(); jsonResult.put("list", jsonArray); int curRecord = (Integer.parseInt(pageNo) - 1) * 10; for (int i=curRecord; i<curRecord+10; i++) { if (i >= list.size()) { break; } MdcMachineData mdcMachineData = list.get(i); JSONObject item = new JSONObject(); jsonArray.add(item); Machine mdcMachineObj = new Machine(); mdcMachineObj.setId(mdcMachineData.getMachineId()); MdcMachine mdcMachine = mdcMachineMapper.selectOne(mdcMachineObj); item.put("name", mdcMachine.getName()); DateFormat df = new SimpleDateFormat("HH:mm:ss"); item.put("time", df.format(mdcMachineData.getTime())); item.put("state", mdcMachineData.getState()); item.put("spindleSpeed", mdcMachineData.getSpindleSpeed()); item.put("spindleOverride", mdcMachineData.getSpindleOverride()); item.put("spindleLoad", mdcMachineData.getSpindleLoad()); item.put("feedrateOverride", mdcMachineData.getFeedrateOverride()); item.put("feedRate", mdcMachineData.getFeedRate()); item.put("rapidFeed", mdcMachineData.getRapidFeed()); item.put("progName", mdcMachineData.getProgName()); item.put("alarmNo", mdcMachineData.getAlarmNo()); item.put("alarmMsg", mdcMachineData.getAlarmMsg()); item.put("toolNo", mdcMachineData.getToolNo()); item.put("toolName", mdcMachineData.getToolName()); } return jsonResult; } @RequestMapping(value = "/history", method = RequestMethod.POST) public JSONObject getHistoryMachineData(@RequestHeader(value = "mdc-token", defaultValue = "") String token, String pageNo) { //checktoken JSONObject jsonResult = new JSONObject(); jsonResult.put("result", "SUCCESS"); List<MachineDataHistory> list = mdcMachineDataHistoryMapper.selectAll(); String totalPage = String.format("%d", (list.size() - 1) / 10 + 1); jsonResult.put("totalPage", totalPage); JSONArray jsonArray = new JSONArray(); jsonResult.put("list", jsonArray); int curRecord = (Integer.parseInt(pageNo) - 1) * 10; for (int i=curRecord; i<curRecord+10; i++) { if (i >= list.size()) { break; } MdcMachineDataHistory machineDataHistory = list.get(i); JSONObject item = new JSONObject(); jsonArray.add(item); MdcMachine mdcMachineObj = new MdcMachine(); mdcMachineObj.setId(machineDataHistory.getMachineId()); MdcMachine mdcMachine = mdcMachineMapper.selectOne(mdcMachineObj); item.put("name", mdcMachine.getName()); DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); item.put("time", df.format(machineDataHistory.getTime())); item.put("state", machineDataHistory.getState()); item.put("spindleSpeed", machineDataHistory.getSpindleSpeed()); item.put("spindleOverride", machineDataHistory.getSpindleOverride()); item.put("spindleLoad", machineDataHistory.getSpindleLoad()); item.put("feedrateOverride", machineDataHistory.getFeedrateOverride()); item.put("feedRate", machineDataHistory.getFeedRate()); item.put("rapidFeed", machineDataHistory.getRapidFeed()); item.put("progName", machineDataHistory.getProgName()); item.put("alarmNo", machineDataHistory.getAlarmNo()); item.put("alarmMsg", machineDataHistory.getAlarmMsg()); item.put("toolNo", machineDataHistory.getToolNo()); item.put("toolName", machineDataHistory.getToolName()); } return jsonResult; }*/ @RequestMapping(value = "/getbyid", method = RequestMethod.POST) private OpResult<JSONObject> getMachineDetailById(@RequestHeader(value = "mdc-token", defaultValue = "") String token, Long machineId) { //åºè¯¥æ¯éæ©è¡¨å ææ°ç䏿¡æ°æ®æ¾ç¤ºï¼list.get(list.size()-1)ï¼ï¼ç¶å /* MdcMachineData mdcMachineDataObj = new MdcMachineData(); mdcMachineDataObj.setMachineId(Integer.parseInt(machineId)); List<MdcMachineData> list = mdcMachineDataMapper.select(mdcMachineDataObj); String totalPage = String.format("%d", (list.size() - 1) / 10 + 1); */ try { JSONObject jsonResult = new JSONObject(); MachiningDataFullDTO data = machiningDataMapper.machineLastData(machineId); //jsonResult.put("totalPage", totalPage); if (data != null) { /* JSONObject machineStatus = new JSONObject(); Machine machine = machineMapper.selectById(machineId) machineStatus.put("name", machine.getName()); DateFormat df = new SimpleDateFormat("HH:mm:ss"); machineStatus.put("time", df.format(machineData.getTime())); machineStatus.put("state", machineData.getState()); machineStatus.put("feedRate", machineData.getFeedRate()); machineStatus.put("rapidFeed", machineData.getRapidFeed()); machineStatus.put("progName", machineData.getProgName()); machineStatus.put("alarmNo", machineData.getAlarmNo()); machineStatus.put("alarmMsg", machineData.getAlarmMsg()); machineStatus.put("toolNo", machineData.getToolNo()); machineStatus.put("toolName", machineData.getToolName()); machineStatus.put("operId", machineData.getOperId()); if ("STOP".equals(machineData.getState())) { machineStatus.put("spindleSpeed", "0"); machineStatus.put("spindleOverride", "0"); machineStatus.put("spindleLoad", "0"); machineStatus.put("feedrateOverride", "0"); } else { machineStatus.put("spindleSpeed", machineData.getSpindleSpeed()); machineStatus.put("spindleOverride", machineData.getSpindleOverride()); machineStatus.put("spindleLoad", machineData.getSpindleLoad()); machineStatus.put("feedrateOverride", machineData.getFeedrateOverride()); } */ jsonResult.put("status", data); } else { jsonResult.put("status", new JSONObject()); } jsonResult.put("list",machiningDataMapper.machineLastData(machineId, 10)); return OpResult.success(jsonResult); }catch(Exception e) { logger.error("æ¥è¯¢æç»å¤±è´¥",e); return OpResult.fail(e.getMessage()); } /* JSONArray jsonArray = new JSONArray(); int curRecord = (Integer.parseInt(pageNo) - 1) * 10; jsonResult.put("list", jsonArray); for (int i=curRecord; i<curRecord+10; i++) { if (i >= list.size()) { break; } MdcMachineData machineData = list.get(i); JSONObject item = new JSONObject(); jsonArray.add(item); MdcMachine mdcMachineObj = new MdcMachine(); mdcMachineObj.setId(machineData.getMachineId()); MdcMachine machine = mdcMachineMapper.selectOne(mdcMachineObj); item.put("name", machine.getName()); DateFormat df = new SimpleDateFormat("HH:mm:ss"); item.put("time", df.format(machineData.getTime())); item.put("state", machineData.getState()); item.put("spindleSpeed", machineData.getSpindleSpeed()); item.put("spindleOverride", machineData.getSpindleOverride()); item.put("spindleLoad", machineData.getSpindleLoad()); item.put("feedrateOverride", machineData.getFeedrateOverride()); item.put("feedRate", machineData.getFeedRate()); item.put("rapidFeed", machineData.getRapidFeed()); item.put("progName", machineData.getProgName()); item.put("alarmNo", machineData.getAlarmNo()); item.put("alarmMsg", machineData.getAlarmMsg()); item.put("toolNo", machineData.getToolNo()); item.put("toolName", machineData.getToolName()); item.put("operId", machineData.getOperId()); } */ } } mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/dto/machine/MachiningDataFullDTO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,361 @@ package com.qianwen.mdc.dto.machine; public class MachiningDataFullDTO { private Long id; private Long machineId; private String machineName; private Integer mdcTime; private Integer updateTime; private String state; /** * machine mode: auto/manual */ private String mode; /** * operation mode(JOGï¼0<=X<100ï¼MDAï¼100<=X<200ï¼AUTOï¼200<=X<300ï¼REFï¼300<=X<400ï¼otherï¼9000<=X<=9999) */ private Integer opMode; /** * 主轴转é */ private Integer spindleSpeed; /** * 主轴åç */ private Integer spindleOverride; /** * 主轴è´è½½ */ private Integer spindleLoad; /** * è¿ç»åç */ private Integer feedrateOverride; /** * è¿ç»ç */ private Integer feedRate; /** * å¿«éè¿ç»åç G00çåç */ private Integer rapidFeedOverride; /** * å¿«éè¿ç» */ private Integer rapidFeed; /** * ç¨åºåç§° */ private String progName; /** * program block */ private String progBlock; /** * æ¥è¦ç¼å· */ private String alarmNo; /** * alarm message */ private String alarmMsg; /** * åå ·ç¼å· */ private Integer toolNo; /** * åå ·åç§° */ private String toolName; /** * operation id */ private Integer operId; /** * axis names */ private String axisNames; /** * è½´ ç»å¯¹åæ */ private String axisAbsolute; /** * è½´ ç¸å¯¹åæ */ private String axisRelative; /** * 轴伺æè´è½½ */ private String axisServoloads; /** * is maintain: 1/0 */ private Boolean isMaintain; /** * is part complete */ private Boolean isPartComplete; public String getMachineName() { return machineName; } public void setMachineName(String machineName) { this.machineName = machineName; } public Boolean getIsMaintain() { return isMaintain; } public void setIsMaintain(Boolean isMaintain) { this.isMaintain = isMaintain; } public Boolean getIsPartComplete() { return isPartComplete; } public void setIsPartComplete(Boolean isPartComplete) { this.isPartComplete = isPartComplete; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Long getMachineId() { return machineId; } public void setMachineId(Long machineId) { this.machineId = machineId; } public Integer getMdcTime() { return mdcTime; } public void setMdcTime(Integer mdcTime) { this.mdcTime = mdcTime; } public Integer getUpdateTime() { return updateTime; } public void setUpdateTime(Integer updateTime) { this.updateTime = updateTime; } public String getState() { return state; } public void setState(String state) { this.state = state; } public String getMode() { return mode; } public void setMode(String mode) { this.mode = mode; } public Integer getOpMode() { return opMode; } public void setOpMode(Integer opMode) { this.opMode = opMode; } public Integer getSpindleSpeed() { return spindleSpeed; } public void setSpindleSpeed(Integer spindleSpeed) { this.spindleSpeed = spindleSpeed; } public Integer getSpindleOverride() { return spindleOverride; } public void setSpindleOverride(Integer spindleOverride) { this.spindleOverride = spindleOverride; } public Integer getSpindleLoad() { return spindleLoad; } public void setSpindleLoad(Integer spindleLoad) { this.spindleLoad = spindleLoad; } public Integer getFeedrateOverride() { return feedrateOverride; } public void setFeedrateOverride(Integer feedrateOverride) { this.feedrateOverride = feedrateOverride; } public Integer getFeedRate() { return feedRate; } public void setFeedRate(Integer feedRate) { this.feedRate = feedRate; } public Integer getRapidFeedOverride() { return rapidFeedOverride; } public void setRapidFeedOverride(Integer rapidFeedOverride) { this.rapidFeedOverride = rapidFeedOverride; } public Integer getRapidFeed() { return rapidFeed; } public void setRapidFeed(Integer rapidFeed) { this.rapidFeed = rapidFeed; } public String getProgName() { return progName; } public void setProgName(String progName) { this.progName = progName; } public String getProgBlock() { return progBlock; } public void setProgBlock(String progBlock) { this.progBlock = progBlock; } public String getAlarmNo() { return alarmNo; } public void setAlarmNo(String alarmNo) { this.alarmNo = alarmNo; } public String getAlarmMsg() { return alarmMsg; } public void setAlarmMsg(String alarmMsg) { this.alarmMsg = alarmMsg; } public Integer getToolNo() { return toolNo; } public void setToolNo(Integer toolNo) { this.toolNo = toolNo; } public String getToolName() { return toolName; } public void setToolName(String toolName) { this.toolName = toolName; } public Integer getOperId() { return operId; } public void setOperId(Integer operId) { this.operId = operId; } public String getAxisNames() { return axisNames; } public void setAxisNames(String axisNames) { this.axisNames = axisNames; } public String getAxisAbsolute() { return axisAbsolute; } public void setAxisAbsolute(String axisAbsolute) { this.axisAbsolute = axisAbsolute; } public String getAxisRelative() { return axisRelative; } public void setAxisRelative(String axisRelative) { this.axisRelative = axisRelative; } public String getAxisServoloads() { return axisServoloads; } public void setAxisServoloads(String axisServoloads) { this.axisServoloads = axisServoloads; } } mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/mapper/MachiningDataMapper.java
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.qianwen.mdc.domain.MachiningData; import com.qianwen.mdc.dto.machine.MachiningDataFullDTO; public interface MachiningDataMapper extends BaseMapper<MachiningData> { @@ -18,4 +19,18 @@ * @return */ List<MachiningData> machineLastDatasAfterUpdateTime(@Param("machineId")Long machineId,@Param("updateTime") int updateTime); /** * æè®¾å¤æå䏿¡ééçæ°æ® * @param machineId 设å¤id * @return */ MachiningDataFullDTO machineLastData(Long machineId); /** * æè®¾å¤æånæ¡ï¼limitéå®ï¼ééçæ°æ® * @param machineId 设å¤id * @return æ°æ®å表 */ MachiningDataFullDTO machineLastData(@Param("machineId")Long machineId,@Param("limit")int limit); } mdc-parent/mdc-showdb-mysql/src/main/resources/mapper/MachiningDataMapper.xml
@@ -31,9 +31,43 @@ <result column="is_maintain" jdbcType="BIT" property="isMaintain" /> <result column="is_part_complete" jdbcType="BIT" property="isPartComplete" /> </resultMap> <resultMap id="DetailResultMap" type="com.qianwen.mdc.dto.machine.MachiningDataFullDTO"> <id column="id" jdbcType="BIGINT" property="id" /> <result column="machine_id" jdbcType="INTEGER" property="machineId" /> <result column="mdc_time" jdbcType="INTEGER" property="mdcTime" /> <result column="update_time" jdbcType="INTEGER" property="updateTime" /> <result column="state" jdbcType="VARCHAR" property="state" /> <result column="mode" jdbcType="VARCHAR" property="mode" /> <result column="op_mode" jdbcType="INTEGER" property="opMode" /> <result column="spindle_speed" jdbcType="INTEGER" property="spindleSpeed" /> <result column="spindle_override" jdbcType="INTEGER" property="spindleOverride" /> <result column="spindle_load" jdbcType="INTEGER" property="spindleLoad" /> <result column="feedrate_override" jdbcType="INTEGER" property="feedrateOverride" /> <result column="feed_rate" jdbcType="INTEGER" property="feedRate" /> <result column="rapid_feed_override" jdbcType="INTEGER" property="rapidFeedOverride" /> <result column="rapid_feed" jdbcType="INTEGER" property="rapidFeed" /> <result column="prog_name" jdbcType="VARCHAR" property="progName" /> <result column="prog_block" jdbcType="VARCHAR" property="progBlock" /> <result column="alarm_no" jdbcType="VARCHAR" property="alarmNo" /> <result column="alarm_msg" jdbcType="VARCHAR" property="alarmMsg" /> <result column="tool_no" jdbcType="INTEGER" property="toolNo" /> <result column="tool_name" jdbcType="VARCHAR" property="toolName" /> <result column="oper_id" jdbcType="INTEGER" property="operId" /> <result column="axis_names" jdbcType="VARCHAR" property="axisNames" /> <result column="axis_absolute" jdbcType="VARCHAR" property="axisAbsolute" /> <result column="axis_relative" jdbcType="VARCHAR" property="axisRelative" /> <result column="axis_servoloads" jdbcType="VARCHAR" property="axisServoloads" /> <result column="is_maintain" jdbcType="BIT" property="isMaintain" /> <result column="is_part_complete" jdbcType="BIT" property="isPartComplete" /> <result column="machine_name" jdbcType="VARCHAR" property="machineName" /> </resultMap> <select id="machineLastDataBeforeTime" resultMap="BaseResultMap"> select id,machine_id,mdc_time,update_time,state,mode,op_mode,spindle_speed,spindle_override,spindle_load,feedrate_override, feed_rate, rapid_feed_override,rapid_feed,prog_name,prog_block,alarm_no,alarm_msg,tool_no,tool_name,oper_id, @@ -50,4 +84,11 @@ from machining_data where machine_id=#{machineId} and update_time >#{updateTime} order by id asc, update_time asc limit 1 </select> <select id="machineLastData" resultMap="DetailResultMap"> select d.id,d.machine_id,mdc_time,update_time,state,mode,op_mode,spindle_speed,spindle_override,spindle_load,feedrate_override, feed_rate, rapid_feed_override,rapid_feed,prog_name,prog_block,alarm_no,alarm_msg,tool_no,tool_name,oper_id, axis_names,axis_absolute,axis_relative,axis_servoloads,is_maintain,is_part_complete, ma.machine_name from machining_data d left join machine_account ma on d.machine_id=ma.machine_id where d.machine_id=#{machineId} order by id desc limit 1 </select> </mapper>