Пример #1
0
        if line_in is None or len(line_in) == 0:
            break

        if line_in[0] == '{':
            # then assume like {"offset":1, "data":$GPGGA,094013.0 ... },
            if line_in[-1] == ',':
                line_in = line_in[:-1]

            return eval(line_in)

        # else, get next line

    return None


if __name__ == "__main__":
    import sys
    from cp_lib.load_settings_ini import copy_config_ini_to_json, \
        load_sdk_ini_as_dict

    copy_config_ini_to_json()

    app_path = "demo/gps_replay"
    my_app = CradlepointAppBase(app_path, call_router=False)
    # force a heavy reload of INI (app base normally only finds JSON)
    my_app.settings = load_sdk_ini_as_dict(app_path)

    _result = run_router_app(my_app)
    my_app.logger.info("Exiting, status code is {}".format(_result))
    sys.exit(_result)
Пример #2
0
    # our fake data, time-fixed to me NOW
    request = fix_time_sentence("$GPGGA,094013.0,4334.784909,N,11612.7664" +
                                "48,W,1,09,0.9,830.6,M,-11.0,M,,*60")
    request = request.encode()
    base_app.logger.debug("Req({})".format(request))
    sock.send(request)

    # this message has NO response!
    time.sleep(2.0)

    sock.close()

    return 0


if __name__ == '__main__':
    from cp_lib.app_base import CradlepointAppBase
    import tools.make_load_settings

    app_name = 'demo.gps_gate'

    # we share the settings.ini in demo/gps_gate/settings.ini
    base_app = CradlepointAppBase(full_name=app_name, call_router=False)

    # force a full make/read of {app_path}/settings.ini
    base_app.settings = tools.make_load_settings.load_settings(
        base_app.app_path)

    run_client()
Пример #3
0
    def test_get_settings(self):
        """
        :return:
        """
        from cp_lib.app_base import CradlepointAppBase

        print()  # move past the '.'

        # we'll just use this as example, assuming .config/setting.ini
        # and
        name = "network.tcp_echo"
        obj = CradlepointAppBase(name, call_router=False)

        # just slam in a known 'data tree'
        obj.settings = {
            'application': {
                'firmware': '6.1',
                'name': 'make',
                'restart': 'true',
                'reboot': True,
                'sleeping': 'On',
                'explosion': 'enabled',
            },
            'router_api': {
                'user_name': 'admin',
                'interface': 'ENet USB-1',
                'password': '******',
                'local_ip': '192.168.1.1'
            },
            'logging': {
                'syslog_ip': '192.168.1.6',
                'pc_syslog': 'false',
                'level': 'debug'
            },
            'startup': {
                'boot_delay_for_wan': 'True',
                'exit_delay': '30 sec',
                'boot_delay_max': '5 min',
                'bomb_delay': 17,
                'rain_delay': '19',
                'boot_delay_for_time': 'True'
            },
            'glob_dir': 'config',
            'base_name': 'settings',
            'app_dir': 'network\\tcp_echo\\',
        }

        logging.info("TEST simple get_setting(), without force_type")
        self.assertEqual("make", obj.get_setting("application.name"))
        self.assertEqual("6.1", obj.get_setting("application.firmware"))
        self.assertEqual(True, obj.get_setting("application.reboot"))

        logging.info("TEST get_setting(), with force_type=bool")
        self.assertEqual("true", obj.get_setting("application.restart"))
        self.assertEqual(
            True, obj.get_setting("application.restart", force_type=bool))
        self.assertEqual(True, obj.get_setting("application.reboot"))
        self.assertEqual(
            True, obj.get_setting("application.reboot", force_type=bool))
        self.assertEqual(1,
                         obj.get_setting("application.reboot", force_type=int))
        self.assertEqual("On", obj.get_setting("application.sleeping"))
        self.assertEqual(
            True, obj.get_setting("application.sleeping", force_type=bool))
        self.assertEqual("enabled", obj.get_setting("application.explosion"))
        self.assertEqual(
            True, obj.get_setting("application.explosion", force_type=bool))
        # doesn't exist, but force to String means "None"
        self.assertEqual(
            None, obj.get_setting("application.not_exists", force_type=bool))

        with self.assertRaises(ValueError):
            # string 'true' can't be forced to int, bool True can
            obj.get_setting("application.name", force_type=bool)

        logging.info("TEST get_setting(), with force_type=str")
        # [restart] is already string, but [reboot] is bool(True)
        self.assertEqual(
            "true", obj.get_setting("application.restart", force_type=str))
        self.assertEqual("True",
                         obj.get_setting("application.reboot", force_type=str))
        # doesn't exist, & force to String does not means "None"
        self.assertEqual(None, obj.get_setting("application.not_exists"))
        self.assertEqual(
            None, obj.get_setting("application.not_exists", force_type=str))

        logging.info("TEST get_setting_time_secs()")
        self.assertEqual("30 sec", obj.get_setting("startup.exit_delay"))
        self.assertEqual(30.0, obj.get_setting_time_secs("startup.exit_delay"))

        self.assertEqual("5 min", obj.get_setting("startup.boot_delay_max"))
        self.assertEqual(300.0,
                         obj.get_setting_time_secs("startup.boot_delay_max"))

        self.assertEqual(17, obj.get_setting("startup.bomb_delay"))
        self.assertEqual(17.0, obj.get_setting_time_secs("startup.bomb_delay"))

        self.assertEqual("19", obj.get_setting("startup.rain_delay"))
        self.assertEqual(19.0, obj.get_setting_time_secs("startup.rain_delay"))

        with self.assertRaises(ValueError):
            # string 'true' can't be forced to int, bool True can
            obj.get_setting("application.restart", force_type=int)

        return