Greetings,
I've been using Python to successfully parse files. When the entire
program was smaller, the variable firstMsg worked fine, but now
doesn't because it's used in function PID_MinMax. I know it's a result
of variables and their scope.

I declare the variable 'firstMsg = 0' in the main loop, pass it to the
function 'PID_MinMax(firstMsg, PID)'. When the function increments the
variable, it doesn't pass it back to the main program. What am I doing
wrong?


---- major snippage) ---
firstMsg = 0
skipHeader = 13

pPIDs = ['0321'] # hundreds more
pLen = len(pPIDs)
pMsgNum = pLen * [0]
pMax = pLen * [0]
pMin = pLen * [10]
pLast = pLen * [0]


def PID_MinMax(firstMsg, PID):
    idx = pPIDs.index(PID)
    pMsgNum[idx] += 1
    # Need to have 2 samples to determine Delta
    if firstMsg != 0:
        tDelta = tCurrent - pLast[idx]
        if tDelta > pMax[idx]:
            pMax[idx] = tDelta
        if tDelta < pMin[idx]:
            pMin[idx] = tDelta
    elif firstMsg == 0:
        firstMsg = 1
    pLast[idx] = tCurrent
    print pMin, pMax
    return firstMsg


############## main ##############
bf_file = file('bf_data/sByteflightLog_wISS.txt', 'r')
for line in bf_file:
    # skip header
    if skipHeader != 0:
        skipHeader -= 1
    # skip footer
    elif line == '\n':
        break
    else:
         raw_msg = line.split()
         tCurrent = int(raw_msg[0], 16) * 0.0001
         PID = raw_msg[2]

         if PID in pPIDs:
             PID_MinMax(firstMsg, PID)
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to