Ejemplo n.º 1
0
async def _test(pvdb=None):
    logger.setLevel('DEBUG')
    if pvdb is None:
        pvdb = {
            'pi':
            ChannelDouble(
                value=3.14,
                lower_disp_limit=3.13,
                upper_disp_limit=3.15,
                lower_alarm_limit=3.12,
                upper_alarm_limit=3.16,
                lower_warning_limit=3.11,
                upper_warning_limit=3.17,
                lower_ctrl_limit=3.10,
                upper_ctrl_limit=3.18,
                precision=5,
                units='doodles',
            ),
            'enum':
            ChannelEnum(
                value='b',
                enum_strings=['a', 'b', 'c', 'd'],
            ),
            'enum2':
            ChannelEnum(
                value='bb',
                enum_strings=['aa', 'bb', 'cc', 'dd'],
            ),
            'int':
            ChannelInteger(
                value=96,
                units='doodles',
            ),
            'char':
            ca.ChannelChar(
                value=b'3',
                units='poodles',
                lower_disp_limit=33,
                upper_disp_limit=35,
                lower_alarm_limit=32,
                upper_alarm_limit=36,
                lower_warning_limit=31,
                upper_warning_limit=37,
                lower_ctrl_limit=30,
                upper_ctrl_limit=38,
            ),
            'chararray':
            ca.ChannelChar(value=b'1234567890' * 2),
            'str':
            ca.ChannelString(value='hello', string_encoding='latin-1'),
            'stra':
            ca.ChannelString(value=['hello', 'how is it', 'going'],
                             string_encoding='latin-1'),
        }
        pvdb['pi'].alarm.alarm_string = 'delicious'

    ctx = Context('0.0.0.0', find_next_tcp_port(), pvdb)
    logger.info('Server starting up on %s:%d', ctx.host, ctx.port)
    return await ctx.run()
Ejemplo n.º 2
0
def curio_server():
    caget_pvdb = {
        'pi': ca.ChannelDouble(value=3.14,
                               lower_disp_limit=3.13,
                               upper_disp_limit=3.15,
                               lower_alarm_limit=3.12,
                               upper_alarm_limit=3.16,
                               lower_warning_limit=3.11,
                               upper_warning_limit=3.17,
                               lower_ctrl_limit=3.10,
                               upper_ctrl_limit=3.18,
                               precision=5,
                               units='doodles',
                               ),
        'enum': ca.ChannelEnum(value='b',
                               enum_strings=['a', 'b', 'c', 'd'],
                               ),
        'int': ca.ChannelInteger(value=33,
                                 units='poodles',
                                 lower_disp_limit=33,
                                 upper_disp_limit=35,
                                 lower_alarm_limit=32,
                                 upper_alarm_limit=36,
                                 lower_warning_limit=31,
                                 upper_warning_limit=37,
                                 lower_ctrl_limit=30,
                                 upper_ctrl_limit=38,
                                 ),
        'char': ca.ChannelChar(value=b'3',
                               units='poodles',
                               lower_disp_limit=33,
                               upper_disp_limit=35,
                               lower_alarm_limit=32,
                               upper_alarm_limit=36,
                               lower_warning_limit=31,
                               upper_warning_limit=37,
                               lower_ctrl_limit=30,
                               upper_ctrl_limit=38,
                               ),
        'str': ca.ChannelString(value='hello',
                                alarm=str_alarm_status,
                                reported_record_type='caproto'),
        }

    async def run_server():
        port = find_next_tcp_port(host=SERVER_HOST)
        print('Server will be on', (SERVER_HOST, port))
        ctx = server.Context(SERVER_HOST, port, caget_pvdb, log_level='DEBUG')
        try:
            await ctx.run()
        except Exception as ex:
            print('Server failed', ex)
            raise
        finally:
            print('Server exiting')

    return run_server, caget_pvdb
Ejemplo n.º 3
0
        lower_disp_limit=33,
        upper_disp_limit=35,
        lower_alarm_limit=32,
        upper_alarm_limit=36,
        lower_warning_limit=31,
        upper_warning_limit=37,
        lower_ctrl_limit=30,
        upper_ctrl_limit=38,
    ),
    'char':
    ca.ChannelChar(
        value=b'3',
        units='poodles',
        lower_disp_limit=33,
        upper_disp_limit=35,
        lower_alarm_limit=32,
        upper_alarm_limit=36,
        lower_warning_limit=31,
        upper_warning_limit=37,
        lower_ctrl_limit=30,
        upper_ctrl_limit=38,
    ),
    'str':
    ca.ChannelString(value='hello',
                     alarm_status=str_alarm_status,
                     reported_record_type='caproto'),
}


@pytest.fixture(scope='function')
def curio_server():
    async def run_server():
Ejemplo n.º 4
0
def pvdb_from_server_example():
    alarm = ca.ChannelAlarm(
        status=ca.AlarmStatus.READ,
        severity=ca.AlarmSeverity.MINOR_ALARM,
        alarm_string='alarm string',
    )

    pvdb = {
        'pi':
        ca.ChannelDouble(
            value=3.14,
            lower_disp_limit=3.13,
            upper_disp_limit=3.15,
            lower_alarm_limit=3.12,
            upper_alarm_limit=3.16,
            lower_warning_limit=3.11,
            upper_warning_limit=3.17,
            lower_ctrl_limit=3.10,
            upper_ctrl_limit=3.18,
            precision=5,
            units='doodles',
            alarm=alarm,
        ),
        'enum':
        ca.ChannelEnum(
            value='b',
            enum_strings=['a', 'b', 'c', 'd'],
        ),
        'enum2':
        ca.ChannelEnum(
            value='bb',
            enum_strings=['aa', 'bb', 'cc', 'dd'],
        ),
        'int':
        ca.ChannelInteger(
            value=96,
            units='doodles',
        ),
        'char':
        ca.ChannelByte(
            value=b'3',
            units='poodles',
            lower_disp_limit=33,
            upper_disp_limit=35,
            lower_alarm_limit=32,
            upper_alarm_limit=36,
            lower_warning_limit=31,
            upper_warning_limit=37,
            lower_ctrl_limit=30,
            upper_ctrl_limit=38,
        ),
        'bytearray':
        ca.ChannelByte(value=b'1234567890' * 2),
        'chararray':
        ca.ChannelChar(value=b'1234567890' * 2),
        'str':
        ca.ChannelString(value='hello', string_encoding='latin-1',
                         alarm=alarm),
        'str2':
        ca.ChannelString(value='hello', string_encoding='latin-1',
                         alarm=alarm),
        'stra':
        ca.ChannelString(value=['hello', 'how is it', 'going'],
                         string_encoding='latin-1'),
    }

    return pvdb
Ejemplo n.º 5
0
                                  ),
        'int3': ca.ChannelInteger(value=96,
                                  units='doodles',
                                  ),
        'char': ca.ChannelByte(value=b'3',
                               units='poodles',
                               lower_disp_limit=33,
                               upper_disp_limit=35,
                               lower_alarm_limit=32,
                               upper_alarm_limit=36,
                               lower_warning_limit=31,
                               upper_warning_limit=37,
                               lower_ctrl_limit=30,
                               upper_ctrl_limit=38,
                               ),
        'chararray': ca.ChannelChar(value=b'1234567890' * 2),
        'str': ca.ChannelString(value='hello',
                                string_encoding='latin-1',
                                alarm=alarm),
        'str2': ca.ChannelString(value='hello',
                                 string_encoding='latin-1',
                                 alarm=alarm),
        'stra': ca.ChannelString(value=['hello', 'how is it', 'going'],
                                 string_encoding='latin-1'),
        }


def main():
    ioc_options, run_options = ioc_arg_parser(
        default_prefix='type_varieties:',
        desc='Run an IOC with PVs of various data types.')
Ejemplo n.º 6
0
 ),
 "char":
 ca.ChannelByte(
     value=b"3",
     units="poodles",
     lower_disp_limit=33,
     upper_disp_limit=35,
     lower_alarm_limit=32,
     upper_alarm_limit=36,
     lower_warning_limit=31,
     upper_warning_limit=37,
     lower_ctrl_limit=30,
     upper_ctrl_limit=38,
 ),
 "chararray":
 ca.ChannelChar(value=b"1234567890" * 2),
 "str":
 ca.ChannelString(value="hello", string_encoding="latin-1", alarm=alarm),
 "str2":
 ca.ChannelString(value="hello", string_encoding="latin-1", alarm=alarm),
 "stra":
 ca.ChannelString(value=["hello", "how is it", "going"],
                  string_encoding="latin-1"),
 "waveform":
 ca.ChannelData(value=np.random.poisson(100, 4000)),
 "empty_string":
 ca.ChannelString(value="", string_encoding="latin-1"),
 "empty_bytes":
 ca.ChannelByte(value=b""),
 "empty_char":
 ca.ChannelChar(value=b""),
Ejemplo n.º 7
0
 ),
 'char':
 ca.ChannelByte(
     value=b'3',
     units='poodles',
     lower_disp_limit=33,
     upper_disp_limit=35,
     lower_alarm_limit=32,
     upper_alarm_limit=36,
     lower_warning_limit=31,
     upper_warning_limit=37,
     lower_ctrl_limit=30,
     upper_ctrl_limit=38,
 ),
 'chararray':
 ca.ChannelChar(value=b'1234567890' * 2),
 'str':
 ca.ChannelString(value='hello', string_encoding='latin-1', alarm=alarm),
 'str2':
 ca.ChannelString(value='hello', string_encoding='latin-1', alarm=alarm),
 'stra':
 ca.ChannelString(value=['hello', 'how is it', 'going'],
                  string_encoding='latin-1'),
 'waveform':
 ca.ChannelData(value=np.random.poisson(100, 4000)),
 'empty_string':
 ca.ChannelString(value='', string_encoding='latin-1'),
 'empty_bytes':
 ca.ChannelByte(value=b''),
 'empty_char':
 ca.ChannelChar(value=b''),