def read(self): xlist = [] ylist = [] ## Load simulation jwdb.ams_sim_load_simu_with_complex_by_index(self.fileid, self.simulation.id) wname = '' wid = 0 while wname != self.name and wid >= 0: wid, wname = jwdb.ams_sim_get_next_waveform_name(self.fileid, wid) # if wid < 0: # raise Exception('Could not find waveform %s'%self.name) ## Handle digital waveforms if not jwdb.ams_sim_is_analog_wave(self.yunit): pass ## Handle complex analog waveforms elif ord(jwdb.ams_sim_is_wave_complex(self.fileid, self.id)): readflag, x, yr, yi = jwdb.ams_sim_read_analog_x_y_data_complex(self.fileid, self.id) while readflag > 0: xlist.append(x) ylist.append(numpy.complex(yr, yi)) readflag, x, yr, yi = jwdb.ams_sim_read_analog_x_y_data_complex(self.fileid, self.id) ## Handle real analog waveforms else: readflag, x, y = jwdb.ams_sim_read_analog_x_y_data(self.fileid, self.id) while readflag > 0: xlist.append(x) ylist.append(y) readflag, x, y = jwdb.ams_sim_read_analog_x_y_data(self.fileid, self.id) return xlist, ylist
while wid > 0: print wid, wavename ## Get unit of Y axis yunit = jwdb.ams_sim_get_wave_unit_name(fileid, wid) print "yunit", yunit ## Handle digital waveforms if not jwdb.ams_sim_is_analog_wave(yunit): pass ## Handle complex analog waveforms elif jwdb.ams_sim_is_wave_complex(fileid, wid): readflag, x, yr, yi = jwdb.ams_sim_read_analog_x_y_data_complex( fileid, wid) while readflag > 0: readflag, x, yr, yi = jwdb.ams_sim_read_analog_x_y_data_complex( fileid, wid) ## Handle real analog waveforms else: readflag, x, y = jwdb.ams_sim_read_analog_x_y_data(fileid, wid) while readflag > 0: readflag, x, y = jwdb.ams_sim_read_analog_x_y_data(fileid, wid) ## Get next waveform name and identifier wid, wavename = jwdb.ams_sim_get_next_waveform_name(fileid, wid) ## Load next simulation results loadflag = jwdb.ams_sim_load_simu_with_complex(fileid) jwdb.ams_sim_close_read_file(fileid)
wid, wavename = jwdb.ams_sim_get_next_waveform_name(fileid, 0) while wid > 0: print wid, wavename ## Get unit of Y axis yunit = jwdb.ams_sim_get_wave_unit_name(fileid, wid) print "yunit", yunit ## Handle digital waveforms if not jwdb.ams_sim_is_analog_wave(yunit): pass ## Handle complex analog waveforms elif jwdb.ams_sim_is_wave_complex(fileid, wid): readflag, x, yr, yi = jwdb.ams_sim_read_analog_x_y_data_complex(fileid, wid) while readflag > 0: readflag, x, yr, yi = jwdb.ams_sim_read_analog_x_y_data_complex(fileid, wid) ## Handle real analog waveforms else: readflag, x, y = jwdb.ams_sim_read_analog_x_y_data(fileid, wid) while readflag > 0: readflag, x, y = jwdb.ams_sim_read_analog_x_y_data(fileid, wid) ## Get next waveform name and identifier wid, wavename = jwdb.ams_sim_get_next_waveform_name(fileid, wid) ## Load next simulation results loadflag = jwdb.ams_sim_load_simu_with_complex(fileid) jwdb.ams_sim_close_read_file(fileid)