Ejemplo n.º 1
0
    def __init__(self, raw_data):
        """
        Parameters
        ----------
        raw_data: RawTLPdata
            RawTLPdata instance
        """
        self.has_report = False

        file_path = raw_data.original_file_name
        tlp_curve = raw_data.tlp_curve
        ## PSA thi is a trial to integrate the data analysis
        baseDir = os.path.dirname(file_path)

        devName = os.path.splitext(os.path.basename(str(file_path)))[0]

        if not os.path.exists(os.path.join(baseDir, 'report_analysis')):
            os.mkdir(os.path.join(baseDir, 'report_analysis'))

        self.spot_v = 0.5    # default value for leakage extraction : 0.5V
        self.fail_perc = 15  # default value for failure level 15%
        self.seuil = -0.4    # default for triggering point extraction: -0.4V

        my_tlp_analysis = TLPAnalysis(tlp_curve)
        my_tlp_analysis.set_threshold(self.seuil)

        if raw_data.has_leakage_ivs:
            my_tlp_analysis.set_leak_analysis(raw_data._iv_leak_data)
            my_tlp_analysis.set_spot(self.spot_v)
            my_tlp_analysis.set_fail(self.fail_perc)

        elif raw_data.has_leakage_evolution:
            my_tlp_analysis.set_evol_analysis(raw_data.leak_evol)
            my_tlp_analysis.set_fail(self.fail_perc)

        my_tlp_analysis.set_device_name(devName)
        my_tlp_analysis.set_base_dir(baseDir)

        my_tlp_analysis.update_analysis()

        self.myOfile = baseDir + os.sep + devName + '_report.html'
        self.css = os.path.abspath("." + os.sep + "ESDAnalysisTool.css")

        self.report = TLPReporting()
        self.report.set_css_format(self.css)

        self.has_report = self.report.create_report(my_tlp_analysis)
        self.report.save_report(self.myOfile)

        self.my_tlp_analysis = my_tlp_analysis
Ejemplo n.º 2
0
class RawTLPdataAnalysis(object):
    """Provide analysis on raw measurement data
    """

    def __init__(self, raw_data):
        """
        Parameters
        ----------
        raw_data: RawTLPdata
            RawTLPdata instance
        """
        self.has_report = False

        file_path = raw_data.original_file_name
        tlp_curve = raw_data.tlp_curve
        ## PSA thi is a trial to integrate the data analysis
        baseDir = os.path.dirname(file_path)

        devName = os.path.splitext(os.path.basename(str(file_path)))[0]

        if not os.path.exists(os.path.join(baseDir, 'report_analysis')):
            os.mkdir(os.path.join(baseDir, 'report_analysis'))

        self.spot_v = 0.5    # default value for leakage extraction : 0.5V
        self.fail_perc = 15  # default value for failure level 15%
        self.seuil = -0.4    # default for triggering point extraction: -0.4V

        my_tlp_analysis = TLPAnalysis(tlp_curve)
        my_tlp_analysis.set_threshold(self.seuil)

        if raw_data.has_leakage_ivs:
            my_tlp_analysis.set_leak_analysis(raw_data._iv_leak_data)
            my_tlp_analysis.set_spot(self.spot_v)
            my_tlp_analysis.set_fail(self.fail_perc)

        elif raw_data.has_leakage_evolution:
            my_tlp_analysis.set_evol_analysis(raw_data.leak_evol)
            my_tlp_analysis.set_fail(self.fail_perc)

        my_tlp_analysis.set_device_name(devName)
        my_tlp_analysis.set_base_dir(baseDir)

        my_tlp_analysis.update_analysis()

        self.myOfile = baseDir + os.sep + devName + '_report.html'
        self.css = os.path.abspath("." + os.sep + "ESDAnalysisTool.css")

        self.report = TLPReporting()
        self.report.set_css_format(self.css)

        self.has_report = self.report.create_report(my_tlp_analysis)
        self.report.save_report(self.myOfile)

        self.my_tlp_analysis = my_tlp_analysis
########### end of addon by PAS July 2nd, 2012

    def update_analysis(self):
        #print "analysis running an update"
        self.my_tlp_analysis.set_spot(self.spot_v)
        self.my_tlp_analysis.set_fail(self.fail_perc)
        self.my_tlp_analysis.set_threshold(self.seuil)
        self.my_tlp_analysis.update_analysis()

        if self.has_report:
            self.report.clear_report()
            self.has_report = self.report.create_report(self.my_tlp_analysis)
            self.report.save_report(self.myOfile)

    def update_style(self):
        self.report.clear_report()
        self.report.set_css_format(self.css)
        self.has_report = self.report.create_report(self.my_tlp_analysis)
        self.report.save_report(self.myOfile)

    def save_analysis(self, save_name):
        if self.has_report:
            self.report.clear_report()
            self.has_report = self.report.create_doc(self.my_tlp_analysis)
            f = open(save_name, "w")
            f.write(self.report.output)
            f.close()

            baseDir = os.path.dirname(self.myOfile)
            pathName = os.path.dirname(save_name)
            rep = os.path.join(baseDir, 'report_analysis')
            #names=os.listdir(rep)
            names = glob.glob(rep + os.sep + "*.png")
            #print rep+"/*.png",names
            for item in names:
                (mypath, myname) = os.path.split(item)
                dest = pathName + os.sep + myname
                shutil.copy(item, dest)