|
@@ -8,7 +8,8 @@ class Sender:
|
|
|
|
|
|
self.topic = {
|
|
|
'billet_add': 'trace/performance/billet/add',
|
|
|
- 'heat_add': 'trace/performance/converter/add'
|
|
|
+ 'heat_add': 'trace/performance/converter/add',
|
|
|
+ 'billet_union': 'trace/billet/billetAssemblyNumber/add'
|
|
|
}
|
|
|
|
|
|
self.url = {
|
|
@@ -52,7 +53,19 @@ class Sender:
|
|
|
'thickness' : 170,
|
|
|
'weight' : 0.0,
|
|
|
'cutStartTime' : '',
|
|
|
- 'cutStopTime' : ''
|
|
|
+ 'cutStopTime' : '',
|
|
|
+ 'assemblyNumber' : ''
|
|
|
+ }
|
|
|
+
|
|
|
+ self.billet_union_temp = {
|
|
|
+ "ccmNo": 0, # 铸机号 int数值类型
|
|
|
+ "heatNo": "", # 炉号 字符串类型
|
|
|
+ "billetsNo": "", # 坯号集合 字符串类型 逗号隔开
|
|
|
+ "assemblyNumber": "", # 组坯号 字符串类型
|
|
|
+ "assemblyTime": "", # 组坯时间 Date日期类型
|
|
|
+ "length": 0, # 定尺 int数值类型
|
|
|
+ "billetsNum": 0, # 钢坯数量 int数值类型
|
|
|
+ "billetWeight": 0 # 钢坯坯重 double高精度数值类型
|
|
|
}
|
|
|
|
|
|
self.mqtt_cli = None
|
|
@@ -72,7 +85,7 @@ class Sender:
|
|
|
self.logger.info(f"[SENDER]使用 {'MQTT'if self.mqtt_cli else ''} {'HTTP'if self.http_flag else ''} 发送数据")
|
|
|
self.logger.debug(f"[SENDER]{purpose}:{payload}")
|
|
|
|
|
|
- if self.mqtt_cli:
|
|
|
+ if self.mqtt_cli and purpose in self.topic:
|
|
|
if not self.mqtt_cli.is_connected:
|
|
|
self.logger.error('[SENDER]MQTT:发送失败,MQTT未连接')
|
|
|
|
|
@@ -81,7 +94,7 @@ class Sender:
|
|
|
else:
|
|
|
self.logger.info('[SENDER]MQTT:数据包发送成功')
|
|
|
|
|
|
- if self.http_flag:
|
|
|
+ if self.http_flag and purpose in self.url:
|
|
|
try:
|
|
|
self.logger.debug('[SENDER]HTTP:'+requests.post(self.url[purpose], json=payload, timeout=2).text)
|
|
|
except:
|
|
@@ -181,7 +194,7 @@ class Sender:
|
|
|
self._billet[heat_data.get('heatNo', '')+str(heatnoIndex)] = tmp
|
|
|
self.send('billet_add', tmp)
|
|
|
|
|
|
- def billet_upload(self, heat_data, billetNo, heatnoIndex, sizing, speed, starttime, stoptime):
|
|
|
+ def billet_upload(self, heat_data, billetNo, heatnoIndex, sizing, speed, starttime, stoptime, unionNo):
|
|
|
tmp = self.billet_tangible_temp.copy()
|
|
|
tmp['optype'] = 1
|
|
|
tmp['heatNo'] = heat_data.get('heatNo', '')
|
|
@@ -198,10 +211,26 @@ class Sender:
|
|
|
tmp['weight'] = sizing / 1000 * 0.2265
|
|
|
tmp['cutStartTime'] = starttime
|
|
|
tmp['cutStopTime'] = stoptime
|
|
|
+ tmp['assemblyNumber'] = unionNo
|
|
|
|
|
|
#此处应存储进数据库
|
|
|
self.send('billet_add', tmp)
|
|
|
|
|
|
+ def billet_union(self, heat_data, unionNo, billetNos, sizing):
|
|
|
+ tmp = self.billet_union_temp.copy()
|
|
|
+
|
|
|
+ tmp['ccmNo'] = heat_data.get('ccmNo', '')
|
|
|
+ tmp['heatNo'] = heat_data.get('heatNo', '')
|
|
|
+ tmp['billetsNo'] = ','.join(billetNos)
|
|
|
+ tmp['assemblyNumber'] = unionNo
|
|
|
+ tmp['assemblyTime'] = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
|
|
|
+ tmp['length'] = sizing
|
|
|
+ tmp['billetsNum'] = len(billetNos)
|
|
|
+ tmp['billetWeight'] = sizing / 1000 * 0.2265 * tmp['billetsNum']
|
|
|
+
|
|
|
+ #此处应存储进数据库
|
|
|
+ self.send('billet_union', tmp)
|
|
|
+
|
|
|
if __name__ == '__main__':
|
|
|
mqttcli = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, 'python-mqtt-992-sender_test')
|
|
|
mqttcli.username_pw_set('admin', '123456')
|