示例#1
0
def test_datacall_callback():
    test_datacall_module()
    # 注册回调中断
    ret = dataCall.setCallback(callback)
    if ret == 0x00:
        print("set Callback has success")
    net.setModemFun(4)  # 进入飞行模式
    time.sleep_ms(1000)
    net.setModemFun(1)  # 重新进入正常模式
    print("test_datacall_callback funcation has exited")
    pass
示例#2
0
 def _handle_cmd(self, key, config):
     try:
         if key == 'gpio':
             io_level_list = self.bs_gpio.read_all()
             io_name_list = self.bs_gpio.get_io_name_list()
             for gpio_key in config.keys():
                 if gpio_key not in io_name_list:
                     continue
                 level = self.bs_config.get_int_value(config, gpio_key)
                 if level is not None:
                     id = self.bs_gpio.get_id_by_name(gpio_key)
                     self.bs_gpio.write(id, level)
                     io_level_list[gpio_key] = level
             self._update_gpio_status(io_level_list)
         elif key.startswith('pwm'):
             id = self.bs_pwm.get_id_by_name(key)
             is_breathe = self.bs_config.get_int_value(config, "breathe")
             frequency = self.bs_config.get_int_value(config, "frequency")
             duty = self.bs_config.get_float_value(config, "duty")
             if is_breathe:
                 self.bs_pwm.start_breathe(id, frequency)
             else:
                 self.bs_pwm.start_once(id, frequency, duty)
         elif key == 'system':
             modemFun = self.bs_config.get_int_value(config, "modemFun")
             if modemFun == 4:
                 bluestone_common.BluestoneCommon.set_network_state(
                     modemFun)
                 _uart_log.info("Enter airplane mode")
                 net.setModemFun(modemFun)
                 utime.sleep_ms(2000)
             elif modemFun == 1:
                 _uart_log.info("Exit airplane mode")
                 net.setModemFun(modemFun)
                 utime.sleep_ms(2000)
         elif key == 'fota':
             mode = self.bs_config.get_int_value(config, "mode")
             if mode == 0:
                 url_list = self.bs_config.get_value(config, "url")
                 self.bs_fota.start_fota_app(url_list)
             elif mode == 1:
                 url = self.bs_config.get_value(config, "url")
                 self.bs_fota.start_fota_firmware(url)
     except Exception as err:
         _uart_log.error(
             "Cannot handle command for uart, the error is {}".format(err))
示例#3
0
def check_network():
    while True:
        try:
            utime.sleep_ms(2000)
            #system_log.info("Check network connection")
            checknet.wait_network_connected()
            retry_count = 0
        except Exception as err:
            retry_count += 1
            system_log.error(
                "Cannot connect to network, will retry it after {} millseconds for {} time"
                .format(2000, retry_count))

            if retry_count >= 10:
                net.setModemFun(4)  #进入飞行模式
                system_log.info("Enter airplane mode")
                utime.sleep_ms(2000)

                net.setModemFun(1)  #退出飞行模式
                system_log.info("Exit airplane mode")
                utime.sleep_ms(2000)
if __name__ == '__main__':
    '''
    手动运行本例程时,可以去掉该延时,如果将例程文件名改为main.py,希望开机自动运行时,需要加上该延时,
    否则无法从CDC口看到下面的 poweron_print_once() 中打印的信息
    '''
    utime.sleep(5)
    checknet.poweron_print_once()
    '''
    如果用户程序包含网络相关代码,必须执行 wait_network_connected() 等待网络就绪(拨号成功);
    如果是网络无关代码,可以屏蔽 wait_network_connected()
    【本例程必须保留下面这一行!】
    '''
    checknet.wait_network_connected()

    # 注册回调函数
    dataCall.setCallback(nw_cb)

    # 进入飞行模式模拟触发
    net.setModemFun(4)
    utime.sleep(2)

    # 退出飞行模式再次模拟触发回调
    net.setModemFun(1)

    while 1:
        if state:
            pass
        else:
            break