def start(self): # Mock data for this metric signal = sine_wave(self.number_points, self.sampling_frequency, self.alpha_amplitude, self.alpha_freq, self.beta_amplitude, self.beta_freq, self.notch_amplitude, self.notch_freq) for publisher in self.publishers: metrics_to_num_channels = publisher.metrics_to_num_channels() # start a thread per metric to not block the main thread for (metric_name, num_channels) in metrics_to_num_channels.items(): data = signal_generator(num_channels, self.sampling_frequency, signal) t = threading.Thread(target=_publish_data, args=(publisher, metric_name, data)) t.daemon = True self.threads.append(t) t.start()
def main(): # Sine wave params alpha_amplitude = 10.0 alpha_freq = 10.0 beta_amplitude = 5.0 beta_freq = 25.0 notch_amplitude = 10.0 notch_freq = 60.0 # Simulate ambiant electrical noise # Mock data generator (sine wave) sampling_frequency = 250.0 # 1/250 = 0.004 s number_points = 250 signal = sine_wave(number_points, sampling_frequency, alpha_amplitude, alpha_freq, beta_amplitude, beta_freq, notch_amplitude, notch_freq) data = signal_generator(num_channels, sampling_frequency, signal) # Setup the publisher publisher = PikaPublisher(base_routing_key=base_routing_key, rabbitmq_address=rabbitmq_address, rabbitmq_user=rabbitmq_user, rabbitmq_pwd=rabbitmq_pwd) publisher.connect() publisher.register(metric_name, num_channels, buffer_size) # Publish data print "Publishing data ..." try: for datapoint in data: publisher.publish(metric_name, datapoint) except KeyboardInterrupt: publisher.disconnect() time.sleep(0.1) sys.exit(0)
def main(): # Params sampling_frequency = 250.0 # i.e. 0.004 seconds (=1/250.0) alpha_amplitude = 1.0 alpha_freq = 10.0 beta_amplitude = 1.0 beta_freq = 25.0 notch_amplitude = 10.0 notch_freq = 60.0 num_channels = 8 number_points = 249 buffer_size = 10 num_buffers_to_plot = 20 # Sine wave data signal = sine_wave(number_points, sampling_frequency, alpha_amplitude, alpha_freq, beta_amplitude, beta_freq, notch_amplitude, notch_freq) data = signal_generator(num_channels, sampling_frequency, signal) # plot data data_to_plot = [] buffer = [] for datapoint in data: buffer.append(datapoint) data_to_plot.append(datapoint) if len(buffer) == buffer_size: print buffer buffer = [] if len(data_to_plot) == num_buffers_to_plot * buffer_size: plot_data(num_channels, data_to_plot) sys.exit(0)
def start(self): # Mock data for this metric signal = sine_wave(self.number_points, self.sampling_frequency, self.alpha_amplitude, self.alpha_freq, self.beta_amplitude, self.beta_freq, self.notch_amplitude, self.notch_freq) for publisher in self.publishers: metrics_to_num_channels = publisher.metrics_to_num_channels() for (metric_name, num_channels) in metrics_to_num_channels.items(): data = signal_generator(num_channels, self.sampling_frequency, signal) t = threading.Thread(target=_publish_data, args=(publisher, metric_name, data)) t.daemon = True self.threads.append(t) t.start()
def main(): # Params sampling_frequency = 250.0 # i.e. 0.004 seconds (=1/250.0) alpha_amplitude = 1.0 alpha_freq = 10.0 beta_amplitude = 1.0 beta_freq = 25.0 notch_amplitude = 10.0 notch_freq = 60.0 num_channels = 8 number_points = 249 buffer_size = 10 num_buffers_to_plot = 20 # Sine wave data signal = sine_wave( number_points, sampling_frequency, alpha_amplitude, alpha_freq, beta_amplitude, beta_freq, notch_amplitude, notch_freq, ) data = signal_generator(num_channels, sampling_frequency, signal) # plot data data_to_plot = [] buffer = [] for datapoint in data: buffer.append(datapoint) data_to_plot.append(datapoint) if len(buffer) == buffer_size: print buffer buffer = [] if len(data_to_plot) == num_buffers_to_plot * buffer_size: plot_data(num_channels, data_to_plot) sys.exit(0)