Thanks a lot, Sreeraj!! You are right. I made it work using file_sink.close() and file_sink.open() command.
Best, Nazmul On Mon, Aug 6, 2012 at 12:39 PM, sreeraj r <srees4sr...@yahoo.co.in> wrote: > This might be happening because "gr.file_sink" is not closing the passed > file handle until its destructed. I checked "gr_file_sink_base"'s source > and various functions like open, close and unbuffered writes are supported. > Try playing around with these(I haven't used these things yet). > > http://www.reynwar.net/gnuradio/sphinx/gr/sink_blk.html (Check > gr.file_sink section) > > --- > Regards > Sreeraj Rajendran > http://home.iitb.ac.in/~rsreeraj > > ------------------------------ > *From:* Nazmul Islam <mnis...@winlab.rutgers.edu> > *To:* GNURadio Discussion List <discuss-gnuradio@gnu.org> > *Sent:* Monday, 6 August 2012 8:52 PM > *Subject:* Re: [Discuss-gnuradio] Dynamic flow graph control > > Hi, > > I am trying to simplify my previous email for clarification. I am looking > to resolve the following issue: > > I have two flowgraphs: > > 1. USRP Source --> File Sink # self.file_sink = > gr.file_sink(gr.sizeof_gr_complex*1, "Data.dat") > 2. USRP Source --> Null Sink > > I have defined both of them inside a class. I use unlock --> disconnect > --> connect --> lock to switch from one flow graph to the other. When I > connect USRP-->Null, I work on the stored data of "Data.dat" file. > Thereafter, I want to clear the data of the "Data.dat" file. I use the > following line of code to obtain my goal: > > open("Data.dat",'w').close() > > However, this command does not seem to erase the data of "Data.dat" file, > i.e., when I run flow graph 1 again, the previous file does not get erased. > The file size of "Data.dat" keeps growing with each run of flow graph. > > How can I erase the contents of the file sink before I switch to flow > graph #1? > > Any suggestion will be very appreciated. Sorry for sending two emails on > the same matter. > > Thanks, > > Nazmul > > > > > > On Sun, Aug 5, 2012 at 6:46 PM, Nazmul Islam > <mnis...@winlab.rutgers.edu>wrote: > > Hello, > > I have an application where I need to collect the data for 5 seconds from > the USRP source and do offline processing for 5 seconds in a repeated > manner. I am planning to use the lock & unlock features of the gnuradio to > obtain my goals. The major part of my code is given below: > > > class SingleSource(grc_wxgui.top_block_gui): > > > self.source = > ..... > # Source block > self.throttle = > ...... > # throttle > self.file_sink = gr.file_sink(gr.sizeof_gr_complex*1, > "Data.dat") # File Sink > self.null_sink = > ............ > # Null sink > > self.connect((self.source, 0), (self.throttle, > 0)) > self.connect((self.throttle, 0), (self.sink, 0)) > > def reconf1(self): > self.disconnect((self.gr_throttle_0, > 0),(self.gr_file_sink_0, 0)) # Disconnecting the throttle & the > file sink > self.connect((self.gr_throttle_0, 0), > (self.gr_null_sink_0, 0)) # re-connecting the throttle & the > null sink > > def reconf2(self): > self.disconnect((self.gr_throttle_0, > 0),(self.gr_null_sink_0, 0)) # disconnecting the throttle & the > null sink > self.connect((self.gr_throttle_0, 0),(self.gr_file_sink_0, > 0)) # re-connecting the throttle & the file sink > > ................................ > > > if __name__ == '__main__': > > tb = SingleSource() > var = 1 > > tb.start() > # Flow graph starts > for loop in range(0,2): > > sleep(5) > # Collects the data in the file sink > > tb.lock() > > tb.reconf1() # > Flowgraph gets locked & reconfigured and unlocked > > tb.unlock() # Now, > data is going to the null sink. I don't need this data > sleep(5) > > ................. # Offline > processing > open("SineData.dat",'w').close() # I > WANT TO ERASE THE DATA IN THE FILE SINK AFTER PROCESSING > > # SO THAT THE FILE SIZE DOES NOT BIGGER > tb.lock() > tb.reconf2() # File > sink is getting reconnected so that I can collect the data in the next run > > tb.unlock() > > Now, the problem is: the file size of "SineData.dat" should not grow with > each loop since I am using open("SineData.dat",'w').close() . In each new > loop, I expect the file to only contain the latest information and not the > previous ones. However, I am finding that the file size keeps growing with > each loop, i.e., the open("SineData.dat",'w').close() command is not > working. > > Any suggestion will be very appreciated. > > Thanks, > > Nazmul > > > -- > Muhammad Nazmul Islam > > Graduate Student > Electrical & Computer Engineering > Wireless Information & Networking Laboratory > Rutgers, USA. > > > > > -- > Muhammad Nazmul Islam > > Graduate Student > Electrical & Computer Engineering > Wireless Information & Networking Laboratory > Rutgers, USA. > > > _______________________________________________ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > > -- Muhammad Nazmul Islam Graduate Student Electrical & Computer Engineering Wireless Information & Networking Laboratory Rutgers, USA.
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio