Browse Source

中山站逻辑优化

dev-shibei
yj 2 years ago
parent
commit
78f4e26a6a
  1. 3
      device_cars/src/main/java/com/xr/device_car/modules/analysis/controller/MeterConfigController.java
  2. 2
      device_cars/src/main/java/com/xr/device_car/modules/analysis/entity/MeterConfig.java
  3. 4
      device_cars/src/main/resources/modules/analysis/MeterConfigMapper.xml
  4. 477
      drone_data/src/main/java/com/xr/drone/demo/SwingDemo.java

3
device_cars/src/main/java/com/xr/device_car/modules/analysis/controller/MeterConfigController.java

@ -84,6 +84,9 @@ public class MeterConfigController {
if(StringUtils.isNotEmpty(meterConfig.getIp())){ if(StringUtils.isNotEmpty(meterConfig.getIp())){
query.like("b.device_ip",meterConfig.getIp()); query.like("b.device_ip",meterConfig.getIp());
} }
if(StringUtils.isNotEmpty(meterConfig.getStationId())){
query.eq("a.station_id",meterConfig.getStationId());
}
IPage<MeterConfig> iPage=meterConfigService.getPageList(page,query); IPage<MeterConfig> iPage=meterConfigService.getPageList(page,query);
return iPage; return iPage;
} }

2
device_cars/src/main/java/com/xr/device_car/modules/analysis/entity/MeterConfig.java

@ -151,7 +151,7 @@ public class MeterConfig implements Serializable {
private Date updateTime; private Date updateTime;
@TableField(exist = false) @TableField(exist = false)
private String substation; private String substationName;
@TableField(exist = false) @TableField(exist = false)
private String ip; private String ip;

4
device_cars/src/main/resources/modules/analysis/MeterConfigMapper.xml

@ -41,12 +41,12 @@
a.type_id,a.status,a.first_time, a.type_id,a.status,a.first_time,
a.algorithm_type,a.interval_time,a.focal_number, a.algorithm_type,a.interval_time,a.focal_number,
a.parameter_config,a.remarks,a.init_status,a.create_user, a.parameter_config,a.remarks,a.init_status,a.create_user,
a.create_time,a.update_user,a.update_time, a.create_time,a.update_user,a.update_time,a.station_id,
</sql> </sql>
<select id="selectConfigByPage" resultType="com.xr.device_car.modules.analysis.entity.MeterConfig"> <select id="selectConfigByPage" resultType="com.xr.device_car.modules.analysis.entity.MeterConfig">
select select
<include refid="Base_Column_List"></include> <include refid="Base_Column_List"></include>
b.device_type cameraType,b.position cameraName,c.type_alias,b.device_ip ip from meter_config a b.device_type cameraType,b.position cameraName,c.type_alias,b.device_ip ip,d.substation_name from meter_config a
left join device_camera b on a.camera_id = b.id left join device_camera b on a.camera_id = b.id
left join meter_type c on a.type_id=c.id left join meter_type c on a.type_id=c.id
left join substation d on a.station_id = d.id left join substation d on a.station_id = d.id

477
drone_data/src/main/java/com/xr/drone/demo/SwingDemo.java

@ -1,477 +0,0 @@
package com.xr.drone.demo;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import com.jnrsmcu.sdk.netdevice.IDataListener;
import com.jnrsmcu.sdk.netdevice.LoginData;
import com.jnrsmcu.sdk.netdevice.NodeData;
import com.jnrsmcu.sdk.netdevice.ParamData;
import com.jnrsmcu.sdk.netdevice.ParamIdsData;
import com.jnrsmcu.sdk.netdevice.ParamItem;
import com.jnrsmcu.sdk.netdevice.RSServer;
import com.jnrsmcu.sdk.netdevice.RealTimeData;
import com.jnrsmcu.sdk.netdevice.StoreData;
import com.jnrsmcu.sdk.netdevice.TelecontrolAck;
import com.jnrsmcu.sdk.netdevice.TimmingAck;
import com.jnrsmcu.sdk.netdevice.TransDataAck;
import com.jnrsmcu.sdk.netdevice.WriteParamAck;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JPanel;
import javax.swing.border.LineBorder;
import java.awt.Color;
import javax.swing.border.TitledBorder;
import javax.swing.LayoutStyle.ComponentPlacement;
public class SwingDemo extends JFrame {
/**
*
*/
private static final long serialVersionUID = -7855826301914463533L;
private JTextField txtPort;
private JScrollPane scrollPane;
private JTextArea textArea;
private JButton btnStart;
private JButton btnStop;
private JCheckBox chkRelay0;
private JCheckBox chkRelay1;
private JCheckBox chkRelay2;
private JCheckBox chkRelay3;
private JCheckBox chkRelay4;
private JCheckBox chkRelay5;
private JCheckBox chkRelay6;
private JCheckBox chkRelay7;
private JButton btnTimming;
private JButton btnCallStore;
private RSServer rsServer;// 定义监听服务对象
private IDataListener listener = new IDataListener() {
@Override
public void receiveTimmingAck(TimmingAck data) {// 校时指令应答处理
textArea.append("校时应答->设备编号:" + data.getDeviceId() + "\t执行结果:"
+ data.getStatus() + "\r\n");
}
@Override
public void receiveTelecontrolAck(TelecontrolAck data) {// 遥控指令应答处理
textArea.append("遥控应答->设备编号:" + data.getDeviceId() + "\t继电器编号:"
+ data.getRelayId() + "\t执行结果:" + data.getStatus() + "\r\n");
}
@Override
public void receiveStoreData(StoreData data) {// 已存储数据接收处理
// 遍历节点数据。数据包括网络设备的数据以及各个节点数据。温湿度数据存放在节点数据中
for (NodeData nd : data.getNodeList()) {
SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
String str = sdf.format(nd.getRecordTime());
textArea.append("存储数据->设备地址:" + data.getDeviceId() + "\t节点:"
+ nd.getNodeId() + "\t温度:" + nd.getTem() + "\t湿度:"
+ nd.getHum() + "\t存储时间:" + str+"\t坐标类型:"+nd.getCoordinateType()+"\t经度:"+nd.getLng()+"\t纬度:"+nd.getLat() + "\r\n");
}
}
@Override
public void receiveRealtimeData(RealTimeData data) {// 实时数据接收处理
// 遍历节点数据。数据包括网络设备的数据以及各个节点数据。温湿度数据存放在节点数据中
for (NodeData nd : data.getNodeList()) {
textArea.append("实时数据->设备地址:" + data.getDeviceId() + "\t节点:"
+ nd.getNodeId() + "\t温度:" + nd.getTem() + "\t湿度:"
+ nd.getHum() + "\t经度:" + data.getLng() + "\t纬度:"
+ data.getLat() + "\t坐标类型:" + data.getCoordinateType()
+ "\t继电器状态" + data.getRelayStatus() + "\t浮点型数据:"
+ nd.getFloatValue() + "\t32位有符号数据:"
+ nd.getSignedInt32Value() + "\t32位无符号数据:"
+ nd.getUnSignedInt32Value() + "\r\n");
}
}
@Override
public void receiveLoginData(LoginData data) {// 登录数据接收处理
textArea.append("登录->设备地址:" + data.getDeviceId() + "\r\n");
}
@Override
public void receiveParamIds(ParamIdsData data) {
String str = "设备参数编号列表->设备编号:" + data.getDeviceId() + "\t参数总数量:"
+ data.getTotalCount() + "\t本帧参数数量:" + data.getCount()
+ "\r\n";
for (int paramId : data.getPararmIdList())// 遍历设备中参数id编号
{
str += paramId + ",";
}
textArea.append(str + "\r\n");
}
@Override
public void receiveParam(ParamData data) {
String str = "设备参数->设备编号:" + data.getDeviceId() + "\r\n";
for (ParamItem pararm : data.getParameterList()) {
str += "参数编号:"
+ pararm.getParamId()
+ "\t参数描述:"
+ pararm.getDescription()
+ "\t参数值:"
+ (pararm.getValueDescription() == null ? pararm
.getValue() : pararm.getValueDescription().get(
pararm.getValue())) + "\r\n";
}
textArea.append(str + "\r\n");
}
@Override
public void receiveWriteParamAck(WriteParamAck data) {
String str = "下载设备参数->设备编号:" + data.getDeviceId() + "\t参数数量:"
+ data.getCount() + "\t"
+ (data.isSuccess() ? "下载成功" : "下载失败");
textArea.append(str + "\r\n");
}
@Override
public void receiveTransDataAck(TransDataAck data) {
String str = "数据透传->设备编号:" + data.getDeviceId() + "\t响应结果:"
+ data.getData() + "\r\n字节数:" + data.getTransDataLen();
textArea.append(str + "\r\n");
}
};
private JTextField txtDeviceId;
private JTextField txtParamIds;
private JTextField txtParamId;
private JTextField txtParamVal;
private JPanel panel_2;
private JLabel label_4;
private JTextField txtTransData;
private JButton btnTrans;
public SwingDemo() {
setTitle("Demo");
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(653, 710);
setLocationRelativeTo(null);
JLabel lblNewLabel = new JLabel("\u7AEF\u53E3:");
lblNewLabel.setBounds(10, 10, 40, 15);
txtPort = new JTextField();
txtPort.setBounds(45, 7, 66, 21);
txtPort.setText("2404");
txtPort.setColumns(10);
btnStart = new JButton("\u542F\u52A8");
btnStart.setBounds(135, 6, 85, 23);
btnStart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
btnStart.setEnabled(false);
new Thread(new Runnable() {
@Override
public void run() {
rsServer = RSServer.Initiate(Integer.parseInt(txtPort
.getText()),"C:\\Users\\PC\\Desktop\\JavaSDKV2.2.2\\param.dat");// 初始化
rsServer.addDataListener(listener);// 添加数据监听事件
try {
rsServer.start();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}// 启动监听服务
}
}).start();
}
});
btnStop = new JButton("\u505C\u6B62");
btnStop.setBounds(237, 6, 85, 23);
btnStop.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
btnStart.setEnabled(true);
rsServer.stop();
}
});
scrollPane = new JScrollPane();
scrollPane.setBounds(10, 400, 624, 275);
textArea = new JTextArea();
scrollPane.setViewportView(textArea);
JLabel label = new JLabel("\u8BBE\u5907\u5730\u5740:");
label.setBounds(10, 48, 66, 15);
txtDeviceId = new JTextField();
txtDeviceId.setBounds(75, 45, 84, 21);
txtDeviceId.setText("10000000");
txtDeviceId.setColumns(10);
btnTimming = new JButton("\u6821\u65F6");
btnTimming.setBounds(336, 6, 85, 23);
btnTimming.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
int deviceId = Integer.parseInt(txtDeviceId.getText());
rsServer.timming(deviceId);
}
});
btnCallStore = new JButton("\u53EC\u5524\u6570\u636E");
btnCallStore.setBounds(428, 6, 90, 23);
btnCallStore.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int deviceId = Integer.parseInt(txtDeviceId.getText());
rsServer.callStoreData(deviceId);
}
});
JPanel panel = new JPanel();
panel.setBounds(10, 84, 624, 57);
panel.setBorder(new TitledBorder(null,
"\u7EE7\u7535\u5668\u63A7\u5236", TitledBorder.LEADING,
TitledBorder.TOP, null, null));
JPanel panel_1 = new JPanel();
panel_1.setBounds(10, 147, 624, 112);
panel_1.setBorder(new TitledBorder(null, "\u8BBE\u5907\u53C2\u6570",
TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel_2 = new JPanel();
panel_2.setBounds(10, 269, 624, 113);
panel_2.setBorder(new TitledBorder(null, "\u6570\u636E\u900F\u4F20",
TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel_2.setLayout(null);
label_4 = new JLabel(
"\u900F\u4F20\u6570\u636E\uFF0C16\u8FDB\u5236\u5B57\u7B26\u4E32");
label_4.setBounds(10, 23, 419, 15);
panel_2.add(label_4);
txtTransData = new JTextField();
txtTransData.setBounds(10, 48, 604, 21);
panel_2.add(txtTransData);
txtTransData.setColumns(10);
btnTrans = new JButton("\u6570\u636E\u900F\u4F20");
btnTrans.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
int deviceId = Integer.parseInt(txtDeviceId.getText());
rsServer.trans(deviceId, txtTransData.getText());
}
});
btnTrans.setBounds(10, 79, 93, 23);
panel_2.add(btnTrans);
panel_1.setLayout(null);
JLabel label_1 = new JLabel(
"\u53C2\u6570\u7F16\u53F7\uFF0C\u7528\u4E8E\u8BFB\u53D6\u8BBE\u5907\u53C2\u6570\uFF08\u591A\u4E2A\u7F16\u53F7\u7528\u82F1\u6587,\u5206\u9694\uFF09");
label_1.setBounds(10, 22, 421, 15);
panel_1.add(label_1);
txtParamIds = new JTextField();
txtParamIds.setText("1,2,3,4,5,6,7,8,9,10");
txtParamIds.setBounds(10, 47, 421, 21);
panel_1.add(txtParamIds);
txtParamIds.setColumns(10);
JLabel label_2 = new JLabel("\u53C2\u6570\u7F16\u53F7");
label_2.setBounds(10, 78, 54, 15);
panel_1.add(label_2);
txtParamId = new JTextField();
txtParamId.setBounds(68, 75, 66, 21);
panel_1.add(txtParamId);
txtParamId.setColumns(10);
JLabel label_3 = new JLabel("\u53C2\u6570\u503C");
label_3.setBounds(144, 78, 54, 15);
panel_1.add(label_3);
txtParamVal = new JTextField();
txtParamVal.setBounds(202, 75, 66, 21);
panel_1.add(txtParamVal);
txtParamVal.setColumns(10);
JButton btnReadParametersList = new JButton(
"\u8BFB\u53D6\u8BBE\u5907\u53C2\u6570\u5217\u8868");
btnReadParametersList.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
int deviceId = Integer.parseInt(txtDeviceId.getText());
rsServer.callParamList(deviceId);// 发送召唤设备参数列表指令
}
});
btnReadParametersList.setBounds(460, 18, 142, 23);
panel_1.add(btnReadParametersList);
JButton btnReadParameters = new JButton(
"\u8BFB\u53D6\u8BBE\u5907\u53C2\u6570");
btnReadParameters.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
int deviceId = Integer.parseInt(txtDeviceId.getText());
List<Integer> ids = new ArrayList<Integer>();
String[] idArray = txtParamIds.getText().split(",");
for (String str : idArray) {
try {
ids.add(Integer.parseInt(str));
} catch (Exception e) {
}
}
if (ids.size() >= 115) {
JOptionPane.showMessageDialog(null, "一次读取参数数量不能超过115个",
"提示", JOptionPane.INFORMATION_MESSAGE);
return;
}
rsServer.callParam(deviceId, ids);
}
});
btnReadParameters.setBounds(460, 46, 142, 23);
panel_1.add(btnReadParameters);
JButton btnWriteParameters = new JButton(
"\u4E0B\u8F7D\u8BBE\u5907\u53C2\u6570");
btnWriteParameters.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
int deviceId = Integer.parseInt(txtDeviceId.getText());
List<ParamItem> parameters = new ArrayList<ParamItem>();
try {
parameters.add(ParamItem.New(
Integer.parseInt(txtParamId.getText()),
txtParamVal.getText()));
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex.getMessage(), "提示",
JOptionPane.INFORMATION_MESSAGE);
return;
}
if (parameters.size() > 115) {
JOptionPane.showMessageDialog(null, "一次性下发参数数量不能超过115个",
"提示", JOptionPane.INFORMATION_MESSAGE);
return;
}
rsServer.writeParam(deviceId, parameters);
}
});
btnWriteParameters.setBounds(460, 74, 142, 23);
panel_1.add(btnWriteParameters);
chkRelay0 = new JCheckBox("\u7EE7\u7535\u56680");
panel.add(chkRelay0);
chkRelay1 = new JCheckBox("\u7EE7\u7535\u56681");
panel.add(chkRelay1);
chkRelay2 = new JCheckBox("\u7EE7\u7535\u56682");
panel.add(chkRelay2);
chkRelay3 = new JCheckBox("\u7EE7\u7535\u56683");
panel.add(chkRelay3);
chkRelay4 = new JCheckBox("\u7EE7\u7535\u56684");
panel.add(chkRelay4);
chkRelay5 = new JCheckBox("\u7EE7\u7535\u56685");
panel.add(chkRelay5);
chkRelay6 = new JCheckBox("\u7EE7\u7535\u56686");
panel.add(chkRelay6);
chkRelay7 = new JCheckBox("\u7EE7\u7535\u56687");
panel.add(chkRelay7);
chkRelay7.addItemListener(new ChkItemListener(7));
chkRelay6.addItemListener(new ChkItemListener(6));
chkRelay5.addItemListener(new ChkItemListener(5));
chkRelay4.addItemListener(new ChkItemListener(4));
chkRelay3.addItemListener(new ChkItemListener(3));
chkRelay2.addItemListener(new ChkItemListener(2));
chkRelay1.addItemListener(new ChkItemListener(1));
chkRelay0.addItemListener(new ChkItemListener(0));
getContentPane().setLayout(null);
getContentPane().add(txtPort);
getContentPane().add(lblNewLabel);
getContentPane().add(btnStart);
getContentPane().add(btnStop);
getContentPane().add(btnTimming);
getContentPane().add(btnCallStore);
getContentPane().add(txtDeviceId);
getContentPane().add(label);
getContentPane().add(panel_1);
getContentPane().add(panel);
getContentPane().add(panel_2);
getContentPane().add(scrollPane);
}
class ChkItemListener implements ItemListener {
private int relayId = 0;
public ChkItemListener(int relayId) {
this.relayId = relayId;
}
@Override
public void itemStateChanged(ItemEvent e) {
JCheckBox jcb = (JCheckBox) e.getItem();
int deviceId = Integer.parseInt(txtDeviceId.getText());
if (jcb.isSelected()) {
try {
rsServer.telecontrol(deviceId, relayId, 0, 0);
} catch (Exception e1) {
e1.printStackTrace();
}
} else {
try {
rsServer.telecontrol(deviceId, relayId, 1, 0);
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
}
public static void main(String[] args) {
new SwingDemo().setVisible(true);
}
}
Loading…
Cancel
Save