Atitit mysql 存储kv 以及php js接口目录kv_mysql.js 1Set.php 1Get.php 2CREATE TABLE `cfg` ( `k`

这个博客展示了如何使用MySQL存储键值对(KV)数据,并通过PHP和JavaScript实现设置和获取接口。`kv_mysql.js`文件包含了两个函数,`set()`用于设置键值对,`get()`用于获取数据。`Set.php`和`Get.php`是后台处理接口,分别处理设置和获取请求。博客中提供的SQL创建了一个名为`cfg`的表,用于存储键值对,其中`k`为键,`v`为值。

Atitit mysql 存储kv  以及php  js接口

目录

kv_mysql.js 1

Set.php 1

Get.php 2

CREATE TABLE `cfg`  (

  `k` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,

  `typ` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

  `v` varchar(4000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

  PRIMARY KEY (`k`) USING BTREE

) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

kv_mysql.js

function  set(k,e)

{

    $.get(  "/hot_tag/get.php?k="+kfunctiondata ) {

        var index_data_start=data.indexOf('-----attilax---');

    

        var dataStr=data.substr(index_data_start+15);

         e   (dataStr)

    });

}

function  set(k,v,e)

{

    $.get(  "/hot_tag/set.php?k=hottag&v="$("#v_txtbox").val(), functiondata ) {

        var index_data_start=data.indexOf('-----attilax---');

        var dataStr=data.substr(index_data_start+15);

        console.log("exe rzt:"+dataStr)

        e(dataStr)

    });

}

Set.php

<?php

header('Access-Control-Allow-Origin:*');

require "../conn.php";
$v=addslashes($_GET['v']);$k=addslashes($_GET['k']);
$sql = "REPLACE INTO    cfg set v='$v' , k='$k'";

echo $sql."\n<p>";
//$rows = queryPdo($sql, $pdo);

echo PHP_EOL . '-----------------attilax---' . PHP_EOL;
echo pdo_exec($sql);

Get.php

<?php


header('Access-Control-Allow-Origin:*');

require "../conn.php";
$k=addslashes($_GET['k']);
$sql = "select v from cfg where k='$k'";

echo $sql."\n<p>";
//$rows = queryPdo($sql, $pdo);

echo PHP_EOL . '-----------------attilax---' . PHP_EOL;
echo fetchColumnVal($sql);

HD_RESULT set_cap2_cfg(HD_PATH_ID *p_video_cap_ctrl) { HD_RESULT ret = HD_OK; HD_VIDEOCAP_DRV_CONFIG cap_cfg = {0}; HD_PATH_ID video_cap_ctrl = 0; HD_VIDEOCAP_CTRL iq_ctl = {0}; snprintf(cap_cfg.sen_cfg.sen_dev.driver_name, HD_VIDEOCAP_SEN_NAME_LEN-1, SENSOR_NAME); /*下面sensor的配置*/ cap_cfg.sen_cfg.sen_dev.if_type = HD_COMMON_VIDEO_IN_MIPI_CSI; cap_cfg.sen_cfg.sen_dev.pin_cfg.pinmux.sensor_pinmux = 1; //use {SENSOR_NAME}@1 in peri-dev.dtsi #ifdef BINOCULOR_AVS cap_cfg.sen_cfg.sen_dev.if_cfg.tge.tge_en = TRUE; cap_cfg.sen_cfg.sen_dev.if_cfg.tge.swap = FALSE; cap_cfg.sen_cfg.sen_dev.if_cfg.tge.vcap_vd_src = HD_VIDEOCAP_SEN_TGE_CH5_VD_TO_VCAP2; cap_cfg.sen_cfg.sen_dev.pin_cfg.clk_lane_sel = HD_VIDEOCAP_SEN_CLANE_CSI(2, 0); cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[0] = 0; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[1] = 1; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[2] = 2; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[3] = 3; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[4] = HD_VIDEOCAP_SEN_IGNORE; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[5] = HD_VIDEOCAP_SEN_IGNORE; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[6] = HD_VIDEOCAP_SEN_IGNORE; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[7] = HD_VIDEOCAP_SEN_IGNORE; #else cap_cfg.sen_cfg.sen_dev.pin_cfg.clk_lane_sel = HD_VIDEOCAP_SEN_CLANE_CSI(2, 0); cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[0] = HD_VIDEOCAP_SEN_IGNORE; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[1] = HD_VIDEOCAP_SEN_IGNORE; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[2] = HD_VIDEOCAP_SEN_IGNORE; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[3] = HD_VIDEOCAP_SEN_IGNORE; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[4] = 0; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[5] = 1; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[6] = 2; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[7] = 3; #endif ret = hd_videocap_open(0, HD_VIDEOCAP_2_CTRL, &video_cap_ctrl); //open this for device control if (ret != HD_OK) { return ret; } #ifdef HDR_MODE_SUPPORT if (g_hdr_type == TP_VIDEO_HDR_ON) { cap_cfg.sen_cfg.shdr_map = HD_VIDEOCAP_SHDR_MAP(HD_VIDEOCAP_HDR_SENSOR2, (HD_VIDEOCAP_2|HD_VIDEOCAP_3)); } #endif ret |= hd_videocap_set(video_cap_ctrl, HD_VIDEOCAP_PARAM_DRV_CONFIG, &cap_cfg); iq_ctl.func = VIDEOCAP_ALG_FUNC; #ifdef HDR_MODE_SUPPORT if (g_hdr_type == TP_VIDEO_HDR_ON) { iq_ctl.func |= HD_VIDEOCAP_FUNC_SHDR; } #endif ret |= hd_videocap_set(video_cap_ctrl, HD_VIDEOCAP_PARAM_CTRL, &iq_ctl); *p_video_cap_ctrl = video_cap_ctrl; return ret; } 这个函数呢
09-17
这个 `set_cap2_cfg()` 函数与前面的 `set_cap_cfg()` 类似,用于**配置第二个视频采集通道(视频采集控制器 2)的硬件参数**,主要用于双目拼接系统中的**第二路摄像头(右目)**配置。 --- ## 🧠 函数主要作用: - **为视频采集控制器 2(HD_VIDEOCAP_2_CTRL)进行初始化配置** - **设置传感器接口、引脚映射、TGE同步等参数** - **支持 HDR 模式** - **在启用 `BINOCULOR_AVS` 时启用双目拼接专用配置** - **打开设备并设置控制参数** --- ## 🧩 主要流程分析: ### 1. 设置传感器名称和接口类型 ```c snprintf(cap_cfg.sen_cfg.sen_dev.driver_name, HD_VIDEOCAP_SEN_NAME_LEN-1, SENSOR_NAME); cap_cfg.sen_cfg.sen_dev.if_type = HD_COMMON_VIDEO_IN_MIPI_CSI; ``` - 设置传感器名称和 MIPI CSI 接口类型。 --- ### 2. **与 `BINOCULOR_AVS` 相关的关键配置(右目摄像头)** ```c #ifdef BINOCULOR_AVS cap_cfg.sen_cfg.sen_dev.if_cfg.tge.tge_en = TRUE; cap_cfg.sen_cfg.sen_dev.if_cfg.tge.swap = FALSE; cap_cfg.sen_cfg.sen_dev.if_cfg.tge.vcap_vd_src = HD_VIDEOCAP_SEN_TGE_CH5_VD_TO_VCAP2; cap_cfg.sen_cfg.sen_dev.pin_cfg.clk_lane_sel = HD_VIDEOCAP_SEN_CLANE_CSI(2, 0); cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[0] = 0; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[1] = 1; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[2] = 2; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[3] = 3; #else // 非双目拼接模式下使用不同引脚映射 #endif ``` - **TGE 启用**:启用时间同步信号,用于帧同步。 - **vcap_vd_src 设置为 `HD_VIDEOCAP_SEN_TGE_CH5_VD_TO_VCAP2`**:指定使用 TGE 的通道5作为该采集控制器的 VD 同步源。 - **pin_cfg 配置**:根据是否启用双目拼接,选择不同的引脚映射。 > ✅ 这些配置确保右目摄像头能与左目摄像头同步采集图像,是双目拼接功能的重要组成部分。 --- ### 3. 打开视频采集设备(控制器2) ```c ret = hd_videocap_open(0, HD_VIDEOCAP_2_CTRL, &video_cap_ctrl); ``` - 打开第二个视频采集控制器,用于控制右目摄像头。 --- ### 4. 配置 HDR 模式(可选) ```c #ifdef HDR_MODE_SUPPORT if (g_hdr_type == TP_VIDEO_HDR_ON) { cap_cfg.sen_cfg.shdr_map = HD_VIDEOCAP_SHDR_MAP(HD_VIDEOCAP_HDR_SENSOR2, (HD_VIDEOCAP_2|HD_VIDEOCAP_3)); } #endif ``` - 如果启用 HDR,配置 HDR 映射关系。 --- ### 5. 设置采集参数和 IQ 控制 ```c ret |= hd_videocap_set(video_cap_ctrl, HD_VIDEOCAP_PARAM_DRV_CONFIG, &cap_cfg); iq_ctl.func = VIDEOCAP_ALG_FUNC; #ifdef HDR_MODE_SUPPORT if (g_hdr_type == TP_VIDEO_HDR_ON) { iq_ctl.func |= HD_VIDEOCAP_FUNC_SHDR; } #endif ret |= hd_videocap_set(video_cap_ctrl, HD_VIDEOCAP_PARAM_CTRL, &iq_ctl); ``` - 设置采集驱动配置和控制功能(如 HDR)。 --- ### 6. 返回控制句柄 ```c *p_video_cap_ctrl = video_cap_ctrl; ``` - 返回采集控制器句柄供后续使用。 --- ## ✅ 总结: | 功能模块 | 是否受 `BINOCULOR_AVS` 影响 | 说明 | |----------|----------------------------|------| | TGE 配置 | ✅ 是 | 启用时间同步信号,用于右目摄像头 | | 引脚映射 | ✅ 是 | 双目模式下使用特定引脚映射 | | VD 同步源 | ✅ 是 | 使用 TGE 通道5作为同步源 | | 控制器编号 | ✅ 是 | 使用 `HD_VIDEOCAP_2_CTRL` 控制右目摄像头 | --- ## 📌 总体评价: `set_cap2_cfg()` 是双目拼接系统中**右目摄像头采集通道的配置函数**,与 `set_cap_cfg()` 构成完整的双摄像头配置对。通过 `BINOCULOR_AVS` 宏控制是否启用双目相关配置,确保左右摄像头帧同步采集,为后续拼接处理提供基础。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值