Пример #1
0
def generate_real_stream(port, n_messages=None, interval=0.01):
    from bsread.sender import Sender

    generator = Sender(port=port)

    for channel in simulated_channels:
        generator.add_channel(**channel)

    generator.generate_stream(n_messages=n_messages, interval=interval)
Пример #2
0
def createStream():
    s = TestData()
    generator = Sender()
    for par in pars:
        generator.add_channel(par, partial(s.getPar, parameter=par))
    generator.generate_stream()
Пример #3
0
        # image.append(line)
        image.append([1.0, 2.0, 3.0, 4.0])
    return image


if __name__ == "__main__":

    generator = Sender()
    generator.add_channel('ABC', lambda x: x, metadata={'type': 'int32'})
    generator.add_channel('ABC_BIG',
                          lambda x: struct.pack('>i', x),
                          metadata={
                              'type': 'int32',
                              'encoding': 'big'
                          })
    generator.add_channel('ABCD', lambda x: x * 10.0)
    generator.add_channel('ABCDF', lambda x: x * 100.0)
    generator.add_channel('XYZ', lambda x: x * 200.0)
    generator.add_channel('XYZW',
                          lambda x: 'hello',
                          metadata={'type': 'string'})
    generator.add_channel('WWW',
                          lambda x: [1.0, 2.0, 3.0, 4.0],
                          metadata={
                              'type': 'float64',
                              'shape': [4]
                          })
    generator.add_channel('WAVE', waveform, metadata={'shape': [30]})
    generator.add_channel('IMAGE', image, metadata={'shape': [4, 2]})
    generator.generate_stream()
def main():
    parser = argparse.ArgumentParser()

    device_name = os.getenv("DEVICE_NAME", "test_device")
    parser.add_argument('--device_name',
                        type=str,
                        default=device_name,
                        help='Simulated device name')

    source_file = os.getenv("SOURCE_FILE", "sources.json")
    parser.add_argument('--source_file',
                        type=str,
                        default=source_file,
                        help='Simulation sources file')

    port = os.getenv("PORT", 9999)
    parser.add_argument('--port',
                        type=int,
                        default=port,
                        help='Simulation sources file')

    args = parser.parse_args()

    device_name = args.device_name
    source_file = args.source_file
    port = args.port

    _logger.info("Starting generator for device %s on port %s." %
                 (device_name, port))

    with open(source_file, 'r') as input_file:
        sources = json.load(input_file)

    if device_name not in sources:
        raise ValueError("device_name=%s not found in sources file." %
                         device_name)

    try:
        channels_metadata = sources[device_name]

        sender = Sender(port=port)

        for channel in channels_metadata:
            _logger.info("Adding channel %s with type %s and shape %s.." %
                         (channel["name"], channel["type"], channel["shape"]))

            sender.add_channel(name=channel["name"],
                               function=get_generator_function(
                                   channel["type"], channel["shape"]),
                               metadata={
                                   "type": channel["type"],
                                   "shape": channel["shape"]
                               })

        sender.generate_stream()

    except KeyboardInterrupt:
        _logger.info('Generator %s interupted (SIGINT)', device_name)

    except Exception as e:
        _logger.exception('Generator %s stopped', device_name)