| 
					
				 | 
			
			
				@@ -41,12 +41,9 @@ func HandleStcCmd(ctx context.Context, conn net.Conn) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if active.Actived { // check actived or not 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					// 将新读取的数据追加到缓冲区 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					buf.Write(tmp[:n]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				// 将新读取的数据追加到缓冲区 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				buf.Write(tmp[:n]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// 尝试从缓冲区中提取完整数据包 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			for { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -70,7 +67,14 @@ func processPacket(packet []byte) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	lfshook.NewLogger().Logger.Infof("Get data from STC ===============:%x", packet) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	//check if the cmd type is avtive 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if packet[5] == 0x03 { // ACTIVE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		Active([1]byte{packet[7]}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Active([1]byte{packet[8]}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//check if actived 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if !active.Actived { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		lfshook.NewLogger().Logger.Infof("===========Inactived  retrun==============") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	switch packet[5] { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -79,9 +83,8 @@ func processPacket(packet []byte) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	case 0x02: // STN 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		lfshook.NewLogger().Infof("=====STN=========") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		StationAnn(packet) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	case 0x03: // ACTIVE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		Active([1]byte{packet[8]}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//case 0x03: // ACTIVE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//	Active([1]byte{packet[8]}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	case 0x05: // SPC 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		lfshook.NewLogger().Infof("=====SPC=========") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		SpecialAnn(packet) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -131,56 +134,62 @@ func StationAnn(data []byte) (err error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 激活信号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func Active(data [1]byte) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	var info model.Sysinfo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//var info model.Sysinfo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	active.Actived = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	Num := int(data[0]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	lfshook.NewLogger().Logger.Infof("Active data : %x", Num) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   switch Num { // 设置全局的激活信号,并通过协议(待定)通知终端注册到对应的激活主机上 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   case 0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	switch Num { // 设置全局的激活信号,并通过协议(待定)通知终端注册到对应的激活主机上 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	case 0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		lfshook.NewLogger().Logger.Infof("=================Inactive==================") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		info.Name = "cab_active" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		info.Value = "0" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   	lfshook.NewLogger().Logger.Infof("=================Inactive==================") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   	info.Name = "cab_active" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   	info.Value = "0" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		_, er := mysql.DBOrmInstance.Where("name = ?", "cab_active").Update(&info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if er != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			lfshook.NewLogger().Logger.Infof("update sysinfo err : %+v", er.Error()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	case 1: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		lfshook.NewLogger().Logger.Infof("=================active===MC1===============") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if active.CabNum == "1" { // local cab is MC1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			info.Name = "cab_active" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			info.Value = "1" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			active.Actived = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			info.Name = "cab_active" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			info.Value = "0" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			active.Actived = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		_, er := mysql.DBOrmInstance.Where("name = ?", "cab_active").Update(&info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if er != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			lfshook.NewLogger().Logger.Infof("update sysinfo err : %+v", er.Error()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	case 8: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		lfshook.NewLogger().Logger.Infof("=================active===MC8===============") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if active.CabNum == "8" { //Local cab is MC8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			info.Name = "cab_active" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			info.Value = "1" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			active.Actived = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			info.Name = "cab_active" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			info.Value = "0" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			active.Actived = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   	_, er := mysql.DBOrmInstance.Where("name = ?", "cab_active").Update(&info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   	if er != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   		lfshook.NewLogger().Logger.Infof("update sysinfo err : %+v", er.Error()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		_, er := mysql.DBOrmInstance.Where("name = ?", "cab_active").Update(&info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if er != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			lfshook.NewLogger().Logger.Infof("update sysinfo err : %+v", er.Error()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   case 1: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   	lfshook.NewLogger().Logger.Infof("=================active===MC1===============") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   	if active.CabNum == "1" { // local cab is MC1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   		info.Name = "cab_active" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   		info.Value = "1" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   		active.Actived = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   	} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   		info.Name = "cab_active" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   		info.Value = "0" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   		active.Actived = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   	_, er := mysql.DBOrmInstance.Where("name = ?", "cab_active").Update(&info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   	if er != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   		lfshook.NewLogger().Logger.Infof("update sysinfo err : %+v", er.Error()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   case 8: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   		lfshook.NewLogger().Logger.Infof("=================active===MC8===============") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   		if active.CabNum == "8" { //Local cab is MC8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   			info.Name = "cab_active" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   			info.Value = "1" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   			active.Actived = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   		} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   			info.Name = "cab_active" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   			info.Value = "0" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   			active.Actived = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   		_, er := mysql.DBOrmInstance.Where("name = ?", "cab_active").Update(&info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   		if er != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   			lfshook.NewLogger().Logger.Infof("update sysinfo err : %+v", er.Error()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   			return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // SPC ,特殊服务消息广播 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -439,18 +448,26 @@ func AlarmResetAll() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func RecordStorageConf(data []byte) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	/*padRcd := data[0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	padRcdStorage := data[1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	paRcdStorage := data[2] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	cpaRcdStorage := data[3] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	padRcdDel := data[4] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	PaRcdDel := data[5] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	cpaRcdDel := data[6] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	padRcdEnable := data[0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	padRcdStorageDays := data[1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	paRcdStorageDays := data[2] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	cpaRcdStorageDays := data[3] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	//update pa type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	_, er := mysql.DBOrmInstance.In("exten", Pacus).Update(&model.Extension{PaType: "CHK"}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//padRcdDelDays := data[4] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//PaRcdDelDays := data[5] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//cpaRcdDelDays := data[6] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var info model.RcdConf 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	info.PadRcdEnable = int(padRcdEnable) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	info.PadRcdStorageDays = int(padRcdStorageDays) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	info.CpaRcdStorageDays = int(cpaRcdStorageDays) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	info.PaRcdStorageDays = int(paRcdStorageDays) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//update record config 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	_, er := mysql.DBOrmInstance.Update(&info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if er != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		lfshook.NewLogger().Logger.Infof("update special voice to exten err : %+v", er.Error()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |