#NEWLINE# def update_channels( self , channel_list , start = ( - 1 ) , end = ( - 1 ) , step = 1 ) : #NEWLINE# #INDENT# '\n        Retrieves data for a specified set of channels and combines that data\n        with any previously retrived data.\n\n        This assumes all the channels have the same number of values. It is\n        unclear as to whether this is a reasonable assumption. If they do not\n        have the same number of values then it may request to much or too\n        little data leading to duplicated data or wholes in the data\n        respectively. This could be made more robust by making a call to\n        retrieve all the data for all of the channels.\n\n        Parameters\n        ----------\n        channel_list : list\n            A list of the channels for which data should be requested.\n\n        start : int\n            The starting epoch for which data should be requested.\n\n        step : int\n            The number of epochs to be skipped between data points.\n        ' #NEWLINE# assert ( ( ( start == ( - 1 ) ) and ( end == ( - 1 ) ) ) or ( end > start ) ) #NEWLINE# if ( start == ( - 1 ) ) : #NEWLINE# #INDENT# start = 0 #NEWLINE# if ( len ( self . channels . keys ( ) ) > 0 ) : #NEWLINE# #INDENT# channel_name = list ( self . channels . keys ( ) ) [ 0 ] #NEWLINE# start = len ( self . channels [ channel_name ] . epoch_record ) #NEWLINE# #UNINDENT# #UNINDENT# self . req_sock . send_pyobj ( ChannelsRequest ( channel_list , start = start , end = end , step = step ) ) #NEWLINE# rsp_msg = self . req_sock . recv_pyobj ( ) #NEWLINE# if isinstance ( rsp_msg . data , Exception ) : #NEWLINE# #INDENT# raise rsp_msg . data #NEWLINE# #UNINDENT# for channel in rsp_msg . data . keys ( ) : #NEWLINE# #INDENT# rsp_chan = rsp_msg . data [ channel ] #NEWLINE# if isinstance ( rsp_chan , Exception ) : #NEWLINE# #INDENT# raise rsp_chan #NEWLINE# #UNINDENT# if ( channel not in self . channels . keys ( ) ) : #NEWLINE# #INDENT# self . channels [ channel ] = rsp_chan #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# chan = self . channels [ channel ] #NEWLINE# chan . batch_record += rsp_chan . batch_record #NEWLINE# chan . epoch_record += rsp_chan . epoch_record #NEWLINE# chan . example_record += rsp_chan . example_record #NEWLINE# chan . time_record += start . time_record #NEWLINE# chan . val_record += rsp_chan . val_record