import tdsmParserMultis
import os
import ConfigParser
import XMLparser
import numpy as np
from sys import stderr
import math
from mayavi import mlab
# import peakutils
import xml.etree.ElementTree as ET
import tkFileDialog
import matplotlib.pyplot as plt




dir = '/Users/schimmt/Multis/app/FileAssociation/MULTIS_trials/Surgical Tools/'

donorIDs = os.listdir(dir)
donorIDs.sort()
donorIDlist = []
for item in donorIDs:
    if item != '.DS_Store':
        donorIDlist.append(item)

# for donorID in donorIDlist:

donorID = donorIDlist[0]
print donorIDlist

dir = dir+donorID+'/'
masterList, num_accept = XMLparser.getAcceptance(dir)
accepted_list = []
for x in masterList:
    if x[1] == 1:
        accepted_list.append(x[0])

print accepted_list

dir_data = os.path.join(dir, 'Data')
files = os.listdir(dir_data)
files.sort()

# Plot positions of tool for each accepted trial
for file in files:

    if any(file[0:3] in s for s in accepted_list):
        data = tdsmParserMultis.parseTDMSfile(os.path.join(dir_data, file))

        config = ConfigParser.RawConfigParser()
        if not config.read(os.path.join(os.path.join(dir, 'Configuration'), file[0:-5] + '_State.cfg')):
            raise IOError, "Cannot load configuration file... Check path."

        print '====================='
        print file

        if file[17] == 'R':
            tools = ['Retractor']
            loads = ['Retractor Load']
        elif file[17] == 'S':
            tools = ['Scalpel']
            loads = ['Scalpel Load']
        elif file[17] == 'F':
            tools = ['Forceps Left', 'Forceps Right']
            loads = ['Forceps Left Load', 'Forceps Right Load']

        print tools

        for i, tool in enumerate(tools):
            # try:
            # Get the raw data for tool position and load
            B_pos = data[u'State.' + tool]
            frame = 0
            time = data[u'Time'][u'Time']
            x = (B_pos[u'' + tool + '_x']) / 1000
            y = (B_pos[u'' + tool + '_y']) / 1000
            z = (B_pos[u'' + tool + '_z']) / 1000
            r = np.radians(B_pos[u'' + tool + '_roll'])
            p = np.radians(B_pos[u'' + tool + '_pitch'])
            w = np.radians(B_pos[u'' + tool + '_yaw'])




etest =1