|
|
@@ -59,12 +59,6 @@ func HandleStcCmd(ctx context.Context, conn net.Conn) {
|
|
|
// 处理单个数据包(原 switch 逻辑迁移过来)
|
|
|
func processPacket(packet []byte) {
|
|
|
|
|
|
- //check if Master role
|
|
|
- if !active.Master {
|
|
|
- lfshook.NewLogger().Logger.Infof("=========Not Master Role Ignore data=============")
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
if len(packet) < 6 {
|
|
|
fmt.Println("Invalid packet length")
|
|
|
return
|
|
|
@@ -77,7 +71,13 @@ func processPacket(packet []byte) {
|
|
|
|
|
|
//check if the cmd type is avtive
|
|
|
if packet[5] == 0x03 { // ACTIVE
|
|
|
- Active([1]byte{packet[8]})
|
|
|
+ Active([2]byte{packet[8], packet[9]})
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //check if Master role
|
|
|
+ if !active.Master {
|
|
|
+ lfshook.NewLogger().Logger.Infof("=========Not Master Role Ignore data=============")
|
|
|
return
|
|
|
}
|
|
|
|
|
|
@@ -159,6 +159,7 @@ func processPacket(packet []byte) {
|
|
|
}
|
|
|
}
|
|
|
*/
|
|
|
+ break
|
|
|
case 0x02: // STN
|
|
|
if priority.CheckPriority("STN") {
|
|
|
action.HangupRunningTask("STN") //STN interrupt other
|
|
|
@@ -258,13 +259,24 @@ func StationAnn(data []byte) (err error) {
|
|
|
}
|
|
|
|
|
|
// 激活信号
|
|
|
-func Active(data [1]byte) {
|
|
|
+func Active(data [2]byte) {
|
|
|
|
|
|
//var info model.Sysinfo
|
|
|
//active.Actived = true
|
|
|
Signal := int(data[0])
|
|
|
+ Master := int(data[1])
|
|
|
//lfshook.NewLogger().Logger.Infof("Active data : %x", Signal)
|
|
|
|
|
|
+ if !active.Master && active.CabNum == "8" { //slave role , check the Master data from STC
|
|
|
+ if Master == 8 {
|
|
|
+ active.Master = true
|
|
|
+ }
|
|
|
+ } else if !active.Master && active.CabNum == "1" {
|
|
|
+ if Master == 1 {
|
|
|
+ active.Master = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
switch Signal {
|
|
|
case 0:
|
|
|
|