def main(args):
    DATA_PATH = os.getcwd()+"\\"

    # User Settings
    if os.path.isfile(DATA_PATH + args.userFile):
        userSettings = files.openFile(DATA_PATH,args.userFile)
    else:
        raise Exception ("user setting file not found")

    # internal (expert) Settings
    if args.expertFile:
        if os.path.isfile(DATA_PATH + args.expertFile):
            internalSettings = files.openFile(DATA_PATH,args.expertFile)
        else:
            raise Exception ("expert setting file not found")
    else:
        internalSettings = None

    # translators
    if os.path.isfile(DATA_PATH + "CGM1_1.translators"):
        translators = files.openFile(DATA_PATH,"CGM1_1.translators")
    else:
        translators = None


    # --- Manager ----
    manager = ModelManager.CGM1_1ConfigManager(userSettings,localInternalSettings=internalSettings,localTranslators=translators)
    manager.contruct()
    finalSettings = manager.getFinalSettings()
    files.prettyDictPrint(finalSettings)


    logging.info("=============Calibration=============")
    model,finalAcqStatic = cgm1_1.calibrate(DATA_PATH,
        manager.staticTrial,
        manager.translators,
        manager.requiredMp,
        manager.optionalMp,
        manager.leftFlatFoot,
        manager.rightFlatFoot,
        manager.markerDiameter,
        manager.pointSuffix,
        displayCoordinateSystem=True)



    btkTools.smartWriter(finalAcqStatic, str(DATA_PATH+finalSettings["Calibration"]["StaticTrial"]))#[:-4]+"-pyCGM2modelled.c3d"))
    logging.info("Static Calibration -----> Done")

    manager.updateMp(model)
    #files.prettyDictPrint(manager.finalSettings)

    logging.info("=============Fitting=============")
    for trial in manager.dynamicTrials:
        mfpa = None if trial["Mfpa"] == "Auto" else trial["Mfpa"]
        reconstructFilenameLabelled = trial["File"]

        acqGait = cgm1_1.fitting(model,DATA_PATH, reconstructFilenameLabelled,
            manager.translators,
            manager.markerDiameter,
            manager.pointSuffix,
            mfpa,
            manager.momentProjection,
            displayCoordinateSystem=True)

        btkTools.smartWriter(acqGait, str(DATA_PATH+reconstructFilenameLabelled))#[:-4]+"-pyCGM2modelled.c3d"))
        logging.info("---->dynamic trial (%s) processed" %(reconstructFilenameLabelled))

    logging.info("=============Writing of final Settings=============")
    i = 0
    while os.path.exists("CGM1.1 [%s].completeSettings" % i):
        i += 1
    filename = "CGM1.1 [" + str(i)+"].completeSettings"
    files.saveJson(DATA_PATH, filename, finalSettings)
    logging.info("---->complete settings (%s) exported" %(filename))


    raw_input("Press return to exit..")
def main(args):
    DATA_PATH = os.getcwd() + "\\"

    # User Settings
    if os.path.isfile(DATA_PATH + args.userFile):
        userSettings = files.openFile(DATA_PATH, args.userFile)
    else:
        raise Exception("user setting file not found")

    # internal (expert) Settings
    if args.expertFile:
        if os.path.isfile(DATA_PATH + args.expertFile):
            internalSettings = files.openFile(DATA_PATH, args.expertFile)
        else:
            raise Exception("expert setting file not found")
    else:
        internalSettings = None

    # --- Manager ----
    manager = EmgManager.EmgConfigManager(
        userSettings, localInternalSettings=internalSettings)
    manager.contruct()
    finalSettings = manager.getFinalSettings()
    files.prettyDictPrint(finalSettings)

    # reconfiguration of emg settings as lists
    EMG_LABELS, EMG_MUSCLES, EMG_CONTEXT, NORMAL_ACTIVITIES = manager.getEmgConfiguration(
    )

    #----- rectified view -------
    rectTrials = manager.temporal_trials
    analysis.processEMG(
        DATA_PATH,
        rectTrials,
        EMG_LABELS,
        highPassFrequencies=manager.BandpassFrequencies,
        envelopFrequency=manager.EnvelopLowpassFrequency,
        fileSuffix=None)  # high pass then low pass for all c3ds

    for trial in rectTrials:
        plot.plotTemporalEMG(DATA_PATH,
                             trial,
                             EMG_LABELS,
                             EMG_MUSCLES,
                             EMG_CONTEXT,
                             NORMAL_ACTIVITIES,
                             exportPdf=True,
                             rectify=manager.rectifyFlag)

    #----- Gait normalized envelop -------
    envTrials = manager.gaitNormalized_trials
    analysis.processEMG(
        DATA_PATH,
        envTrials,
        EMG_LABELS,
        highPassFrequencies=manager.BandpassFrequencies,
        envelopFrequency=manager.EnvelopLowpassFrequency,
        fileSuffix=None)  # high pass then low pass for all c3ds

    emgAnalysisInstance = analysis.makeEmgAnalysis(DATA_PATH, envTrials,
                                                   EMG_LABELS, None, None)

    filename = manager.title

    if not manager.consistencyFlag:
        plot.plotDescriptiveEnvelopEMGpanel(DATA_PATH,
                                            emgAnalysisInstance,
                                            EMG_LABELS,
                                            EMG_MUSCLES,
                                            EMG_CONTEXT,
                                            NORMAL_ACTIVITIES,
                                            normalized=False,
                                            exportPdf=True,
                                            outputName=filename)
    else:
        plot.plotConsistencyEnvelopEMGpanel(DATA_PATH,
                                            emgAnalysisInstance,
                                            EMG_LABELS,
                                            EMG_MUSCLES,
                                            EMG_CONTEXT,
                                            NORMAL_ACTIVITIES,
                                            normalized=False,
                                            exportPdf=True,
                                            outputName=filename)

    logging.info("=============Writing of final Settings=============")
    files.saveJson(DATA_PATH, str(filename + "-EMG.completeSettings"),
                   finalSettings)
    logging.info("---->complete settings (%s) exported" %
                 (str(filename + "-EMG.completeSettings")))

    raw_input("Press return to exit..")