• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ cam_info函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中cam_info函数的典型用法代码示例。如果您正苦于以下问题:C++ cam_info函数的具体用法?C++ cam_info怎么用?C++ cam_info使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了cam_info函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: s5k5bbgx_set_preview_stop

static int s5k5bbgx_set_preview_stop(struct v4l2_subdev *sd)
{
	int err = 0;
	cam_info("do nothing.\n");

	return err;
}
开发者ID:FrozenData,项目名称:SGS2-Kernel-Update2,代码行数:7,代码来源:s5k5bbgx.c


示例2: s5k5bbgx_set_capture_start

static int s5k5bbgx_set_capture_start(struct v4l2_subdev *sd)
{
	struct s5k5bbgx_state *state = to_state(sd);
	int err = -EINVAL;
	u16 val = 1, retry = 0;

	/* set initial regster value */
#ifdef CONFIG_LOAD_FILE
	err = s5k5bbgx_write_regs_from_sd(sd, "s5k5bbgx_capture");
#else
	err = s5k5bbgx_write_regs(sd, s5k5bbgx_capture,
		sizeof(s5k5bbgx_capture) / sizeof(s5k5bbgx_capture[0]));
#endif
	if (unlikely(err)) {
		cam_err("failed to make capture\n");
		return err;
	}
	s5k5bbgx_get_exif(sd);
	cam_info("Capture ConfigSync\n");
	do {
		msleep(20);
		err = s5k5bbgx_read_reg(sd, REG_PAGE_CAPTURE_STATUS, REG_ADDR_CAPTURE_STATUS, &val);
		CHECK_ERR(err);
		cam_dbg("val = %d\n", val);
		if (val == 0)
			break;
		retry++;
	} while (retry <= S5K5BBGX_READ_STATUS_RETRIES);


	return err;
}
开发者ID:FrozenData,项目名称:SGS2-Kernel-Update2,代码行数:32,代码来源:s5k5bbgx.c


示例3: altel6045_firmware_show

static ssize_t altel6045_firmware_show(struct device_driver *drv,
												char *buf)
{
    strncpy(buf, misp_firmware_path, strlen(misp_firmware_path)+1);
    cam_info("%s extisp_firmware(%s),count(%u)", __func__, misp_firmware_path,strlen(misp_firmware_path));
	return (strlen(misp_firmware_path));
}
开发者ID:XePeleato,项目名称:android_kernel_huawei_venus,代码行数:7,代码来源:altek6045.c


示例4: hw_vcm_get_dt_data

int hw_vcm_get_dt_data(struct platform_device *pdev, vcm_t *vcm)
{
	struct device_node *of_node = pdev->dev.of_node;
	struct hw_vcm_info *vcm_info = NULL;
	int rc = 0;

	vcm_info = kzalloc(sizeof(struct hw_vcm_info), GFP_KERNEL);
	if (!vcm_info) {
		cam_err("%s failed %d\n", __func__, __LINE__);
		return -ENOMEM;
	}
	vcm->vcm_info = vcm_info;

	rc = of_property_read_string(of_node, "hisi,vcm-name", &vcm_info->vcm_name);
	cam_info("%s hisi,vcm-name %s, rc %d\n", __func__, vcm_info->vcm_name, rc);
	if (rc < 0) {
		cam_err("%s failed %d\n", __func__, __LINE__);
		goto fail;
	}

	rc = of_property_read_u32(of_node, "hisi,vcm-index", &vcm_info->index);
	cam_info("%s hisi,vcm-index %d, rc %d\n", __func__, vcm_info->index, rc);
	if (rc < 0) {
		cam_err("%s failed %d\n", __func__, __LINE__);
		goto fail;
	}

	rc = of_property_read_u32(of_node, "hisi,slave-addr", &vcm_info->slave_address);
	cam_info("%s hisi,slave-addr 0x%x, rc %d\n", __func__, vcm_info->slave_address, rc);
	if (rc < 0) {
		cam_err("%s failed %d\n", __func__, __LINE__);
		goto fail;
	}

	rc = of_property_read_u32(of_node, "hisi,data-type", &vcm_info->data_type);
	cam_info("%s hisi,data-type 0x%x, rc %d\n", __func__, vcm_info->data_type, rc);
	if (rc < 0) {
		cam_err("%s failed %d\n", __func__, __LINE__);
		goto fail;
	}
	return rc;
fail:
	cam_err("%s can not read vcm info exit.\n", __func__);
	kfree(vcm_info);
	vcm_info = NULL;
	return rc;
}
开发者ID:magnusjjj,项目名称:android_kernel_huawei_rle,代码行数:47,代码来源:hwvcm.c


示例5: db8131m_init

static int db8131m_init(struct v4l2_subdev *sd, u32 val)
{
	/* struct i2c_client *client = v4l2_get_subdevdata(sd); */
	struct db8131m_state *state = to_state(sd);
	int err = -EINVAL;

	cam_dbg("E\n");

	/* set initial regster value */
	if (state->sensor_mode == SENSOR_CAMERA) {
		cam_info("load camera common setting\n");
		err = db8131m_write_regs(sd, db8131m_common_1,
			sizeof(db8131m_common_1) / \
			sizeof(db8131m_common_1[0]));

		msleep(150);

		err |= db8131m_write_regs(sd, db8131m_common_2,
			sizeof(db8131m_common_2) / \
			sizeof(db8131m_common_2[0]));
	} else {
		cam_info("load recording setting\n");
		err = db8131m_write_regs(sd, db8131m_common_1,
			sizeof(db8131m_common_1) / \
			sizeof(db8131m_common_1[0]));

		msleep(150);

		err = db8131m_write_regs(sd, db8131m_common_2,
			sizeof(db8131m_common_2) / \
			sizeof(db8131m_common_2[0]));
	}
	if (unlikely(err)) {
		cam_err("failed to init\n");
		return err;
	}

	/* We stop stream-output from sensor when starting camera. */
	err = db8131m_control_stream(sd, 0);
	if (unlikely(err < 0))
		return err;
	msleep(150);

	state->initialized = 1;

	return 0;
}
开发者ID:AndreiLux,项目名称:Perseus-S3,代码行数:47,代码来源:slp_db8131m.c


示例6: ov8865_rear_match_id

static int
ov8865_rear_match_id(
        hwsensor_intf_t* si, void * data)
{
    sensor_t* sensor = I2S(si);
    hwsensor_board_info_t *board_info = sensor->board_info;
    struct sensor_cfg_data *cdata = (struct sensor_cfg_data *)data;
    int sensor_index = CAMERA_SENSOR_INVALID;
    int ret = 0;
    int camif_id = -1;

    cam_info("%s TODO.", __func__);

    if(0 == board_info->gpios[FSIN].gpio) {
    	cam_err("%s gpio type[FSIN] is not actived.", __func__);
    	ret = -1;
    	goto out;
    }

    ret = gpio_request(board_info->gpios[FSIN].gpio, "camif_id");
    if(ret < 0) {
    	cam_err("failed to request gpio[%d]", board_info->gpios[FSIN].gpio);
    	goto out;
    }
    ret = gpio_direction_input(board_info->gpios[FSIN].gpio);
    if(ret < 0) {
    	cam_err("failed to control gpio[%d]", board_info->gpios[FSIN].gpio);
    	goto out_gpio;
    }

    ret = gpio_get_value(board_info->gpios[FSIN].gpio);
    if(ret < 0) {
    	cam_err("failed to get gpio[%d]", board_info->gpios[FSIN].gpio);
    	goto out_gpio;
    } else {
    	camif_id = ret;
    	cam_notice("%s camif id = %d.", __func__, camif_id);
    }

    if (camif_id != board_info->camif_id) {
    	cam_notice("%s camera[%s] module is not match.", __func__, board_info->name);
	board_info->sensor_index = CAMERA_SENSOR_INVALID;
    	ret = -1;
    } else {
    	cam_notice("%s camera[%s] match successfully.", __func__, board_info->name);
	sensor_index = board_info->sensor_index;
    	ret = 0;
    }

out_gpio:
	gpio_free(board_info->gpios[FSIN].gpio);
out:
    memset(cdata->cfg.name, 0, sizeof(cdata->cfg.name));
    cdata->data = sensor_index;
    if (ret == 0)
        hwsensor_writefile(sensor->board_info->sensor_index,
            sensor->board_info->name);
    return ret;
}
开发者ID:CM13-HI6210SFT,项目名称:hisi_kernel_3.10.86_hi6210sft,代码行数:59,代码来源:ov8865_rear.c


示例7: sr200_set_preview_size

static int sr200_set_preview_size(struct v4l2_subdev *subdev)
{
	struct sr200_state *state = to_state(subdev);
	int err = 0;

	u32 width, height;

	if (!state->preview.update_frmsize)
		return 0;

	if (unlikely(!state->preview.frmsize)) {
		cam_warn("warning, preview resolution not set\n");
		state->preview.frmsize = sr200_get_framesize(
					sr200_preview_frmsizes,
					ARRAY_SIZE(sr200_preview_frmsizes),
					PREVIEW_SZ_SVGA);
	}

	width = state->preview.frmsize->width;
	height = state->preview.frmsize->height;

	cam_info("set preview size(%dx%d)\n", width, height);

	if (state->sensor_mode == SENSOR_MOVIE) {
		if(width == 352 && height == 288) {
			err = sensor_sr200_apply_set(subdev, "sr200_resol_352_288", &sr200_regset_table.resol_352_288);
		} else {
			/*err = sensor_sr200_apply_set(subdev, "sr200_resol_640_480", &sr200_regset_table.resol_640_480);*/
			/*CHECK_ERR_MSG(err, "fail to set preview size\n");*/
			cam_info("MOVIE Mode : skip preview size\n");
		}
	} else {
		if(width == 352 && height == 288) { /* VT Preview size */
			err = sensor_sr200_apply_set(subdev, "sr200_Init_VT_Reg", &sr200_regset_table.init_vt);
			CHECK_ERR_MSG(err, "fail to set VT init\n");
			err = sensor_sr200_apply_set(subdev, "sr200_resol_352_288", &sr200_regset_table.resol_352_288);
		} else {
			err = sensor_sr200_apply_set(subdev, "sr200_resol_800_600", &sr200_regset_table.resol_800_600);
		}
	}
	CHECK_ERR_MSG(err, "fail to set preview size\n");

	state->preview.update_frmsize = 0;

	return 0;
}
开发者ID:ShedrockN4,项目名称:wiliteneo,代码行数:46,代码来源:fimc-is-device-sr200-soc.c


示例8: sensor_sr200_s_again

int sensor_sr200_s_again(struct v4l2_subdev *subdev, u64 sensitivity)
{
	int ret = 0;

	cam_info("%s\n", __func__);

	return ret;
}
开发者ID:ShedrockN4,项目名称:wiliteneo,代码行数:8,代码来源:fimc-is-device-sr200-soc.c


示例9: hw_lm3642_flash_mode

static int hw_lm3642_flash_mode(struct hw_flash_ctrl_t *flash_ctrl,
	int data)
{
	struct hw_flash_i2c_client *i2c_client;
	struct hw_flash_i2c_fn_t *i2c_func;
	struct hw_lm3642_private_data_t *pdata;
	unsigned char val;

	cam_debug("%s data=%d.\n", __func__, data);
	cam_info("%s 220250 data=%d.\n", __func__, data);
	if (NULL == flash_ctrl) {
		cam_err("%s flash_ctrl is NULL.", __func__);
		return -1;
	}

	i2c_client = flash_ctrl->flash_i2c_client;
	i2c_func = flash_ctrl->flash_i2c_client->i2c_func_tbl;
	pdata = flash_ctrl->pdata;

	/* clear error flag,resume chip */
	i2c_func->i2c_read(i2c_client, REG_FLAGS, &val);
	i2c_func->i2c_read(i2c_client, REG_CURRENT_CONTROL, &val);

	/* set LED Flash current value */
	if (data < pdata->flash_led_num) {
		cam_info("%s flash_led=0x%x.", __func__,
			pdata->flash_led[data]);
		/* REG_CURRENT_CONTROL[3:0] control flash current */
		val = ((val & 0xf0) | (pdata->flash_led[data] & 0x0f));

	} else {
		cam_warn("%s data(%d) > flash_led_num(%d).", __func__,
			data, pdata->flash_led_num);
		/* REG_CURRENT_CONTROL[3:0] control flash current */
		val = ((val & 0xf0) | (pdata->flash_led[pdata->flash_led_num-1] & 0x0f));
	}

	i2c_func->i2c_write(i2c_client, REG_CURRENT_CONTROL, val);
	if (flash_ctrl->flash_mask_enable) {
		i2c_func->i2c_write(i2c_client, REG_ENABLE, MODE_FLASH|TX_PIN);
	} else {
		i2c_func->i2c_write(i2c_client, REG_ENABLE, MODE_FLASH);
	}

	return 0;
}
开发者ID:herryfan,项目名称:kernel-huawei-h60,代码行数:46,代码来源:lm3642.c


示例10: altek6045_notify_ois_done

void altek6045_notify_ois_done( uint32_t id)
{
    hwextisp_event_t extisp_ev;
    extisp_ev.kind = HWEXTISP_INFO_OIS_DONE;
    extisp_ev.data.error.id = id;
    cam_info("%s id = %x",__func__,id);
    hwextisp_intf_notify_error(s_altek6045.notify, &extisp_ev);
}
开发者ID:CM13-HI6210SFT,项目名称:hisi_kernel_3.10.86_hi6210sft,代码行数:8,代码来源:altek6045.c


示例11: imx278_carrera_powerctrl_show

static ssize_t imx278_carrera_powerctrl_show(struct device *dev,
    struct device_attribute *attr,char *buf)
{
    int rc=0;
    cam_info("enter %s", __func__);

    return rc;
}
开发者ID:XePeleato,项目名称:android_kernel_huawei_venus,代码行数:8,代码来源:imx278_carrera.c


示例12: altek6045_notify_dump

void altek6045_notify_dump( uint32_t type)
{
    hwextisp_event_t extisp_ev;
    extisp_ev.kind = HWEXTISP_INFO_DUMP;
    extisp_ev.data.dump.type = type;
    cam_info("%s dump type = %x",__func__,type);
    hwextisp_intf_notify_error(s_altek6045.notify, &extisp_ev);
}
开发者ID:CM13-HI6210SFT,项目名称:hisi_kernel_3.10.86_hi6210sft,代码行数:8,代码来源:altek6045.c


示例13: sensor_sr200_s_capture_mode

static int sensor_sr200_s_capture_mode(struct v4l2_subdev *subdev, int value)
{
	struct sr200_state *state = to_state(subdev);
	int ret = 0;

	cam_info("%s : value(%d) - E\n",__func__, value);

	if ((SENSOR_CAMERA == state->sensor_mode) && value) {
		cam_info("s_ctrl : Capture Mode!\n");
		state->format_mode = V4L2_PIX_FMT_MODE_CAPTURE;
	} else {
		cam_info("s_ctrl : Preview Mode!\n");
		state->format_mode = V4L2_PIX_FMT_MODE_PREVIEW;
	}

	return ret;
}
开发者ID:ShedrockN4,项目名称:wiliteneo,代码行数:17,代码来源:fimc-is-device-sr200-soc.c


示例14: sr200pc20_camera_type_show

ssize_t sr200pc20_camera_type_show(struct device *dev,
		struct device_attribute *attr, char *buf)
{
	char *cam_type = "SILICONFILE_SR200PC20";
	cam_info("%s\n", __func__);

	return sprintf(buf, "%s\n", cam_type);
}
开发者ID:ARMP,项目名称:ARMP-i9300,代码行数:8,代码来源:sr200pc20-p2.c


示例15: hw_lm3646_front_flash_mode

static int hw_lm3646_front_flash_mode(struct hw_flash_ctrl_t *flash_ctrl,
    int data)
{
    struct hw_flash_i2c_client *i2c_client;
    struct hw_flash_i2c_fn_t *i2c_func;
    struct hw_lm3646_front_private_data_t *pdata;
    unsigned char val;

    cam_info("%s data=%d.\n", __func__, data);
    if (NULL == flash_ctrl) {
        cam_err("%s flash_ctrl is NULL.", __func__);
        return -1;
    }

    i2c_client = flash_ctrl->flash_i2c_client;
    i2c_func = flash_ctrl->flash_i2c_client->i2c_func_tbl;
    pdata = flash_ctrl->pdata;

    /* clear error flag,resume chip */
    i2c_func->i2c_read(i2c_client, REG_FLAGS1, &val);
    i2c_func->i2c_read(i2c_client, REG_FLAGS2, &val);
    i2c_func->i2c_read(i2c_client, REG_LED1_FLASH_CURRENT_CONTROL, &val);

    /* set LED Flash current value */
    if (data < FLASH_LED_MAX) {
        cam_info("%s flash_led=0x%x.", __func__,
        pdata->flash_led[data]);
        /* REG_CURRENT_CONTROL[3:0] control flash current */
        val = ((val & 0x80) | (data & 0x7f));
    } else {
        cam_warn("%s data(%d) > flash_led_num(%d).", __func__,
        data, pdata->flash_led_num);
        /* REG_CURRENT_CONTROL[3:0] control flash current */
        val = ((val & 0x80) | (0x7f));
    }
    i2c_func->i2c_write(i2c_client, REG_MAX_CURRENT, 0x7c);
    i2c_func->i2c_write(i2c_client, REG_LED1_FLASH_CURRENT_CONTROL, 0x22);
    if (flash_ctrl->flash_mask_enable) {
        i2c_func->i2c_write(i2c_client, REG_ENABLE, 0xd3);
    } else {
        i2c_func->i2c_write(i2c_client, REG_ENABLE, 0xd3);
    }

    return 0;
}
开发者ID:HuaweiHonor4C,项目名称:kernel_hi6210sft_mm,代码行数:45,代码来源:lm3646_front.c


示例16: hisi_sensor_apply_bshutter_expo_gain

int hisi_sensor_apply_bshutter_expo_gain(struct hisi_sensor_ctrl_t *s_ctrl, void *data)
{
	struct sensor_cfg_data *cdata = (struct sensor_cfg_data *)data;
	struct bshutter_expo_gain_seq host_ae_seq = cdata->cfg.bshutter_seq;
	struct hisi_sensor_t *sensor = s_ctrl->sensor;
	int i;

	cam_info("%s enter,eof_bshutter_trigger(%d)", __func__,host_ae_seq.eof_bshutter_trigger);

	for(i=0; i<host_ae_seq.seq_size; i++)
	{
	    cam_info("%s enter, bshutter_seq[%d],expo_time(%u),expo(%u),gain(%u),vts(%u),hts(%u)", __func__, i,
	        host_ae_seq.expo_time[i],host_ae_seq.expo[i],host_ae_seq.gain[i],host_ae_seq.vts[i],host_ae_seq.hts[i]);
	}

	return setup_eof_bshutter_tasklet(sensor, &host_ae_seq);

}
开发者ID:CM13-HI6210SFT,项目名称:hisi_kernel_3.10.86_hi6210sft,代码行数:18,代码来源:sensor_common.c


示例17: ad5823_platform_probe

static int32_t ad5823_platform_probe(struct platform_device *pdev)
{
	int32_t rc = 0;
	const struct of_device_id *match;
	match = of_match_device(hisi_ad5823_dt_match, &pdev->dev);
	cam_info("%s compatible=%s.\n", __func__, match->compatible);
	rc = ad5823_vcm_probe(pdev);
	return rc;
}
开发者ID:Machiry,项目名称:android_kernel_huawei_hi6210sft,代码行数:9,代码来源:ad5823.c


示例18: hisi_pmic_get_dt_data

int hisi_pmic_get_dt_data(struct hisi_pmic_ctrl_t *pmic_ctrl)
{
    struct device_node *of_node;
    struct hisi_pmic_info *pmic_info;
    int rc = -1;

    cam_info("%s enter.\n", __func__);

    if (NULL == pmic_ctrl) {
        cam_err("%s pmic_ctrl is NULL.", __func__);
        return rc;
    }

    of_node = pmic_ctrl->dev->of_node;

    pmic_info = &pmic_ctrl->pmic_info;

    rc = of_property_read_string(of_node, "hisi,pmic_name", &pmic_info->name);
    cam_info("%s hisi,pmic_name %s, rc %d\n", __func__, pmic_info->name, rc);
    if (rc < 0) {
        cam_err("%s failed %d\n", __func__, __LINE__);
        goto fail;
    }

    rc = of_property_read_u32(of_node, "hisi,pmic_index",
                              &pmic_info->index);
    cam_info("%s hisi,pmic_index %d, rc %d\n", __func__,
             pmic_info->index, rc);
    if (rc < 0) {
        cam_err("%s failed %d\n", __func__, __LINE__);
        goto fail;
    }

    rc = of_property_read_u32(of_node, "hisi,slave_address",
                              &pmic_info->slave_address);
    cam_info("%s slave_address %d, rc %d\n", __func__,
             pmic_info->slave_address, rc);
    if (rc < 0) {
        cam_err("%s failed %d\n", __func__, __LINE__);
        goto fail;
    }
fail:
    return rc;
}
开发者ID:herryfan,项目名称:kernel-huawei-h60,代码行数:44,代码来源:hw_pmic.c


示例19: ncp6925_seq_config

static int ncp6925_seq_config(struct hisi_pmic_ctrl_t *pmic_ctrl, pmic_seq_index_t seq_index, u32 voltage, int state)
{
	u8 chx_enable_tmp = 0;
	u8 chx_enable = 0;
	u8 voltage_reg = 0;
	u8 voltage_val = 0;
	struct hisi_pmic_i2c_client *i2c_client;
	struct hisi_pmic_i2c_fn_t *i2c_func;
	int ret = 0;

	cam_info("%s enter.", __func__);

	if (NULL == pmic_ctrl) {
		cam_err("%s pmic_ctrl is NULL.", __func__);
		return -1;
	}

	i2c_client = pmic_ctrl->pmic_i2c_client;
	i2c_func = pmic_ctrl->pmic_i2c_client->i2c_func_tbl;

	chx_enable = voltage_map[seq_index].chx_enable;
	voltage_reg = voltage_map[seq_index].vout_reg;

	i2c_func->i2c_read(i2c_client, CHX_EN, &chx_enable_tmp);

	if (state == 1) {
		if (seq_index >= VOUT_BUCK_1)
			calc_buck_vlotage(voltage, &voltage_val);
		else
			calc_ldo_vlotage(voltage, &voltage_val);

		i2c_func->i2c_write(i2c_client, voltage_reg, voltage_val);
		msleep(1);
		i2c_func->i2c_write(i2c_client, CHX_EN, chx_enable_tmp | chx_enable);
		cam_info("%s chx_enable 0x%x, voltage_reg 0x%x, voltage_val 0x%x", __func__, chx_enable, voltage_reg, voltage_val);
	} else {
		i2c_func->i2c_write(i2c_client, CHX_EN, chx_enable_tmp & (~chx_enable));
		//i2c_func->i2c_write(i2c_client, voltage_reg, state);
	}

	i2c_func->i2c_read(i2c_client, CHX_ERR, &chx_enable_tmp);

	return ret;
}
开发者ID:Machiry,项目名称:android_kernel_huawei_hi6210sft,代码行数:44,代码来源:ncp6925.c


示例20: hisi_vcm_i2c_read

int hisi_vcm_i2c_read(struct hisi_vcm_ctrl_t *vcm_ctrl, void *data)
{
	struct vcm_cfg_data *cdata = (struct vcm_cfg_data *)data;
	//struct vcm_i2c_reg reg;
	int   rc = 0;

	cam_info("%s: address=0x%x\n", __func__, cdata->cfg.reg.address);
	cdata->cfg.reg.value = 0x5823;
	return rc;
}
开发者ID:HuaweiHonor4C,项目名称:kernel_hi6210sft_mm,代码行数:10,代码来源:vcm_driver.c



注:本文中的cam_info函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ cam_sim_free函数代码示例发布时间:2022-05-30
下一篇:
C++ cam_err函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap