| | |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.ld.igds.common.CoreCommonService; |
| | | import com.ld.igds.constant.FoodVariety; |
| | | import com.ld.igds.inout.ApiInoutService; |
| | | import com.ld.igds.inout.InoutApiConstant; |
| | | import com.ld.igds.inout.InoutConstant; |
| | | import com.ld.igds.inout.dto.ApiInoutData; |
| | | import com.ld.igds.inout.dto.InoutData; |
| | | import com.ld.igds.io.constant.ProtocolEnum; |
| | | import com.ld.igds.models.Depot; |
| | | import com.ld.igds.protocol.bhzn.inout.client.BHZNClientEngine; |
| | | import com.ld.igds.protocol.bhzn.utils.CRC16; |
| | | import com.ld.igds.protocol.bhzn.verb.dto.IoMessage; |
| | | import com.ld.igds.util.BytesUtil; |
| | | import com.ld.io.api.InvokeResult; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.xml.ws.soap.Addressing; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | |
| | | |
| | | // @Autowired |
| | | // private Inoutservice inoutservice; |
| | | |
| | | @Autowired |
| | | private CoreCommonService coreCommonService; |
| | | @Override |
| | | public String getProtocol() { |
| | | return ProtocolEnum.TCP_BHZH_INOUT_V1.getCode(); |
| | |
| | | @Override |
| | | public String noticeLed(ApiInoutData param, InoutData data) { |
| | | // todo |
| | | try{ |
| | | log.info("BHZNæ§å¶LEDå¼å§"); |
| | | BHZNClientEngine test = new BHZNClientEngine( |
| | | "12.10.0.187", 58258); |
| | | test.start(); |
| | | Thread.sleep(3000L); |
| | | |
| | | return null; |
| | | // å§å |
| | | String msg = getMsg(StringUtils.isEmpty(data.getUserName())?" ":data.getUserName(),"0B00"); |
| | | log.info("msg=" + msg); |
| | | InvokeResult result = test.send(BytesUtil.hexStrToBytes(msg)); |
| | | log.info("result=" +result.getMessage()); |
| | | //车ç |
| | | msg = getMsg(StringUtils.isEmpty(data.getPlateNum())?" ":data.getPlateNum(),"0C00"); |
| | | log.info("msg=" + msg); |
| | | result = test.send(BytesUtil.hexStrToBytes(msg)); |
| | | log.info("result=" +result.getMessage()); |
| | | //ä»åº |
| | | Depot depot =coreCommonService.getDepotById(data.getCompanyId(),data.getDepotId()); |
| | | String depotName =" "; |
| | | if(depot != null) |
| | | { |
| | | depotName = depot.getName(); |
| | | } |
| | | msg = getMsg(StringUtils.isEmpty(depotName)?" ":depotName,"0D00"); |
| | | log.info("msg=" + msg); |
| | | result = test.send(BytesUtil.hexStrToBytes(msg)); |
| | | log.info("result=" +result.getMessage()); |
| | | |
| | | //åç§ |
| | | String foodvariety = FoodVariety.getMsg(data.getFoodVariety()); |
| | | msg = getMsg(StringUtils.isEmpty(foodvariety)?" ":foodvariety,"0E00"); |
| | | log.info("msg=" + msg); |
| | | result = test.send(BytesUtil.hexStrToBytes(msg)); |
| | | log.info("result=" +result.getMessage()); |
| | | //æ¯é |
| | | msg = getMsg((data.getFullWeight() == null )?" ":data.getFullWeight().toString(),"0F00"); |
| | | log.info("msg=" + msg); |
| | | result = test.send(BytesUtil.hexStrToBytes(msg)); |
| | | log.info("result=" +result.getMessage()); |
| | | //ç®é |
| | | msg = getMsg((data.getEmptyWeight() == null )?" ":data.getEmptyWeight().toString(),"1000"); |
| | | log.info("msg=" + msg); |
| | | result = test.send(BytesUtil.hexStrToBytes(msg)); |
| | | log.info("result=" +result.getMessage()); |
| | | //åéªç»æ |
| | | msg = getMsg("åæ ¼","1100"); |
| | | log.info("msg=" + msg); |
| | | result = test.send(BytesUtil.hexStrToBytes(msg)); |
| | | log.info("result=" +result.getMessage()); |
| | | |
| | | log.info("BHZNæ§å¶LEDç»æ"); |
| | | |
| | | return result.getMessage(); |
| | | }catch (Exception e){ |
| | | log.error(e.getMessage(),e); |
| | | return "ERROR"; |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | |
| | | public static void main(String[] args) { |
| | | // try{ |
| | | try{ |
| | | // String str1 = "许彬",str2="粤A123456",str3 = "3å·ä»" ,str4 = "å°éº¦",str5="286000",str6 = "30000",str7 ="åæ ¼"; |
| | | // String test = "æç±ä¸èªè½¯ä»¶"; |
| | | // //78340100290000000000000000 1400 0B00 01 02 00 01 0C 00 |
| | | // String start = "FFFFFFFFFF00000000"; |
| | | // String test = "120000.0"; |
| | | // //FF FF FF FF FF FF 00 00 00 00 78 34 01 00 29 BC FD 00 00 00 00 00 00 14 00 11 00 01 02 06 01 0C 00 CE D2 B0 AE D6 D0 BA BD C8 ED BC FE 87 1F A5 |
| | | // String start = "FFFFFFFFFFFF00000000"; |
| | | // String lengh = BytesUtil.tran_LH(BytesUtil.intToHexStr(8+(test.length() * 2))); |
| | | // String msg = "78340100290000000000000000" + lengh+ "0B00010201010C00"; |
| | | // String lengh2 = BytesUtil.tran_LH(BytesUtil.intToHexStr((test.length() * 2))); |
| | | // String msg = "78340100290000000000000000" + lengh+ "100001020101" + lengh2; |
| | | // msg = msg + convertStr(test); |
| | | // msg = msg.toUpperCase(); |
| | | // |
| | |
| | | // msg += "A5"; |
| | | // msg = start +msg; |
| | | // System.out.println(msg); |
| | | // }catch (Exception e){ |
| | | // e.printStackTrace(); |
| | | // } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | Map<String,Object> message = new HashMap<>(); |
| | | message.put("cmd",226); |
| | | message.put("orderId","5009"); |
| | | message.put("result","0"); |
| | | message.put("sign","0000"); |
| | | message.put("stNum",100); |
| | | message.put("version","V1.0000000"); |
| | | Map<String,Object> content = new HashMap<>(); |
| | | content.put("value",new Integer[]{0,1}); |
| | | content.put("LEDValue",new Integer[]{0,1}); |
| | | message.put("content", content); |
| | | System.out.println(JSON.toJSONString(message)); |
| | | // Map<String,Object> message = new HashMap<>(); |
| | | // message.put("cmd",226); |
| | | // message.put("orderId","5009"); |
| | | // message.put("result","0"); |
| | | // message.put("sign","0000"); |
| | | // message.put("stNum",100); |
| | | // message.put("version","V1.0000000"); |
| | | // Map<String,Object> content = new HashMap<>(); |
| | | // content.put("value",new Integer[]{0,1}); |
| | | // content.put("LEDValue",new Integer[]{0,1}); |
| | | // message.put("content", content); |
| | | // System.out.println(JSON.toJSONString(message)); |
| | | |
| | | |
| | | IoMessage message = JSON.parseObject("{Cmd:120}",IoMessage.class); |
| | | System.out.println(message.getCmd()); |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * @param s å符串 |
| | | * @param id 0B00 å符ID |
| | | * @return |
| | | */ |
| | | public static String getMsg(String s ,String id){ |
| | | try{ |
| | | // String str1 = "许彬",str2="粤A123456",str3 = "3å·ä»" ,str4 = "å°éº¦",str5="286000",str6 = "30000",str7 ="åæ ¼"; |
| | | String test = s; |
| | | //FF FF FF FF FF FF 00 00 00 00 78 34 01 00 29 BC FD 00 00 00 00 00 00 14 00 11 00 01 02 06 01 0C 00 CE D2 B0 AE D6 D0 BA BD C8 ED BC FE 87 1F A5 |
| | | String start = "FFFFFFFFFFFF00000000"; |
| | | String lengh = BytesUtil.tran_LH(BytesUtil.intToHexStr(8+(test.length() * 2))); |
| | | String lengh2 = BytesUtil.tran_LH(BytesUtil.intToHexStr((test.length() * 2))); |
| | | String msg = "78340100290000000000000000" + lengh+ id+"01020101" + lengh2; |
| | | msg = msg + convertStr(test); |
| | | msg = msg.toUpperCase(); |
| | | |
| | | // String t = "78 34 01 00 29 BC FD 00 00 00 00 00 00 14 00 01 00 01 02 06 01 0C 00 CE D2 B0 AE D6 D0 BA BD C8 ED BC FE"; |
| | | // t = t.replaceAll(" ",""); |
| | | String check = BytesUtil.tran_LH(BytesUtil.intToHexStr(CRC16.calcCrc16(BytesUtil.hexStrToBytes(msg)))); |
| | | System.out.println(check); |
| | | msg+=check; |
| | | msg += "A5"; |
| | | msg = start +msg; |
| | | //log.info(msg); |
| | | return msg; |
| | | |
| | | }catch (Exception e){ |
| | | log.error(e.getMessage(),e); |
| | | return " "; |
| | | } |
| | | } |
| | | |
| | | //hexToBytesæ¹æ³ï¼åå
è¿å¶å符串转byte[]ï¼ç½ä¸å¾å¤ |
| | | //getRepair0æ¹æ³ï¼è¡¥0çï¼å¾ç®åï¼èªå·±å®ç°å§ |
| | |
| | | * @throws UnsupportedEncodingException |
| | | */ |
| | | public static String convertStr(String msg) throws Exception { |
| | | //å
æå符串ægb2312转æbyteæ°ç» |
| | | byte[] bytes = msg.getBytes("gb2312"); |
| | | StringBuilder gbString = new StringBuilder(); |
| | | |
| | | for (byte b : bytes) |
| | | { |
| | | // åç¨Integerä¸çæ¹æ³ï¼ææ¯ä¸ªbyteè½¬æ¢æ16è¿å¶è¾åº |
| | | String temp = Integer.toHexString(b); |
| | | //夿è¿è¡æªå |
| | | if(temp.length()>=8){ |
| | | temp = temp.substring(6, 8); |
| | | String t = null; |
| | | char[] chars = msg.toCharArray(); |
| | | String s= ""; |
| | | for(int i=0;i<chars.length;i++){ |
| | | t = ""; |
| | | s = msg.substring(i,i+1); |
| | | //å
æå符串ægb2312转æbyteæ°ç» |
| | | byte[] bytes = s.getBytes("gb2312"); |
| | | for (byte b : bytes) |
| | | { |
| | | // åç¨Integerä¸çæ¹æ³ï¼ææ¯ä¸ªbyteè½¬æ¢æ16è¿å¶è¾åº |
| | | String temp = Integer.toHexString(b); |
| | | //夿è¿è¡æªå |
| | | if(temp.length()>=8){ |
| | | temp = temp.substring(6, 8); |
| | | } |
| | | t +=(temp); |
| | | } |
| | | gbString.append(temp); |
| | | if(t.length()<4){ |
| | | for (int k =0;k<4;k++){ |
| | | if(t.length()<4){ |
| | | t = "0"+t; |
| | | } |
| | | } |
| | | } |
| | | gbString.append(t); |
| | | } |
| | | |
| | | return gbString.toString(); |
| | | } |
| | | |
| | | } |