269def unpackLiveFraction(trigPayload, priority = 'high'):
270
271 liveVec = array.array('f', 3564*[0.])
272
273 if priority == 'high':
274 blob = trigPayload['HighPriority']
275 elif priority == 'low':
276 blob = trigPayload['LowPriority']
277 else:
278 print(
'unpackLiveFraction - unknown priority requested %s', str(priority))
279 return liveVec
280
281 bloblength = blob.size()
282
283
284
285 if bloblength < 3*3564:
286
287 print(
'unpackLiveFraction found blob length %d!' % bloblength)
288 return liveVec
289
290 blobCopy = blob.read()
291
292
293
294 turnCounter = trigPayload['TurnCounter']
295 if not turnCounter > 0:
296 return liveVec
297
298
299
300 byte = bConvertList(blobCopy, 1, 3*3564)
301
302 for i in range(3564):
303
304 busyCounter = byte[3*i] | (byte[3*i+1] << 8) | (byte[3*i+2] << 16)
305
306
307
308
309
310
311
312
313
314 liveFrac = 1 - float(busyCounter) / turnCounter
315
316 liveVec[i] = liveFrac
317
318
319
320 return liveVec
321