Changeset 2118
- Timestamp:
- 07/19/10 17:47:11 (19 months ago)
- Location:
- trunk/lotatc_server
- Files:
-
- 3 edited
-
lotatc_FC2.lua (modified) (5 diffs)
-
lotatc_luaServer.py (modified) (3 diffs)
-
lotatc_object.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/lotatc_server/lotatc_FC2.lua
r2092 r2118 95 95 -- ========================================================================== 96 96 getLotatcTypeFromLockonType = function( self, lockonType) 97 local lotatcObjectType = nil ; 98 99 -- First level 100 if self.ObjectTypeLUT[lockonType.level1] then 101 if self.ObjectTypeLUT[ lockonType.level1 ][lockonType.level2] then 102 lotatcObjectType = self.ObjectTypeLUT[ lockonType.level1 ][lockonType.level2] 97 info = { 0, nil} 98 99 -- Process level by level 100 if self.objectTypeLUT[lockonType.level1] then 101 if self.objectTypeLUT[lockonType.level1][lockonType.level2] then 102 if self.objectTypeLUT[lockonType.level1][lockonType.level2][lockonType.level3] then 103 if self.objectTypeLUT[lockonType.level1 ][lockonType.level2][lockonType.level3][lockonType.level4] then 104 info = self.objectTypeLUT[lockonType.level1][lockonType.level2][lockonType.level3][lockonType.level4] 105 else 106 info = self.objectTypeLUT[lockonType.level1][lockonType.level2][lockonType.level3] 107 end 108 else 109 info = self.objectTypeLUT[lockonType.level1][lockonType.level2] 110 end 111 else 112 info = self.objectTypeLUT[lockonType.level1] 103 113 end 104 114 end 105 return lotatcObjectType115 return info["flag"], info["tag"] 106 116 end, 117 107 118 108 119 -- ========================================================================== … … 111 122 Start = function( self) 112 123 -- Lookup table used to transcode lockonType to lotatcType 113 self.ObjectTypeLUT = { [wsType_Air] = { [wsType_Airplane] = self.AIRPLANE 114 , [wsType_Helicopter] = self.HELICOPTER 115 , [wsType_Free_Fall] = self.CHAFF_FLARE 124 self.objectTypeLUT = { [wsType_Air] = { [wsType_Airplane] = { ["flag"] = 1, ["tag"] = self.AIRPLANE } 125 , [wsType_Helicopter] = { ["flag"] = 1, ["tag"] = self.HELICOPTER} 116 126 } 117 , [wsType_Weapon] = { [wsType_Missile] = self.MISSILE 118 , [wsType_Bomb] = self.BOMB 119 , [wsType_Shell] = self.SHELL 120 , [wsType_NURS] = self.ROCKET 127 , [wsType_Ground] = { [wsType_Moving] = { ["flag"] = 1, ["tag"] = self.GROUND_MOVING } 128 , [wsType_Tank] = { [wsType_Gun] = { ["flag"] = 0, ["tag"] = self.TANK} 129 , [wsType_MissGun] = { ["flag"] = 0, ["tag"] = self.TANK} 130 , [wsType_Miss] = { ["flag"] = 0, ["tag"] = self.TANK} 131 , [wsType_Radar] = { ["flag"] = 1, ["tag"] = self.TANK} 132 , [wsType_NoWeapon] = { ["flag"] = 0, ["tag"] = self.TANK} 133 } 134 , [wsType_SAM] = { [wsType_Gun] = { ["flag"] = 0, ["tag"] = self.SAM} 135 , [wsType_Miss] = { ["flag"] = 0, ["tag"] = self.SAM} 136 , [wsType_MissGun] = { ["flag"] = 0, ["tag"] = self.SAM} 137 , [wsType_Radar] = { ["flag"] = 1, ["tag"] = self.SAM} 138 , [wsType_Radar_Gun] = { ["flag"] = 1, ["tag"] = self.SAM} 139 , [wsType_Radar_Miss] = { ["flag"] = 1, ["tag"] = self.SAM} 140 , [wsType_Radar_MissGun] = { ["flag"] = 1, ["tag"] = self.SAM} 141 , [wsType_NoWeapon] = { ["flag"] = 0, ["tag"] = self.SAM} 142 } 121 143 } 122 , [wsType_Ground] = { [wsType_Moving] = self.GROUND_MOVING 123 , [wsType_Standing] = self.GROUND_STANDING 124 , [wsType_Tank] = self.TANK 125 , [wsType_SAM] = self.SAM 126 } 127 , [wsType_Navy] = { [wsType_Ship] = self.SHIP 144 , [wsType_Navy] = { [wsType_Ship] = { ["flag"] = 1, ["tag"] = self.SHIP} 128 145 } 129 146 } 147 130 148 131 149 -- -------------------------------------------------------- … … 191 209 local worldObjects = LoGetWorldObjects() 192 210 for objectId, objectInfo in pairs( worldObjects) do 193 194 211 -- --------------------------------------------------- 195 212 -- Use lookUpTable to convert Lockon Type 196 local objectType = self.getLotatcTypeFromLockonType( self, objectInfo.Type) 213 local isDetectable 214 local objectType 215 isDetectable, objectType = self.getLotatcTypeFromLockonType( self, objectInfo.Type) 197 216 if objectType then 198 217 -- --------------------------------------------------- … … 261 280 groupName = "" 262 281 end 282 if not unitName then 283 unitName = "" 284 end 263 285 if not pilotName then 264 286 pilotName = "" … … 267 289 -- --------------------------------------------------- 268 290 -- Fill the buffer with NEW_OBJECT message 269 message = message..string.format( "%s|%s|%s|%s|%s|%s|%s", self.NEW_OBJECT, objectId, objectType, unitName, pilotName, coalition, groupName) 291 message = message..string.format( "%s|%s|%s|%s|%s|%s|%s|%s" 292 , self.NEW_OBJECT 293 , objectId 294 , objectType 295 , unitName 296 , pilotName 297 , coalition 298 , groupName 299 , isDetectable 300 ) 270 301 end -- end of: if createObject==true then 271 302 -
trunk/lotatc_server/lotatc_luaServer.py
r2088 r2118 429 429 # items[5] -> coalition 430 430 # items[6] -> groupName 431 # items[7] -> isDetectable 431 432 objectId = int(items[1]) 432 433 unitName = unicode(items[3], self.luaServer.lo_encoding) … … 453 454 # Process found unit 454 455 self.localObjectsDb[objectId].setGroupName( items[6]) 456 self.localObjectsDb[objectId].setDetectionFlag( items[7]) 455 457 self.foundUnit[items[4]] = items[6] 456 readIndex = 7458 readIndex = 8 457 459 458 460 … … 550 552 # Loop over the localObjectsDb to detect objects which are visible. 551 553 for (key, thisObject) in self.localObjectsDb.iteritems(): 554 # ------------------------------------------------------------------------------------- 555 # Check if the object if detectable by Lotatc 556 if not thisObject.isDetectable(): 557 continue 558 552 559 # ------------------------------------------------------------------------------------- 553 560 # Check if object is catchable -
trunk/lotatc_server/lotatc_object.py
r2080 r2118 39 39 self.unitClsId = unitClsId 40 40 self.groupName = "" 41 self.detection = False 41 42 42 43 # init default value for latitude and longitude … … 61 62 def setGroupName(self, groupName): 62 63 self.groupName = groupName 63 64 65 # ============================================================ 66 ## Set the flag which indicate if the unit is detectable by Latatc 67 # @param self instance id 68 # @param flag detection flag: "0"/"1" 69 def setDetectionFlag( self, flag): 70 if flag == "1": 71 self.detection = True 72 73 # ============================================================ 74 ## Tells if the unit is detectable by Lotatv 75 # @param self instance id 76 def isDetectable( self): 77 return self.detection 78 64 79 # ============================================================ 65 80 ## Returns a duplicated object … … 71 86 newObject.catchingRadar = self.catchingRadar 72 87 newObject.groupName = self.groupName 88 newObject.detection = self.detection 73 89 return newObject 74 90
Note: See TracChangeset
for help on using the changeset viewer.
