| | |
| | | @PropertyDef(label = "å
³è设å¤éé", description = "é对åééé
置设å¤ï¼å¦æ··æµé£å£ç飿ºãè½´æµé£å£ç飿º") |
| | | private String link; |
| | | |
| | | @Column(name = "LINK_MODBUS_",length = 100) |
| | | @PropertyDef(label = "å
³è设å¤Modbus") |
| | | private String linkModbus; |
| | | |
| | | @Column(name = "EXT1_", length = 20) |
| | | @PropertyDef(label = "æ©å±å段1", description = "æ ¹æ®ä¸å¡éè¦èªå®ä¹åå¨å¼") |
| | | private String ext1; |
| | |
| | | <ClientEvent name="onHide">view.id("dsDevice").getData().cancel();</ClientEvent> |
| | | <Property name="caption">ç¼è¾é¡µé¢</Property> |
| | | <Property name="width">800</Property> |
| | | <Property name="height">450</Property> |
| | | <Buttons> |
| | | <Button> |
| | | <Property name="caption">ç¡®å®</Property> |
| | |
| | | <Property name="property">modbus</Property> |
| | | <Editor/> |
| | | </AutoFormElement> |
| | | <AutoFormElement layoutConstraint="colSpan:2"> |
| | | <Property name="name">linkModbus</Property> |
| | | <Property name="property">linkModbus</Property> |
| | | <Property name="label">飿ºModbus</Property> |
| | | <Editor/> |
| | | </AutoFormElement> |
| | | <Label layoutConstraint="colSpan:2"> |
| | | <Property name="text">modbusè§åï¼å¼å°å-å
³å°å-åå°å-å¼å°ä½-å
³å°ä½-弿
é-å
³æ
éï¼æ å°åç¨N代æ¿</Property> |
| | | <Property name="style"> |
| | |
| | | <Property name="label">夿³¨</Property> |
| | | </PropertyDef> |
| | | <PropertyDef name="ggm"> |
| | | <Property/> |
| | | <Property></Property> |
| | | <Property name="label">å½è§ç </Property> |
| | | </PropertyDef> |
| | | </DataType> |
| | |
| | | <Property></Property> |
| | | <Property name="label">Modbusé
ç½®</Property> |
| | | </PropertyDef> |
| | | <PropertyDef name="linkModbus"> |
| | | <Property/> |
| | | <Property name="label">å
³è设å¤Modbus</Property> |
| | | </PropertyDef> |
| | | <PropertyDef name="ext1"> |
| | | <Property></Property> |
| | | <Property name="label">æ©å±å段1</Property> |
| | |
| | | } |
| | | return modbusMaster; |
| | | |
| | | |
| | | } |
| | | |
| | | /** |
| | |
| | | params.setPort(port); |
| | | //设置为trueï¼ä¼å¯¼è´TimeoutException: request=com.serotonin.modbus4j.ip.encap.EncapMessageRequest@774dfba5", |
| | | //params.setEncapsulated(true); |
| | | master = modbusFactory.createTcpMaster(params, true);// TCP åè®® |
| | | master = modbusFactory.createTcpMaster(params, false);// TCP åè®® |
| | | try { |
| | | //设置è¶
æ¶æ¶é´ |
| | | master.setTimeout(3 * 1000); |
| | | master.setTimeout(2 * 1000); |
| | | //设置éè¿æ¬¡æ° |
| | | master.setRetries(3); |
| | | //åå§å |
| | |
| | | package com.ld.igds.protocol.modbus; |
| | | |
| | | import com.serotonin.modbus4j.BatchRead; |
| | | import com.serotonin.modbus4j.BatchResults; |
| | | import com.serotonin.modbus4j.ModbusMaster; |
| | | import com.serotonin.modbus4j.code.DataType; |
| | | import com.serotonin.modbus4j.exception.ModbusInitException; |
| | | import com.serotonin.modbus4j.exception.ModbusTransportException; |
| | | import com.serotonin.modbus4j.locator.BaseLocator; |
| | | import com.serotonin.modbus4j.msg.ReadCoilsRequest; |
| | | import com.serotonin.modbus4j.msg.ReadCoilsResponse; |
| | | import com.serotonin.modbus4j.msg.ReadDiscreteInputsRequest; |
| | |
| | | import com.serotonin.modbus4j.msg.WriteRegisterResponse; |
| | | import com.serotonin.modbus4j.msg.WriteRegistersRequest; |
| | | import com.serotonin.modbus4j.msg.WriteRegistersResponse; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | |
| | | * @author: Andy |
| | | * @update-time: 2023/8/11 |
| | | */ |
| | | @Slf4j |
| | | @Component |
| | | public class ModbusUtil { |
| | | |
| | |
| | | private ModbusConfig modbusConfig; |
| | | |
| | | |
| | | public boolean[] readCoilStatus(String ip, int port, int offset, int numberOfRegister) throws ModbusTransportException { |
| | | /** |
| | | * 读线å--01 |
| | | * |
| | | * @param ip |
| | | * @param port |
| | | * @param offset |
| | | * @param numberOfRegister |
| | | */ |
| | | public boolean[] readStatus01(String ip, int port, int offset, int numberOfRegister) throws ModbusTransportException { |
| | | |
| | | ModbusMaster master = modbusConfig.getMaster(ip, port); |
| | | ReadCoilsRequest request = new ReadCoilsRequest(slaveId, offset, numberOfRegister); |
| | |
| | | } |
| | | |
| | | /** |
| | | * @Description: 读åå¤å´è®¾å¤è¾å
¥çå¼å
³éï¼ç¸å½äºåè½ç ï¼02H-读离æ£è¾å
¥ç¶æ |
| | | * @Description: 02H-读离æ£è¾å
¥é |
| | | * @Param: [ip, offset, numberOfRegister] |
| | | * @return: boolean[] |
| | | * @throws: |
| | | * @Author: Ricardo.Liu |
| | | * @Date: 2020/5/8 |
| | | */ |
| | | public boolean[] readInputStatus(String ip, int port, int offset, int numberOfRegister) throws ModbusTransportException { |
| | | |
| | | public boolean[] readStatus02(String ip, int port, int offset, int numberOfRegister) throws ModbusTransportException { |
| | | ModbusMaster master = modbusConfig.getMaster(ip, port); |
| | | ReadDiscreteInputsRequest request = new ReadDiscreteInputsRequest(slaveId, offset, numberOfRegister); |
| | | ReadDiscreteInputsResponse response = (ReadDiscreteInputsResponse) master.send(request); |
| | | boolean[] booleans = response.getBooleanData(); |
| | | |
| | | return valueRegroup(numberOfRegister, booleans); |
| | | } |
| | | |
| | | /** |
| | | * @Description: 读åä¿æå¯å卿°æ®ï¼ç¸å½äºåè½ç ï¼03H-è¯»ä¿æå¯åå¨ |
| | | * @Description: 03H-è¯»ä¿æå¯åå¨ |
| | | * @Param: [ip, offset, numberOfRegister] |
| | | * @return: short[] |
| | | * @throws: |
| | | * @Author: Ricardo.Liu |
| | | * @Date: 2020/5/8 |
| | | */ |
| | | public short[] readHoldingRegister(String ip, int port, int offset, int numberOfRegister) throws ModbusTransportException { |
| | | public short[] readStatus03(String ip, int port, int offset, int numberOfRegister) throws ModbusTransportException { |
| | | |
| | | ModbusMaster master = modbusConfig.getMaster(ip, port); |
| | | ReadHoldingRegistersRequest request = new ReadHoldingRegistersRequest(slaveId, offset, numberOfRegister); |
| | |
| | | } |
| | | |
| | | /** |
| | | * @Description: 读åå¤å´è®¾å¤è¾å
¥çæ°æ®ï¼ç¸å½äºåè½ç ï¼04H-读è¾å
¥å¯åå¨ |
| | | * @Description: 04H-读è¾å
¥å¯åå¨ |
| | | * @Param: [ip, offset, numberOfRegister] |
| | | * @return: short[] |
| | | * @throws: |
| | | * @Author: Ricardo.Liu |
| | | * @Date: 2020/5/8 |
| | | */ |
| | | public short[] readInputRegisters(String ip, int port, int offset, int numberOfRegister) throws ModbusTransportException { |
| | | |
| | | public short[] readStatus04(String ip, int port, int offset, int numberOfRegister) throws ModbusTransportException { |
| | | ModbusMaster master = modbusConfig.getMaster(ip, port); |
| | | ReadInputRegistersRequest request = new ReadInputRegistersRequest(slaveId, offset, numberOfRegister); |
| | | ReadInputRegistersResponse response = (ReadInputRegistersResponse) master.send(request); |
| | | return response.getShortData(); |
| | | } |
| | | |
| | | |
| | | public BatchResults<Integer> readBatch(String ip, int port) throws Exception { |
| | | ModbusMaster master = modbusConfig.getMaster(ip, port); |
| | | |
| | | if (null == master) return null; |
| | | |
| | | return readBatch(master); |
| | | } |
| | | |
| | | /** |
| | | * æ¹é读åå¤ä¸ª |
| | | * |
| | | * @param master |
| | | * @throws ModbusTransportException |
| | | */ |
| | | public BatchResults<Integer> readBatch(ModbusMaster master) throws Exception { |
| | | BatchRead<Integer> batch = new BatchRead<>(); |
| | | batch.addLocator(0, BaseLocator.holdingRegister(1, 1, DataType.TWO_BYTE_INT_SIGNED)); |
| | | batch.addLocator(1, BaseLocator.inputStatus(1, 0)); |
| | | batch.setContiguousRequests(true); |
| | | BatchResults<Integer> results = master.send(batch); |
| | | log.info("batchRead:" + results.getValue(0)); |
| | | log.info("batchRead:" + results.getValue(1)); |
| | | |
| | | return results; |
| | | } |
| | | |
| | | /** |
| | |
| | | * @Param: [ip, writeOffset, writeValue] |
| | | * @return: boolean |
| | | * @throws: |
| | | * @Author: Ricardo.Liu |
| | | * @Date: 2020/5/8 |
| | | */ |
| | | public boolean writeCoil(String ip, int port, int writeOffset, boolean writeValue) throws ModbusTransportException { |
| | | public boolean writeValue05(String ip, int port, int writeOffset, boolean writeValue) throws ModbusTransportException { |
| | | |
| | | ModbusMaster tcpMaster = modbusConfig.getMaster(ip, port); |
| | | WriteCoilRequest request = new WriteCoilRequest(slaveId, writeOffset, writeValue); |
| | |
| | | * @Param: [ip, startOffset, data] |
| | | * @return: boolean |
| | | * @throws: |
| | | * @Author: Ricardo.Liu |
| | | * @Date: 2020/5/8 |
| | | */ |
| | | public boolean writeCoils(String ip, int port, int startOffset, boolean[] data) throws ModbusTransportException { |
| | | public boolean writeValues15(String ip, int port, int startOffset, boolean[] data) throws ModbusTransportException { |
| | | |
| | | ModbusMaster tcpMaster = modbusConfig.getMaster(ip, port); |
| | | WriteCoilsRequest request = new WriteCoilsRequest(slaveId, startOffset, data); |
| | |
| | | * @Param: [ip, writeOffset, writeValue] |
| | | * @return: boolean |
| | | * @throws: |
| | | * @Author: Ricardo.Liu |
| | | * @Date: 2020/5/8 |
| | | */ |
| | | public boolean writeHoldingRegister(String ip, int port,int writeOffset, short writeValue) throws ModbusTransportException, ModbusInitException { |
| | | public boolean writeValue06(String ip, int port, int writeOffset, short writeValue) throws ModbusTransportException, ModbusInitException { |
| | | |
| | | ModbusMaster tcpMaster = modbusConfig.getMaster(ip, port); |
| | | WriteRegisterRequest request = new WriteRegisterRequest(slaveId, writeOffset, writeValue); |
| | |
| | | * @Param: [ip, startOffset, data] |
| | | * @return: boolean |
| | | * @throws: |
| | | * @Author: Ricardo.Liu |
| | | * @Date: 2020/5/8 |
| | | */ |
| | | public boolean writeHoldingRegisters(String ip,int port, int startOffset, short[] data) throws ModbusTransportException, ModbusInitException { |
| | | public boolean writeValues16(String ip, int port, int startOffset, short[] data) throws ModbusTransportException, ModbusInitException { |
| | | |
| | | ModbusMaster tcpMaster = modbusConfig.getMaster(ip, port); |
| | | WriteRegistersRequest request = new WriteRegistersRequest(slaveId, startOffset, data); |
| | |
| | | * @Param: [numberOfBits, values] |
| | | * @return: boolean[] |
| | | * @throws: |
| | | * @Author: Ricardo.Liu |
| | | * @Date: 2020/5/8 |
| | | */ |
| | | private boolean[] valueRegroup(int numberOfBits, boolean[] values) { |
| | | boolean[] bs = new boolean[numberOfBits]; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ld.igds.protocol.modbus; |
| | | |
| | | import com.ld.igds.util.ContextUtil; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | public class ServerUtil { |
| | | |
| | | |
| | | /** |
| | | * ç¨æ¥ç¼åï¼TCPè®¾å¤æ§è¡æ¶é´è®°å½key = TCPå¯ä¸æ å¿ï¼value = å½åæ§è¡æ¶é´ |
| | | */ |
| | | public static Map<String, Long> contextExeModbusTcp = new HashMap<>(); |
| | | |
| | | |
| | | /** |
| | | * 设å¤ç¶æè¿åçç»æ KEY= companyId + serId + deviceCode value = ç»æç¶æ |
| | | */ |
| | | private static Map<String, String> contextStatusMap = new HashMap<>(); |
| | | |
| | | |
| | | /** |
| | | * 设å¤è§£æåçè£
æ³åæ¾ |
| | | * |
| | | * @param serId |
| | | * @param deviceCode 设å¤ééID |
| | | * @param status ä¸èè设å¤ç±»åï¼åªå¨éé䏿 è®°æ¯OPENæè
CLOSEå³å¯ |
| | | */ |
| | | public static void add2StatusMap(String companyId, String serId, String deviceCode, String status) { |
| | | contextStatusMap.put(ContextUtil.buildDeviceStatusKey(companyId, serId, deviceCode), status); |
| | | } |
| | | |
| | | public static Map<String, String> getStatusMap() { |
| | | return contextStatusMap; |
| | | } |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ld.igds.protocol.modbus.command; |
| | | |
| | | import com.ld.igds.common.CoreDeviceService; |
| | | import com.ld.igds.io.constant.OrderRespEnum; |
| | | import com.ld.igds.io.notify.NotifyWebInvoker; |
| | | import com.ld.igds.io.request.DeviceControlRequest; |
| | | import com.ld.igds.protocol.modbus.ServerUtil; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.scheduling.annotation.Async; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | /** |
| | | * è§£æ |
| | | */ |
| | | @Slf4j |
| | | @Component |
| | | public class AnalysisService { |
| | | |
| | | @Resource |
| | | private CoreDeviceService deviceService; |
| | | @Resource |
| | | private NotifyWebInvoker notifyInvoker; |
| | | |
| | | |
| | | /** |
| | | * 弿¥æ´æ°è®¾å¤ç¶æï¼ |
| | | * |
| | | * @param request |
| | | * @param sleepTime å»¶è¿æ§è¡æ¶é´=毫ç§å¼ï¼å¦æ==0 ï¼è¡¨ç¤ºä¸å»¶è¿ |
| | | */ |
| | | @Async |
| | | public void analysisDevice(DeviceControlRequest request, long sleepTime) { |
| | | |
| | | try { |
| | | if (sleepTime > 0) { |
| | | Thread.sleep(sleepTime); |
| | | } |
| | | |
| | | deviceService.updateStatus(request.getCompanyId(), request.getSerId(), ServerUtil.getStatusMap()); |
| | | |
| | | notifyInvoker.notifyAnalysisStatusSuccess(request.getCompanyId(), request.getSerId(), OrderRespEnum.MSG_SUCCESS, "设å¤ç¶ææ¥è¯¢æåå¹¶å®æè§£æï¼"); |
| | | |
| | | } catch (Exception e) { |
| | | log.error("---MODBUS-TCP-ç¶æè§£æå¼å¸¸{}", e); |
| | | } |
| | | } |
| | | } |
| | |
| | | import com.ld.igds.io.response.DeviceControlResponse; |
| | | import com.ld.igds.models.Device; |
| | | import com.ld.igds.protocol.modbus.ModbusUtil; |
| | | import com.ld.igds.protocol.modbus.ServerUtil; |
| | | import com.ld.igds.protocol.modbus.data.ModbusTcp; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | |
| | | @Resource |
| | | private CoreDeviceService deviceService; |
| | | @Resource |
| | | private AnalysisService analysisService; |
| | | @Resource |
| | | private ModbusUtil modbusUtil; |
| | | |
| | | |
| | | @Override |
| | | public String getProtocol() { |
| | |
| | | return new DeviceControlResponse(OrderRespEnum.ORDER_ERROR.getCode(), "没æéè¦æ§è¡ç设å¤"); |
| | | } |
| | | |
| | | |
| | | try { |
| | | |
| | | |
| | | Device device; |
| | | ModbusTcp modbusTcp; |
| | | String[] addr; |
| | | String temp; |
| | | ModbusTcp modbusTcpLink = null; |
| | | String temp = Constant.YN_N; |
| | | int addrExe = 65535; |
| | | for (ExeDevice exeDevice : deviceList) { |
| | | device = deviceService.getCacheDeviceById(exeDevice.getCompanyId(), exeDevice.getId()); |
| | |
| | | |
| | | if (null == device.getModbus()) continue; |
| | | |
| | | modbusTcp = new ModbusTcp(); |
| | | modbusTcp = new ModbusTcp(device.getModbus()); |
| | | modbusTcp.setIp(request.getIp()); |
| | | modbusTcp.setPort(request.getPort()); |
| | | modbusTcp.setDeviceId(device.getId()); |
| | | modbusTcp.setDeviceCode(device.getPassCode() + ""); |
| | | modbusTcp.setSerId(request.getSerId()); |
| | | modbusTcp.setCompanyId(request.getCompanyId()); |
| | | |
| | | //modbusè§åï¼å¼å°å-å
³å°å-åå°å-å¼å°ä½-å
³å°ä½-弿
é-å
³æ
éï¼æ å°åç¨Nä»£æ¿ |
| | | addr = device.getModbus().split("-"); |
| | | temp = addr[0]; |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrOpen(temp); |
| | | temp = addr[1]; |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrClose(temp); |
| | | temp = addr[2]; |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrStop(temp); |
| | | temp = addr[3]; |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrOpenEnd(temp); |
| | | temp = addr[4]; |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrCloseEnd(temp); |
| | | temp = addr[5]; |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrOpenError(temp); |
| | | temp = addr[6]; |
| | | if (!Constant.YN_N.equals(temp)) modbusTcp.setAddrCloseError(temp); |
| | | |
| | | if (null != device.getLinkModbus()) { |
| | | modbusTcpLink = new ModbusTcp(device.getLinkModbus()); |
| | | modbusTcpLink.setIp(request.getIp()); |
| | | modbusTcpLink.setPort(request.getPort()); |
| | | modbusTcpLink.setDeviceCode(device.getLink()); |
| | | modbusTcpLink.setSerId(request.getSerId()); |
| | | modbusTcpLink.setCompanyId(request.getCompanyId()); |
| | | } |
| | | |
| | | //æ ¹æ®è®¾å¤ç®æ ç®æ ç¶æï¼éæ©éè¦æ§è¡çéé |
| | | if (DeviceStatus.CLOSE.getCode().equals(device.getTargetStatus())) { |
| | | addrExe = Integer.valueOf(modbusTcp.getAddrClose()); |
| | | temp = modbusTcp.getAddrClose(); |
| | | } |
| | | |
| | | if(DeviceStatus.OPEN.getCode().equals(device.getTargetStatus())){ |
| | | addrExe = Integer.valueOf(modbusTcp.getAddrOpen()); |
| | | temp = modbusTcp.getAddrOpen(); |
| | | } |
| | | |
| | | if (null == modbusTcpLink) { |
| | | //æ ¹æ®è®¾å¤ç®æ ç¶æï¼è°ç¨MODBUSæ§è¡ |
| | | addrExe = Integer.valueOf(temp) - 1; |
| | | modbusTcp.setAddrExe(addrExe); |
| | | doExe(modbusTcp, device.getTargetStatus()); |
| | | continue; |
| | | } |
| | | |
| | | |
| | | //TODO å
¶ä»ç¶æå¾
å® |
| | | //妿æ¯å¼é£æº |
| | | if (DeviceStatus.F_OPEN.getCode().equals(device.getTargetStatus())) { |
| | | |
| | | //æ ¹æ®è®¾å¤ç®æ ç¶æï¼è°ç¨MODBUSæ§è¡ |
| | | modbusUtil.writeCoil(modbusTcp.getIp(), modbusTcp.getPort(),addrExe, true); |
| | | //å
å¼çªå£ |
| | | temp = modbusTcp.getAddrOpen(); |
| | | addrExe = Integer.valueOf(temp) - 1; |
| | | modbusTcp.setAddrExe(addrExe); |
| | | |
| | | doExe(modbusTcp, DeviceStatus.OPEN.getCode()); |
| | | |
| | | |
| | | Thread.sleep(300); |
| | | |
| | | //åå¼é£æº |
| | | temp = modbusTcpLink.getAddrOpen(); |
| | | addrExe = Integer.valueOf(temp) - 1; |
| | | modbusTcpLink.setAddrExe(addrExe); |
| | | |
| | | doExe(modbusTcpLink, DeviceStatus.OPEN.getCode()); |
| | | } |
| | | |
| | | //妿å
³é£æº |
| | | if(DeviceStatus.F_CLOSE.equals(device.getTargetStatus())){ |
| | | temp = modbusTcpLink.getAddrClose(); |
| | | addrExe = Integer.valueOf(temp) - 1; |
| | | modbusTcpLink.setAddrExe(addrExe); |
| | | |
| | | doExe(modbusTcpLink, DeviceStatus.CLOSE.getCode()); |
| | | } |
| | | |
| | | |
| | | //妿å¼çª |
| | | if(DeviceStatus.W_OPEN.equals(device.getTargetStatus())){ |
| | | temp = modbusTcp.getAddrOpen(); |
| | | addrExe = Integer.valueOf(temp) - 1; |
| | | modbusTcp.setAddrExe(addrExe); |
| | | |
| | | doExe(modbusTcp, device.getTargetStatus()); |
| | | } |
| | | |
| | | //妿æ¯å
³çªæ· |
| | | if(DeviceStatus.W_CLOSE.equals(device.getTargetStatus())){ |
| | | |
| | | //å
å
³é£æº |
| | | temp = modbusTcpLink.getAddrClose(); |
| | | addrExe = Integer.valueOf(temp) - 1; |
| | | modbusTcpLink.setAddrExe(addrExe); |
| | | doExe(modbusTcpLink, DeviceStatus.CLOSE.getCode()); |
| | | |
| | | Thread.sleep(300); |
| | | |
| | | //å¨å
³çªæ· |
| | | temp = modbusTcp.getAddrClose(); |
| | | addrExe = Integer.valueOf(temp) - 1; |
| | | modbusTcp.setAddrExe(addrExe); |
| | | |
| | | doExe(modbusTcp, DeviceStatus.CLOSE.getCode()); |
| | | } |
| | | |
| | | } |
| | | } catch (Exception e) { |
| | | |
| | | log.error("è°ç¨MODBUS-TCPæ§è¡å¼å¸¸ï¼{}", e); |
| | | return new DeviceControlResponse(OrderRespEnum.ORDER_ERROR.getCode(), "åå°æ§è¡å¼å¸¸ï¼" + e.getMessage()); |
| | | } |
| | | |
| | | return new DeviceControlResponse(OrderRespEnum.ORDER_SUCCESS); |
| | | } |
| | | |
| | | private void doExe(ModbusTcp modbusTcp, String targetStatus) throws Exception { |
| | | boolean exeResult = modbusUtil.writeValue05(modbusTcp.getIp(), modbusTcp.getPort(), modbusTcp.getAddrExe(), true); |
| | | if (exeResult) { |
| | | ServerUtil.add2StatusMap(modbusTcp.getCompanyId(), modbusTcp.getSerId(), modbusTcp.getDeviceCode(), targetStatus); |
| | | } |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public DeviceControlResponse closeAll(DeviceControlRequest request) { |
| | | return null; |
| | | return new DeviceControlResponse(OrderRespEnum.ORDER_ERROR.getCode(), "ç»ç«¯æä½ä¸æ¯æ"); |
| | | } |
| | | |
| | | @Override |
| | | public DeviceControlResponse queryStatus(DeviceControlRequest request) { |
| | | return null; |
| | | try { |
| | | List<Device> list = deviceService.getCacheDeviceBySerId(request.getCompanyId(), request.getSerId()); |
| | | |
| | | if (null == list || list.isEmpty()) { |
| | | return new DeviceControlResponse(OrderRespEnum.ORDER_ERROR.getCode(), "æªè·åå°è®¾å¤å表信æ¯"); |
| | | } |
| | | |
| | | ModbusTcp modbusTcp; |
| | | ModbusTcp modbusTcpLink; |
| | | int addrStart; |
| | | boolean[] result; |
| | | for (Device device : list) { |
| | | if (null == device.getModbus()) continue; |
| | | modbusTcp = new ModbusTcp(device.getModbus()); |
| | | modbusTcp.setIp(request.getIp()); |
| | | modbusTcp.setPort(request.getPort()); |
| | | modbusTcp.setDeviceCode(device.getPassCode() + ""); |
| | | modbusTcp.setSerId(request.getSerId()); |
| | | |
| | | addrStart = Integer.valueOf(modbusTcp.getAddrOpenEnd()) - 1; |
| | | |
| | | result = modbusUtil.readStatus02(modbusTcp.getIp(), modbusTcp.getPort(), addrStart, 2); |
| | | log.debug("---------读åç¶æ------{}--{}", modbusTcp.getDeviceCode(), result.toString()); |
| | | analysisResult(device.getCompanyId(), device.getSerId(), modbusTcp.getDeviceCode(), result); |
| | | |
| | | if (null != device.getLinkModbus()) { |
| | | Thread.sleep(300); |
| | | modbusTcpLink = new ModbusTcp(device.getModbus()); |
| | | modbusTcpLink.setIp(request.getIp()); |
| | | modbusTcpLink.setPort(request.getPort()); |
| | | modbusTcpLink.setSerId(request.getSerId()); |
| | | modbusTcpLink.setDeviceCode(device.getLink()); |
| | | addrStart = Integer.valueOf(modbusTcpLink.getAddrOpenEnd()) - 1; |
| | | result = modbusUtil.readStatus02(modbusTcpLink.getIp(), modbusTcpLink.getPort(), addrStart, 2); |
| | | log.debug("---------读åç¶æ-LINK------{}--{}", modbusTcpLink.getDeviceCode(), result.toString()); |
| | | |
| | | analysisResult(device.getCompanyId(), device.getSerId(), modbusTcpLink.getDeviceCode(), result); |
| | | } |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | log.error("è°ç¨MODBUS-TCPæ§è¡å¼å¸¸ï¼{}", e); |
| | | return new DeviceControlResponse(OrderRespEnum.ORDER_ERROR.getCode(), "åå°æ§è¡å¼å¸¸ï¼" + e.getMessage()); |
| | | } |
| | | |
| | | analysisService.analysisDevice(request, 3000); |
| | | |
| | | return new DeviceControlResponse(OrderRespEnum.ORDER_SUCCESS); |
| | | } |
| | | |
| | | /** |
| | | * è¿å两ä½ï¼ç¬¬ä¸ä½æ¯å¼å°ä½ï¼ç¬¬äºä½æ¯å
³å°ä½ï¼æ ¹æ®è¿ä¸¤ä¸ªæ 记确认å½å设å¤çç¶æ |
| | | * |
| | | * @param deviceCode |
| | | * @param result |
| | | */ |
| | | private void analysisResult(String companyId, String serId, String deviceCode, boolean[] result) { |
| | | if (result[0]) { |
| | | ServerUtil.add2StatusMap(companyId, serId, deviceCode, DeviceStatus.OPEN.getCode()); |
| | | } |
| | | if (result[1]) { |
| | | ServerUtil.add2StatusMap(companyId, serId, deviceCode, DeviceStatus.CLOSE.getCode()); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public DeviceControlResponse tempControl(TempControlRequest request) { |
| | | return null; |
| | | return new DeviceControlResponse(OrderRespEnum.ORDER_ERROR.getCode(), "ç»ç«¯æä½æªæ¥å
¥å½åæ§å¶"); |
| | | } |
| | | |
| | | @Override |
| | | public DeviceControlResponse airAutoControl(DeviceAutoControlRequest request) { |
| | | |
| | | |
| | | return null; |
| | | return new DeviceControlResponse(OrderRespEnum.ORDER_ERROR.getCode(), "ç»ç«¯æä½æªæ¥å
¥å½åæ§å¶"); |
| | | } |
| | | |
| | | @Override |
| | | public DeviceControlResponse n2AutoControl(DeviceAutoControlRequest request) { |
| | | |
| | | return null; |
| | | return new DeviceControlResponse(OrderRespEnum.ORDER_ERROR.getCode(), "ç»ç«¯æä½æªæ¥å
¥å½åæ§å¶"); |
| | | } |
| | | } |
| | |
| | | package com.ld.igds.protocol.modbus.data; |
| | | |
| | | import com.ld.igds.constant.Constant; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | |
| | | @Data |
| | | public class ModbusTcp { |
| | | |
| | | private String deviceId; |
| | | |
| | | private String companyId; |
| | | |
| | | private String deviceCode; |
| | | |
| | | private String serId; |
| | | |
| | |
| | | /** |
| | | * å¼å°å |
| | | **/ |
| | | private String addrOpen = "65535"; |
| | | private String addrOpen = Constant.YN_N; |
| | | |
| | | /** |
| | | * å
³å°å |
| | | **/ |
| | | private String addrClose = "65535"; |
| | | private String addrClose = Constant.YN_N; |
| | | |
| | | /** |
| | | * åå°å |
| | | **/ |
| | | private String addrStop = "65535"; |
| | | private String addrStop = Constant.YN_N; |
| | | |
| | | /** |
| | | * å¼å°ä½å°å |
| | | **/ |
| | | private String addrOpenEnd = "65535"; |
| | | private String addrOpenEnd = Constant.YN_N; |
| | | |
| | | /** |
| | | * å
³å°ä½å°å |
| | | **/ |
| | | private String addrCloseEnd = "65535"; |
| | | private String addrCloseEnd = Constant.YN_N; |
| | | |
| | | /** |
| | | * 弿
éå°å |
| | | **/ |
| | | private String addrOpenError = "65535"; |
| | | private String addrOpenError = Constant.YN_N; |
| | | |
| | | /** |
| | | * å
³æ
éå°å |
| | | **/ |
| | | private String addrCloseError = "65535"; |
| | | private String addrCloseError = Constant.YN_N; |
| | | |
| | | private int addrExe = 65535; |
| | | |
| | | |
| | | public ModbusTcp() { |
| | | super(); |
| | | } |
| | | |
| | | public ModbusTcp(String modbusStr) { |
| | | //modbusè§åï¼å¼å°å-å
³å°å-åå°å-å¼å°ä½-å
³å°ä½-弿
é-å
³æ
éï¼æ å°åç¨Nä»£æ¿ |
| | | String[] addr = modbusStr.split("-"); |
| | | this.addrOpen = addr[0]; |
| | | this.addrClose = addr[1]; |
| | | this.addrStop = addr[2]; |
| | | this.addrOpenEnd = addr[3]; |
| | | this.addrCloseEnd = addr[4]; |
| | | this.addrOpenError = addr[5]; |
| | | this.addrCloseError = addr[6]; |
| | | } |
| | | // |
| | | // public ModbusTcp(String modbusStr) { |
| | | // //modbusè§åï¼å¼å°å-å
³å°å-åå°å-å¼å°ä½-å
³å°ä½-弿
é-å
³æ
éï¼æ å°åç¨Nä»£æ¿ |
| | | // String[] addr = modbusStr.split("-"); |
| | | // String temp = addr[0]; |
| | | // if (!Constant.YN_N.equals(temp)) this.addrOpen = temp; |
| | | // temp = addr[1]; |
| | | // if (!Constant.YN_N.equals(temp)) this.addrClose = temp; |
| | | // temp = addr[2]; |
| | | // if (!Constant.YN_N.equals(temp)) this.addrStop = temp; |
| | | // temp = addr[3]; |
| | | // if (!Constant.YN_N.equals(temp)) this.addrOpenEnd = temp; |
| | | // temp = addr[4]; |
| | | // if (!Constant.YN_N.equals(temp)) this.addrCloseEnd = temp; |
| | | // temp = addr[5]; |
| | | // if (!Constant.YN_N.equals(temp)) this.addrOpenError = temp; |
| | | // temp = addr[6]; |
| | | // if (!Constant.YN_N.equals(temp)) this.addrCloseError = temp; |
| | | // } |
| | | } |
| | |
| | | deptId = ContextUtil.subDeptId(user); |
| | | } |
| | | |
| | | // è·åå½åç¨æ·æå¨çååºåç§° |
| | | // DefaultDept dept = commonManager.getSubDept(user, deptId); |
| | | // view.addObject("dept", dept); |
| | | |
| | | view.addObject("deptId", deptId); |
| | | |
| | | // è·åå½åé¨é¨ï¼ææä»åºå表 |
| | |
| | | import com.ld.igds.common.CoreSerService; |
| | | import com.ld.igds.common.DepotStatusService; |
| | | import com.ld.igds.common.dto.DepotSerData; |
| | | import com.ld.igds.constant.*; |
| | | import com.ld.igds.constant.BizType; |
| | | import com.ld.igds.constant.DepotType; |
| | | import com.ld.igds.constant.DeviceType; |
| | | import com.ld.igds.constant.RespCodeEnum; |
| | | import com.ld.igds.data.PageResponse; |
| | | import com.ld.igds.io.RemoteControlService; |
| | | import com.ld.igds.io.RemoteManager; |
| | |
| | | import com.ld.igds.util.ContextUtil; |
| | | import com.ld.igds.verb.AreationModel; |
| | | import com.ld.igds.verb.dto.VerbParam; |
| | | import com.ld.igds.verb.service.CoreAreationService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | |
| | | @Component |
| | | public class VerbManager { |
| | | |
| | | @Autowired |
| | | @Resource |
| | | private CoreCommonService coreCommonService; |
| | | @Autowired |
| | | @Resource |
| | | private CoreDeviceService coreDeviceService; |
| | | @Autowired |
| | | @Resource |
| | | private ExeOrderService exeOrderService; |
| | | @Autowired |
| | | @Resource |
| | | private RemoteManager remoteManager; |
| | | @Autowired |
| | | @Resource |
| | | private CoreSerService coreSerService; |
| | | @Autowired |
| | | private CoreAreationService areationService; |
| | | @Autowired |
| | | @Resource |
| | | private DepotStatusService depotCheckService; |
| | | |
| | | private RemoteControlService remoteControlService; |
| | |
| | | // è·ååæºä¿¡æ¯ |
| | | DeviceSer deviceSer = coreSerService.getCacheSer(param.getCompanyId(), serId); |
| | | |
| | | if (Constant.YN_N.equals(deviceSer.getStatus())) { |
| | | return new DeviceControlResponse( |
| | | OrderRespEnum.ORDER_ERROR.getCode(), |
| | | "å½åè®¾å¤æå±æ§å¶æ[" + deviceSer.getName() + "]ä¸å¨çº¿ï¼æ§è¡å¤±è´¥ã"); |
| | | } |
| | | // if (Constant.YN_N.equals(deviceSer.getStatus())) { |
| | | // return new DeviceControlResponse( |
| | | // OrderRespEnum.ORDER_ERROR.getCode(), |
| | | // "å½åè®¾å¤æå±æ§å¶æ[" + deviceSer.getName() + "]ä¸å¨çº¿ï¼æ§è¡å¤±è´¥ã"); |
| | | // } |
| | | |
| | | DeviceControlRequest request = new DeviceControlRequest(); |
| | | request.setDepotId(param.getDepotId()); |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <RuleSet version="1.1"><PackageInfos> |
| | | <PackageInfo name="dorado-core" version="7.6.0.2.190128.1750"/> |
| | | <PackageInfo name="dorado-uploader" version="1.0.20-SNAPSHOT"/> |
| | | <PackageInfo name="bdf2-orm" version="2.1.0"/> |
| | | <PackageInfo name="bdf2-core" version="2.0.9"/> |
| | | <PackageInfo name="bdf2-job" version="2.0.5-SNAPSHOT"/> |
| | | <PackageInfo name="dorado-uploader" version="1.0.20-SNAPSHOT"/> |
| | | <PackageInfo name="dorado-skin-sky" version="2.0.2"/> |
| | | <PackageInfo name="bdf2-job" version="2.0.5-SNAPSHOT"/> |
| | | <PackageInfo name="dorado-intro" version="0.2.1.140715.2255"/> |
| | | <PackageInfo name="bdf2-swfviewer" version="2.0.6-SNAPSHOT"/> |
| | | <PackageInfo name="bdf2-export" version="2.0.8"/> |
| | |
| | | <Prop name="verticalText" type="boolean"/></Props><Children><Child rule="Tab" name="Tab" aggregated="true" public="false"></Child></Children></Rule><Rule name="ToolBar" parents="com.bstek.dorado.view.widget.Control" label="ToolBar" type="com.bstek.dorado.view.widget.base.toolbar.ToolBar" sortFactor="2023" category="General" icon="/com/bstek/dorado/view/widget/base/toolbar/ToolBar.png" clientTypes="desktop"><Props> |
| | | <Prop name="fixRight" type="boolean"/> |
| | | <Prop name="height" visible="false"/> |
| | | <Prop name="showMenuOnHover" defaultValue="false" type="boolean"/></Props><Children><Child rule="Fill" name="Fill" aggregated="true"></Child><Child rule="MenuButton" name="MenuButton" aggregated="true"></Child><Child rule="com.bstek.dorado.view.widget.base.toolbar.Separator" name="Separator" aggregated="true"></Child><Child rule="com.bstek.dorado.view.widget.base.toolbar.Button" name="ToolBarButton" aggregated="true"></Child><Child rule="com.bstek.dorado.view.widget.base.toolbar.Label" name="ToolBarLabel" aggregated="true"></Child><Child rule="com.bstek.dorado.view.widget.Control" name="Items" aggregated="true"></Child></Children></Rule><Rule name="SplitPanel" parents="com.bstek.dorado.view.widget.Control" label="SplitPanel" type="com.bstek.dorado.view.widget.base.SplitPanel" sortFactor="2024" category="General" icon="/com/bstek/dorado/view/widget/base/SplitPanel.png" clientTypes="desktop"><Props> |
| | | <Prop name="showMenuOnHover" defaultValue="false" type="boolean"/></Props><Children><Child rule="com.bstek.dorado.view.widget.base.toolbar.Button" name="ToolBarButton" aggregated="true"></Child><Child rule="Separator" name="Separator" aggregated="true"></Child><Child rule="com.bstek.dorado.view.widget.base.toolbar.Label" name="ToolBarLabel" aggregated="true"></Child><Child rule="MenuButton" name="MenuButton" aggregated="true"></Child><Child rule="Fill" name="Fill" aggregated="true"></Child><Child rule="com.bstek.dorado.view.widget.Control" name="Items" aggregated="true"></Child></Children></Rule><Rule name="SplitPanel" parents="com.bstek.dorado.view.widget.Control" label="SplitPanel" type="com.bstek.dorado.view.widget.base.SplitPanel" sortFactor="2024" category="General" icon="/com/bstek/dorado/view/widget/base/SplitPanel.png" clientTypes="desktop"><Props> |
| | | <Prop name="animate" type="java.lang.Boolean"/> |
| | | <Prop name="collapseBothSide" defaultValue="false" type="boolean"/> |
| | | <Prop name="collapseable" defaultValue="true" type="boolean"/> |
| | |
| | | <ClientEvent name="onTabContextMenu" parameters="self,arg"/> |
| | | <ClientEvent name="onTabChange" parameters="self,arg"/> |
| | | <ClientEvent name="onTabRemove" parameters="self,arg"/> |
| | | <ClientEvent name="beforeTabChange" parameters="self,arg"/></ClientEvents></Rule><Rule name="Fill" parents="com.bstek.dorado.view.widget.Control" label="Fill" type="com.bstek.dorado.view.widget.base.toolbar.Fill" scope="protected" category="ToolBar" icon="/com/bstek/dorado/view/widget/base/toolbar/Fill.png" clientTypes="desktop"></Rule><Rule name="MenuButton" parents="Button" label="MenuButton" nodeName="MenuButton" type="com.bstek.dorado.view.widget.base.toolbar.MenuButton" scope="protected" category="ToolBar" icon="/com/bstek/dorado/view/widget/base/toolbar/MenuButton.png" clientTypes="desktop"><Props> |
| | | <ClientEvent name="beforeTabChange" parameters="self,arg"/></ClientEvents></Rule><Rule name="com.bstek.dorado.view.widget.base.toolbar.Button" parents="Button" label="ToolBarButton" nodeName="ToolBarButton" type="com.bstek.dorado.view.widget.base.toolbar.Button" scope="protected" category="ToolBar" icon="/com/bstek/dorado/view/widget/base/toolbar/Button.png" clientTypes="desktop"><Props> |
| | | <Prop name="hideMenuOnMouseLeave" type="boolean"/> |
| | | <Prop name="hideMenuOnMouseLeaveDelay" defaultValue="300" type="int"/> |
| | | <Prop name="showMenuOnHover" defaultValue="false" type="boolean"/></Props></Rule><Rule name="Separator" parents="com.bstek.dorado.view.widget.Control" label="Separator" type="com.bstek.dorado.view.widget.base.toolbar.Separator" scope="protected" category="ToolBar" icon="/com/bstek/dorado/view/widget/base/toolbar/Separator.png" clientTypes="desktop"></Rule><Rule name="com.bstek.dorado.view.widget.base.toolbar.Label" parents="com.bstek.dorado.view.widget.Control" label="Label" nodeName="ToolBarLabel" type="com.bstek.dorado.view.widget.base.toolbar.Label" scope="protected" category="ToolBar" icon="/com/bstek/dorado/view/widget/base/toolbar/Label.png" clientTypes="desktop"><Props> |
| | | <Prop name="text"/></Props></Rule><Rule name="MenuButton" parents="Button" label="MenuButton" nodeName="MenuButton" type="com.bstek.dorado.view.widget.base.toolbar.MenuButton" scope="protected" category="ToolBar" icon="/com/bstek/dorado/view/widget/base/toolbar/MenuButton.png" clientTypes="desktop"><Props> |
| | | <Prop name="hideMenuOnMouseLeave" type="boolean"/> |
| | | <Prop name="hideMenuOnMouseLeaveDelay" defaultValue="300" type="int"/> |
| | | <Prop name="menu" deprecated="true" visible="false"/> |
| | |
| | | <Prop name="hideOnClick" defaultValue="true" type="boolean"/> |
| | | <Prop name="icon"/> |
| | | <Prop name="iconClass"/></Props><ClientEvents> |
| | | <ClientEvent name="onClick" parameters="self,arg"/></ClientEvents></Rule><Rule name="Separator" parents="BaseMenuItem" label="Separator" type="com.bstek.dorado.view.widget.base.menu.Separator" icon="/com/bstek/dorado/view/widget/base/menu/Separator.png" clientTypes="desktop,touch"></Rule><Rule name="ControlMenuItem" parents="TextMenuItem" label="ControlMenuItem" type="com.bstek.dorado.view.widget.base.menu.ControlMenuItem" icon="/com/bstek/dorado/view/widget/base/menu/ControlMenuItem.png" clientTypes="desktop"><Children><Child rule="FloatControl" name="Control"></Child></Children></Rule><Rule name="FloatControl" abstract="true" type="com.bstek.dorado.view.widget.FloatControl"><Props> |
| | | <ClientEvent name="onClick" parameters="self,arg"/></ClientEvents></Rule><Rule name="ControlMenuItem" parents="TextMenuItem" label="ControlMenuItem" type="com.bstek.dorado.view.widget.base.menu.ControlMenuItem" icon="/com/bstek/dorado/view/widget/base/menu/ControlMenuItem.png" clientTypes="desktop"><Children><Child rule="FloatControl" name="Control"></Child></Children></Rule><Rule name="FloatControl" abstract="true" type="com.bstek.dorado.view.widget.FloatControl"><Props> |
| | | <Prop name="align" enumValues="left,innerleft,center,innerright,top" visible="false"/> |
| | | <Prop name="anchorTarget" visible="false"/> |
| | | <Prop name="animateTarget" visible="false"/> |
| | |
| | | <Prop name="shadowMode" enumValues="drop,sides,frame,none"/> |
| | | <Prop name="showAnimateType" enumValues="zoom,modernZoom,flip,slide,safeSlide,modernSlide,fade,none"/> |
| | | <Prop name="top" type="int"/> |
| | | <Prop name="vAlign" enumValues="top,innertop,center,innerbottom,bottom" visible="false"/></Props></Rule><Rule name="CheckableMenuItem" parents="MenuItem" label="CheckableMenuItem" type="com.bstek.dorado.view.widget.base.menu.CheckableMenuItem" icon="/com/bstek/dorado/view/widget/base/menu/CheckableMenuItem.png" clientTypes="desktop"><Props> |
| | | <Prop name="vAlign" enumValues="top,innertop,center,innerbottom,bottom" visible="false"/></Props></Rule><Rule name="com.bstek.dorado.view.widget.base.menu.Separator" parents="BaseMenuItem" label="Separator" type="com.bstek.dorado.view.widget.base.menu.Separator" icon="/com/bstek/dorado/view/widget/base/menu/Separator.png" clientTypes="desktop,touch"></Rule><Rule name="CheckableMenuItem" parents="MenuItem" label="CheckableMenuItem" type="com.bstek.dorado.view.widget.base.menu.CheckableMenuItem" icon="/com/bstek/dorado/view/widget/base/menu/CheckableMenuItem.png" clientTypes="desktop"><Props> |
| | | <Prop name="checked" type="boolean"/> |
| | | <Prop name="group"/></Props><ClientEvents> |
| | | <ClientEvent name="onCheckedChange" parameters="self,arg"/></ClientEvents></Rule><Rule name="com.bstek.dorado.view.widget.base.toolbar.Separator" parents="com.bstek.dorado.view.widget.Control" label="Separator" type="com.bstek.dorado.view.widget.base.toolbar.Separator" scope="protected" category="ToolBar" icon="/com/bstek/dorado/view/widget/base/toolbar/Separator.png" clientTypes="desktop"></Rule><Rule name="com.bstek.dorado.view.widget.base.toolbar.Button" parents="Button" label="ToolBarButton" nodeName="ToolBarButton" type="com.bstek.dorado.view.widget.base.toolbar.Button" scope="protected" category="ToolBar" icon="/com/bstek/dorado/view/widget/base/toolbar/Button.png" clientTypes="desktop"><Props> |
| | | <Prop name="hideMenuOnMouseLeave" type="boolean"/> |
| | | <Prop name="hideMenuOnMouseLeaveDelay" defaultValue="300" type="int"/> |
| | | <Prop name="showMenuOnHover" defaultValue="false" type="boolean"/></Props></Rule><Rule name="com.bstek.dorado.view.widget.base.toolbar.Label" parents="com.bstek.dorado.view.widget.Control" label="Label" nodeName="ToolBarLabel" type="com.bstek.dorado.view.widget.base.toolbar.Label" scope="protected" category="ToolBar" icon="/com/bstek/dorado/view/widget/base/toolbar/Label.png" clientTypes="desktop"><Props> |
| | | <Prop name="text"/></Props></Rule><Rule name="Section" parents="ClientEventSupportedElement" label="Section" type="com.bstek.dorado.view.widget.base.accordion.Section" icon="/com/bstek/dorado/view/widget/base/accordion/Section.png"><Props> |
| | | <ClientEvent name="onCheckedChange" parameters="self,arg"/></ClientEvents></Rule><Rule name="Fill" parents="com.bstek.dorado.view.widget.Control" label="Fill" type="com.bstek.dorado.view.widget.base.toolbar.Fill" scope="protected" category="ToolBar" icon="/com/bstek/dorado/view/widget/base/toolbar/Fill.png" clientTypes="desktop"></Rule><Rule name="Section" parents="ClientEventSupportedElement" label="Section" type="com.bstek.dorado.view.widget.base.accordion.Section" icon="/com/bstek/dorado/view/widget/base/accordion/Section.png"><Props> |
| | | <Prop name="caption"/> |
| | | <Prop name="className"/> |
| | | <Prop name="disabled" type="boolean"/> |
| | |
| | | <Prop name="visible" defaultValue="true" type="boolean"/></Props><ClientEvents> |
| | | <ClientEvent name="onGetCellEditor" parameters="self,arg"/> |
| | | <ClientEvent name="onHeaderClick" parameters="self,arg"/> |
| | | <ClientEvent name="onRenderHeaderCell" parameters="self,arg"/></ClientEvents></Rule><Rule name="AbstractDataColumn" parents="Column" abstract="true" type="com.bstek.dorado.view.widget.grid.AbstractDataColumn"><Props> |
| | | <ClientEvent name="onRenderHeaderCell" parameters="self,arg"/></ClientEvents></Rule><Rule name="RowNumColumn" parents="AbstractDataColumn" label="RowNumColumn" type="com.bstek.dorado.view.widget.grid.RowNumColumn" icon="/com/bstek/dorado/view/widget/grid/RowNumColumn.png"></Rule><Rule name="AbstractDataColumn" parents="Column" abstract="true" type="com.bstek.dorado.view.widget.grid.AbstractDataColumn"><Props> |
| | | <Prop name="filterBarRenderer"/> |
| | | <Prop name="footerRenderer"/> |
| | | <Prop name="renderer"/> |
| | | <Prop name="resizeable" defaultValue="true" type="boolean"/> |
| | | <Prop name="width"/></Props><ClientEvents> |
| | | <ClientEvent name="onRenderFooterCell" parameters="self,arg"/> |
| | | <ClientEvent name="onRenderCell" parameters="self,arg"/></ClientEvents></Rule><Rule name="DataColumn" parents="AbstractDataColumn" label="DataColumn" type="com.bstek.dorado.view.widget.grid.DataColumn" icon="/com/bstek/dorado/view/widget/grid/DataColumn.png" labelProperty="name,property"><Props> |
| | | <ClientEvent name="onRenderCell" parameters="self,arg"/></ClientEvents></Rule><Rule name="IndicatorColumn" parents="AbstractDataColumn" label="IndicatorColumn" type="com.bstek.dorado.view.widget.grid.IndicatorColumn" icon="/com/bstek/dorado/view/widget/grid/IndicatorColumn.png"></Rule><Rule name="ColumnGroup" parents="Column" label="ColumnGroup" type="com.bstek.dorado.view.widget.grid.ColumnGroup" icon="/com/bstek/dorado/view/widget/grid/ColumnGroup.png"><Props> |
| | | <Prop name="align" enumValues="left,center,right" visible="false"/></Props><Children><Child rule="Column" name="Columns" aggregated="true"></Child></Children></Rule><Rule name="DataColumn" parents="AbstractDataColumn" label="DataColumn" type="com.bstek.dorado.view.widget.grid.DataColumn" icon="/com/bstek/dorado/view/widget/grid/DataColumn.png" labelProperty="name,property"><Props> |
| | | <Prop name="align" enumValues="left,center,right"/> |
| | | <Prop name="dataType" type="com.bstek.dorado.data.type.DataType"/> |
| | | <Prop name="defaultFilterOperator"/> |
| | |
| | | <Prop name="summaryType" enumValues="sum,average,count,max,min"/> |
| | | <Prop name="trigger" enumValues="triggerClear,autoMappingDropDown1,autoMappingDropDown2,autoOpenMappingDropDown1,autoOpenMappingDropDown2,defaultDateDropDown,defaultDateTimeDropDown,defaultYearMonthDropDown,defaultYearDropDown,defaultMonthDropDown" reference="Trigger:id"/> |
| | | <Prop name="typeFormat"/> |
| | | <Prop name="wrappable" type="boolean"/></Props><Children><Child name="Editor" fixed="true"><Rule name="Wrapper.Editor" label="Editor" nodeName="Editor" icon="/com/bstek/dorado/view/widget/grid/Editor.png"><Children><Child rule="com.bstek.dorado.view.widget.Control" name="Editor"></Child></Children></Rule></Child></Children></Rule><Rule name="ColumnGroup" parents="Column" label="ColumnGroup" type="com.bstek.dorado.view.widget.grid.ColumnGroup" icon="/com/bstek/dorado/view/widget/grid/ColumnGroup.png"><Props> |
| | | <Prop name="align" enumValues="left,center,right" visible="false"/></Props><Children><Child rule="Column" name="Columns" aggregated="true"></Child></Children></Rule><Rule name="RowNumColumn" parents="AbstractDataColumn" label="RowNumColumn" type="com.bstek.dorado.view.widget.grid.RowNumColumn" icon="/com/bstek/dorado/view/widget/grid/RowNumColumn.png"></Rule><Rule name="RowSelectorColumn" parents="AbstractDataColumn" label="RowSelectorColumn" type="com.bstek.dorado.view.widget.grid.RowSelectorColumn" icon="/com/bstek/dorado/view/widget/grid/RowSelectorColumn.png"></Rule><Rule name="IndicatorColumn" parents="AbstractDataColumn" label="IndicatorColumn" type="com.bstek.dorado.view.widget.grid.IndicatorColumn" icon="/com/bstek/dorado/view/widget/grid/IndicatorColumn.png"></Rule><Rule name="AbstractList" parents="com.bstek.dorado.view.widget.Control" abstract="true" type="com.bstek.dorado.view.widget.list.AbstractList" scope="protected" clientTypes="desktop"><Props> |
| | | <Prop name="wrappable" type="boolean"/></Props><Children><Child name="Editor" fixed="true"><Rule name="Wrapper.Editor" label="Editor" nodeName="Editor" icon="/com/bstek/dorado/view/widget/grid/Editor.png"><Children><Child rule="com.bstek.dorado.view.widget.Control" name="Editor"></Child></Children></Rule></Child></Children></Rule><Rule name="RowSelectorColumn" parents="AbstractDataColumn" label="RowSelectorColumn" type="com.bstek.dorado.view.widget.grid.RowSelectorColumn" icon="/com/bstek/dorado/view/widget/grid/RowSelectorColumn.png"></Rule><Rule name="AbstractList" parents="com.bstek.dorado.view.widget.Control" abstract="true" type="com.bstek.dorado.view.widget.list.AbstractList" scope="protected" clientTypes="desktop"><Props> |
| | | <Prop name="allowNoCurrent" type="boolean"/> |
| | | <Prop name="dragMode" defaultValue="item" enumValues="item,control,itemOrControl"/> |
| | | <Prop name="dropMode" defaultValue="insertItems" enumValues="onControl,onItem,insertItems,onOrInsertItems,onAnyWhere"/> |