|
|
@@ -178,19 +178,16 @@ func processPacket(packet []byte) {
|
|
|
switch packet[5] {
|
|
|
case 0x01: //heartbeat
|
|
|
return
|
|
|
- //lfshook.NewLogger().Logger.Infof("===Get Heartbeat===packet:%x===========", packet)
|
|
|
- //dataLen := binary.BigEndian.Uint16(packet[6:8])
|
|
|
-
|
|
|
- //if dataLen == 10 {
|
|
|
- // processHeartbeat(packet[8:])
|
|
|
- //} else {
|
|
|
- //lfshook.NewLogger().Logger.Infof("=========Heartbeat data err !====len < 10=========")
|
|
|
- //}
|
|
|
+
|
|
|
case 0x02: // STN
|
|
|
if active.ActivedCab != "" {
|
|
|
if priority.CheckPriority("STN") {
|
|
|
- action.InterruptRunningTask("STN") //STN interrupt other
|
|
|
- time.Sleep(time.Millisecond * 100) //wait endpoimt release
|
|
|
+
|
|
|
+ //检查是否有任务真正创建
|
|
|
+ runningTaskName := action.InterruptRunningTask("STN") //STN interrupt other
|
|
|
+ if runningTaskName != "" {
|
|
|
+ time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
+ }
|
|
|
StationAnn(packet)
|
|
|
} else {
|
|
|
alstatus.PaStatus("", "STN", "refuse")
|
|
|
@@ -199,18 +196,23 @@ func processPacket(packet []byte) {
|
|
|
case 0x05: // SPC
|
|
|
if active.ActivedCab != "" {
|
|
|
if priority.CheckPriority("SPC") {
|
|
|
- action.InterruptRunningTask("SPC") //SPC interrupt other
|
|
|
- time.Sleep(time.Millisecond * 100) //wait endpoimt release
|
|
|
+ runningTaskName := action.InterruptRunningTask("SPC") //SPC interrupt other
|
|
|
+ if runningTaskName != "" {
|
|
|
+ time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
+ }
|
|
|
SpecialAnn(packet)
|
|
|
} else {
|
|
|
alstatus.PaStatus("", "SPC", "refuse")
|
|
|
}
|
|
|
}
|
|
|
case 0x06: // EMG
|
|
|
+
|
|
|
if active.ActivedCab != "" {
|
|
|
if priority.CheckPriority("EMG") {
|
|
|
- action.InterruptRunningTask("EMG") //EMG interrupt other
|
|
|
- time.Sleep(time.Millisecond * 100) //wait endpoimt release
|
|
|
+ runningTaskName := action.InterruptRunningTask("EMG") //EMG interrupt other
|
|
|
+ if runningTaskName != "" {
|
|
|
+ time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
+ }
|
|
|
EmgMsg(packet)
|
|
|
} else {
|
|
|
alstatus.PaStatus("", "EMG", "refuse")
|
|
|
@@ -220,20 +222,26 @@ func processPacket(packet []byte) {
|
|
|
AnnStop([4]byte{packet[8], packet[9], packet[10], packet[11]})
|
|
|
|
|
|
case 0x08: // DCS
|
|
|
+
|
|
|
if active.ActivedCab != "" {
|
|
|
if priority.CheckPriority("DCS") {
|
|
|
- action.InterruptRunningTask("DCS") //DCS interrupt other
|
|
|
- time.Sleep(time.Millisecond * 100) //wait endpoimt release
|
|
|
+ runningTaskName := action.InterruptRunningTask("DCS") //DCS interrupt other
|
|
|
+ if runningTaskName != "" {
|
|
|
+ time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
+ }
|
|
|
DcsAnn(packet)
|
|
|
} else {
|
|
|
alstatus.PaStatus("", "DCS", "refuse")
|
|
|
}
|
|
|
}
|
|
|
case 0x09: // SELF CHECK
|
|
|
+
|
|
|
if active.ActivedCab != "" {
|
|
|
if priority.CheckPriority("CHK") {
|
|
|
- action.InterruptRunningTask("CHK") //CHK interrupt other
|
|
|
- time.Sleep(time.Millisecond * 100) //wait endpoimt release
|
|
|
+ runningTaskName := action.InterruptRunningTask("CHK") //CHK interrupt other
|
|
|
+ if runningTaskName != "" {
|
|
|
+ time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
+ }
|
|
|
SelfCheck(packet)
|
|
|
} else {
|
|
|
alstatus.PaStatus("", "CHK", "refuse")
|
|
|
@@ -242,8 +250,11 @@ func processPacket(packet []byte) {
|
|
|
case 0x0a: // Tone-test
|
|
|
if active.ActivedCab != "" {
|
|
|
if priority.CheckPriority("VOL") {
|
|
|
- action.InterruptRunningTask("VOL") //VOL interrupt other
|
|
|
- time.Sleep(time.Millisecond * 100) //wait endpoimt release
|
|
|
+
|
|
|
+ runningTaskName := action.InterruptRunningTask("VOL") //VOL interrupt other
|
|
|
+ if runningTaskName != "" {
|
|
|
+ time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
+ }
|
|
|
ToneTest(packet)
|
|
|
} else {
|
|
|
alstatus.PaStatus("", "VOL", "refuse")
|
|
|
@@ -254,8 +265,10 @@ func processPacket(packet []byte) {
|
|
|
|
|
|
//Before Answer PAD
|
|
|
if packet[8] == 0x01 {
|
|
|
- action.InterruptRunningTask("PAD-TMS") //PAD-ICP interrupt other
|
|
|
- time.Sleep(time.Millisecond * 100) //wait endpoimt release
|
|
|
+ runningTaskName := action.InterruptRunningTask("PAD-TMS") //PAD-TMS interrupt other
|
|
|
+ if runningTaskName != "" {
|
|
|
+ time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
AlarmHandleTMS(packet)
|
|
|
@@ -282,12 +295,15 @@ func processPacket(packet []byte) {
|
|
|
getInfofromSTC(packet[8:])
|
|
|
|
|
|
case 0x0d: // ICP answer PAD
|
|
|
+
|
|
|
if priority.CheckPriority("PAD-ICP") {
|
|
|
|
|
|
//Before Answer PAD
|
|
|
if packet[8] == 0x01 {
|
|
|
- action.InterruptRunningTask("PAD-ICP") //PAD-ICP interrupt other
|
|
|
- time.Sleep(time.Millisecond * 100) //wait endpoimt release
|
|
|
+ runningTaskName := action.InterruptRunningTask("PAD-ICP") //PAD-ICP interrupt other
|
|
|
+ if runningTaskName != "" {
|
|
|
+ time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if active.QueueTimer != nil {
|
|
|
@@ -302,8 +318,7 @@ func processPacket(packet []byte) {
|
|
|
} else {
|
|
|
alstatus.PaStatus("", "PAD-ICP", "refuse")
|
|
|
}
|
|
|
-
|
|
|
- case 0xf1: //Set remote master
|
|
|
+ //case 0xf1: //Set remote master
|
|
|
|
|
|
//default:
|
|
|
//fmt.Printf("Unknown command: %x\n", packet[5])
|
|
|
@@ -489,30 +504,30 @@ func AnnStop(data [4]byte) {
|
|
|
case 0x03:
|
|
|
|
|
|
action.HangupTask("DCS") //STOP DCS
|
|
|
- time.Sleep(time.Millisecond * 100) //wait endpoimt release
|
|
|
+ time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
case 0x04:
|
|
|
|
|
|
action.HangupTask("EMG") //STOP EMG
|
|
|
- time.Sleep(time.Millisecond * 100) //wait endpoimt release
|
|
|
+ time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
case 0x07:
|
|
|
|
|
|
action.HangupTask("SPC") //STOP SPC
|
|
|
- time.Sleep(time.Millisecond * 100) //wait endpoimt release
|
|
|
+ time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
case 0x08:
|
|
|
|
|
|
action.HangupTask("STN") //STOP STN
|
|
|
- time.Sleep(time.Millisecond * 100) //wait endpoimt release
|
|
|
+ time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
case 0x09:
|
|
|
|
|
|
action.HangupTask("CHK") //STOP CHK
|
|
|
- time.Sleep(time.Millisecond * 100) //wait endpoimt release
|
|
|
+ time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
case 0x0a:
|
|
|
|
|
|
action.HangupTask("VOL") //STOP VOL
|
|
|
- time.Sleep(time.Millisecond * 100) //wait endpoimt release
|
|
|
+ time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
default:
|
|
|
action.InterruptRunningTask("")
|
|
|
- time.Sleep(time.Millisecond * 100) //wait endpoimt release
|
|
|
+ time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -633,7 +648,7 @@ func AlarmHandleICP(data []byte) {
|
|
|
utils.LoggerDebug.Printf("RedirectInQueue err:%+v", err)
|
|
|
}
|
|
|
action.InterruptRunningTask("")
|
|
|
- time.Sleep(time.Millisecond * 100) //wait endpoimt release
|
|
|
+ time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
//action.HangupICP()
|
|
|
|
|
|
case 0x03: //hangup
|
|
|
@@ -724,5 +739,5 @@ func AlarmHoldResetAll(handler byte) {
|
|
|
|
|
|
//hangup running task
|
|
|
action.InterruptRunningTask("AlarmHoldResetAll") //Reset PAD ALL
|
|
|
- time.Sleep(time.Millisecond * 100) //wait endpoimt release
|
|
|
+ time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
}
|