Commit f69b600b authored by luo's avatar luo

[UPDATE]SDK 2.5.0.5.1

parent 77c2d8db
...@@ -59,9 +59,9 @@ rtt-nano: rtt-nano-outdoor_ipc rtt-nano-glasses rtt-nano-emmc ...@@ -59,9 +59,9 @@ rtt-nano: rtt-nano-outdoor_ipc rtt-nano-glasses rtt-nano-emmc
scons --useconfig='star_asic_defconfig_bc4e'; \ scons --useconfig='star_asic_defconfig_bc4e'; \
scons -j16 || exit; \ scons -j16 || exit; \
cp rtthread.bin ${ACME_IMG_PF_DIR}/star_app_bc4e.bin; \ cp rtthread.bin ${ACME_IMG_PF_DIR}/star_app_bc4e.bin; \
# scons --useconfig='star_asic_defconfig_evb_v24'; \ scons --useconfig='star_asic_defconfig_evb_v24'; \
# scons -j16 || exit; \ scons -j16 || exit; \
# cp rtthread.bin ${ACME_IMG_PF_DIR}/star_app_evb_v24.bin; \ cp rtthread.bin ${ACME_IMG_PF_DIR}/star_app_evb_v24.bin; \
popd popd
linux: linux:
...@@ -112,11 +112,11 @@ pack: ...@@ -112,11 +112,11 @@ pack:
dd if=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-emmc-linux.bin bs=1K conv=notrunc; \ dd if=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-emmc-linux.bin bs=1K conv=notrunc; \
dd if=${ACME_IMG_PF_DIR}/bootimg-emmc-linux.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-emmc-linux.bin seek=2048 bs=1K conv=notrunc; \ dd if=${ACME_IMG_PF_DIR}/bootimg-emmc-linux.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-emmc-linux.bin seek=2048 bs=1K conv=notrunc; \
# EVB-V24 \ # EVB-V24 \
# python3 pack_tool.py --type burn --mode 0 --ini burn_pack_ini/linux/burn_pack_evb-v24-linux$${arch_suffix}.ini --image_dir ${ACME_IMG_PF_DIR} --out ${ACME_IMG_PF_DIR}/bootimg-evb-linux.bin --real_size; \ python3 pack_tool.py --type burn --mode 0 --ini burn_pack_ini/linux/burn_pack_evb-v24-linux$${arch_suffix}.ini --image_dir ${ACME_IMG_PF_DIR} --out ${ACME_IMG_PF_DIR}/bootimg-evb-linux.bin --real_size; \
# dd if=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55-evb-v24-linux.bin bs=1K conv=notrunc; \ dd if=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55-evb-v24-linux.bin bs=1K conv=notrunc; \
# dd if=${ACME_IMG_PF_DIR}/bootimg-evb-linux.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55-evb-v24-linux.bin seek=2048 bs=1K conv=notrunc; \ dd if=${ACME_IMG_PF_DIR}/bootimg-evb-linux.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55-evb-v24-linux.bin seek=2048 bs=1K conv=notrunc; \
# dd if=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-evb-v24-linux.bin bs=1K conv=notrunc; \ dd if=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-evb-v24-linux.bin bs=1K conv=notrunc; \
# dd if=${ACME_IMG_PF_DIR}/bootimg-evb-linux.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-evb-v24-linux.bin seek=2048 bs=1K conv=notrunc; \ dd if=${ACME_IMG_PF_DIR}/bootimg-evb-linux.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-evb-v24-linux.bin seek=2048 bs=1K conv=notrunc; \
if [[ -n `file ${ACME_IMG_PF_DIR}/linux-5.10.106-build/vmlinux |grep "32-bit"` ]]; then \ if [[ -n `file ${ACME_IMG_PF_DIR}/linux-5.10.106-build/vmlinux |grep "32-bit"` ]]; then \
# XIP \ # XIP \
python3 pack_tool.py --type burn --mode 0 --ini burn_pack_ini/linux/burn_pack_evb-xip-linux$${arch_suffix}.ini --image_dir ${ACME_IMG_PF_DIR} --out ${ACME_IMG_PF_DIR}/bootimg-XIP-6920E-0P55-pt2l-linux.bin --real_size; \ python3 pack_tool.py --type burn --mode 0 --ini burn_pack_ini/linux/burn_pack_evb-xip-linux$${arch_suffix}.ini --image_dir ${ACME_IMG_PF_DIR} --out ${ACME_IMG_PF_DIR}/bootimg-XIP-6920E-0P55-pt2l-linux.bin --real_size; \
...@@ -137,12 +137,12 @@ pack: ...@@ -137,12 +137,12 @@ pack:
dd if=${ACME_IMG_PF_DIR}/bootimg-pt2-linux.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55-pt2-linux.bin seek=2048 bs=1K conv=notrunc; \ dd if=${ACME_IMG_PF_DIR}/bootimg-pt2-linux.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55-pt2-linux.bin seek=2048 bs=1K conv=notrunc; \
dd if=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-pt2-linux.bin bs=1K conv=notrunc; \ dd if=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-pt2-linux.bin bs=1K conv=notrunc; \
dd if=${ACME_IMG_PF_DIR}/bootimg-pt2-linux.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-pt2-linux.bin seek=2048 bs=1K conv=notrunc; \ dd if=${ACME_IMG_PF_DIR}/bootimg-pt2-linux.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-pt2-linux.bin seek=2048 bs=1K conv=notrunc; \
# # PT2 ES8388 CODEC BOARD \ # PT2 ES8388 CODEC BOARD \
# python3 pack_tool.py --type burn --mode 0 --ini burn_pack_ini/linux/burn_pack_pt2_v1-linux$${arch_suffix}.ini --image_dir ${ACME_IMG_PF_DIR} --out ${ACME_IMG_PF_DIR}/bootimg-pt2-linux.bin --real_size; \ python3 pack_tool.py --type burn --mode 0 --ini burn_pack_ini/linux/burn_pack_pt2_v1-linux$${arch_suffix}.ini --image_dir ${ACME_IMG_PF_DIR} --out ${ACME_IMG_PF_DIR}/bootimg-pt2-linux.bin --real_size; \
# dd if=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55-pt2_v1-linux.bin bs=1K conv=notrunc; \ dd if=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55-pt2_v1-linux.bin bs=1K conv=notrunc; \
# dd if=${ACME_IMG_PF_DIR}/bootimg-pt2-linux.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55-pt2_v1-linux.bin seek=2048 bs=1K conv=notrunc; \ dd if=${ACME_IMG_PF_DIR}/bootimg-pt2-linux.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55-pt2_v1-linux.bin seek=2048 bs=1K conv=notrunc; \
# dd if=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-pt2_v1-linux.bin bs=1K conv=notrunc; \ dd if=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-pt2_v1-linux.bin bs=1K conv=notrunc; \
# dd if=${ACME_IMG_PF_DIR}/bootimg-pt2-linux.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-pt2_v1-linux.bin seek=2048 bs=1K conv=notrunc; \ dd if=${ACME_IMG_PF_DIR}/bootimg-pt2-linux.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-pt2_v1-linux.bin seek=2048 bs=1K conv=notrunc; \
# # PT2C BOARD \ # # PT2C BOARD \
# python3 pack_tool.py --type burn --mode 0 --ini burn_pack_ini/linux/burn_pack_pt2c-linux$${arch_suffix}.ini --image_dir ${ACME_IMG_PF_DIR} --out ${ACME_IMG_PF_DIR}/bootimg-pt2-linux.bin --real_size; \ # python3 pack_tool.py --type burn --mode 0 --ini burn_pack_ini/linux/burn_pack_pt2c-linux$${arch_suffix}.ini --image_dir ${ACME_IMG_PF_DIR} --out ${ACME_IMG_PF_DIR}/bootimg-pt2-linux.bin --real_size; \
# dd if=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55-pt2c-linux.bin bs=1K conv=notrunc; \ # dd if=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55-pt2c-linux.bin bs=1K conv=notrunc; \
......
...@@ -15,3 +15,6 @@ obj-$(CONFIG_ACME_RPMSG_I2C) += acme_rpmsg_i2c.o ...@@ -15,3 +15,6 @@ obj-$(CONFIG_ACME_RPMSG_I2C) += acme_rpmsg_i2c.o
obj-$(CONFIG_ACME_RPMSG_TEST) += acme_rpmsg_test.o obj-$(CONFIG_ACME_RPMSG_TEST) += acme_rpmsg_test.o
obj-m += acme_rpmsg_rpc_app.o obj-m += acme_rpmsg_rpc_app.o
obj-m += acme_rpmsg_rpc_media.o
\ No newline at end of file
// rpmsg_media.c
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/virtio.h>
#include <linux/rpmsg.h>
#include <linux/kthread.h>
#include <linux/delay.h>
#include <linux/fs.h>
#include <linux/uaccess.h>
#include <linux/cdev.h>
#include <linux/sched.h>
#include <linux/wait.h>
#include <linux/namei.h>
#include <linux/dcache.h>
#include <linux/mount.h>
#include <linux/path.h>
#define RPMSG_MEDIA_CH_ID (47)
#define DEVICE_NAME "rpmsg_media"
#define CLASS_NAME "rpmsg_rpc_media"
static DECLARE_WAIT_QUEUE_HEAD(read_type_wq);
static int read_type_condition = 0;
extern void *sa_rpmsg_create_channel(char *name, int channel_id);
extern int sa_rpmsg_destroy_channel(void *channel);
extern int sa_rpmsg_send(void *channel, char *buf, int size);
extern int sa_rpmsg_recv(void *channel, char *buf, int buf_size);
static void *rpmsg_channel = NULL;
static dev_t dev_num;
static struct cdev rpmsg_dev;
static struct class *rpmsg_class = NULL;
#define MAX_CMD_LENGTH 128
static struct task_struct *rpc_media_thread;
static bool thread_running = true;
typedef enum {
CMD_TYPE_MEDIA_HEAD,
CMD_TYPE_MEDIA_Reset,
CMD_TYPE_MEDIA_GetAttr,
CMD_TYPE_MEDIA_Start,
CMD_TYPE_MEDIA_Capture,
CMD_TYPE_MEDIA_GetVideoStream,
CMD_TYPE_MEDIA_ReleaseVideoStream,
CMD_TYPE_MEDIA_Stop,
CMD_TYPE_MEDIA_Ota,
CMD_TYPE_MEDIA_Ack_0,
CMD_TYPE_MEDIA_Ack_1,
CMD_TYPE_MEDIA_INVALID = 0xffffffff,
// 添加更多指令类型
} command_type_t;
typedef struct {
command_type_t cmd_type;
long long raddr;
long long size;
long long ret_val;
long long scene;
long long frame_cnt;
} rpc_media_cmd_t;
#define IOCTL_RPC_MEDIA_GET_INFO_POLL _IOR('m', 1, int) // 获取当前media信息
#define IOCTL_RPC_MEDIA_ACK _IOW('m', 2, rpc_media_cmd_t) //
#if 0
static int do_media(rpc_media_cmd_t cmd_data)
{
int ack_0 = 0;
switch (cmd_data.cmd_type) {
case CMD_TYPE_MEDIA_Reset: {
// do_someting
ack_0 = 1;
break;
}
case CMD_TYPE_MEDIA_Start: {
// do_someting
ack_0 = 1;
break;
}
case CMD_TYPE_MEDIA_Stop: {
// do_someting
ack_0 = 1;
break;
}
case CMD_TYPE_MEDIA_Ota: {
// do_someting
ack_0 = 1;
break;
}
case CMD_TYPE_MEDIA_ReleaseVideoStream: {
// do_someting
ack_0 = 1;
break;
}
case CMD_TYPE_MEDIA_GetVideoStream: {
read_type_condition = 1;
wake_up_interruptible(&read_type_wq);
printk("%s, %d.wake_up_interruptible\n", __func__, __LINE__);
break;
}
default:
break;
}
if (ack_0) {
rpc_media_cmd_t _cmd_data = {0};
_cmd_data.cmd_type = CMD_TYPE_MEDIA_Ack_0;
sa_rpmsg_send(rpmsg_channel, (char *)&_cmd_data, sizeof(_cmd_data));
}
return 0;
}
#endif
static int recv_thread_fn(void *data)
{
#if 0
while (thread_running) {
rpc_media_cmd_t cmd_data = {0};
sa_rpmsg_recv(rpmsg_channel, (char *)&cmd_data, sizeof(rpc_media_cmd_t));
if (cmd_data.cmd_type > CMD_TYPE_MEDIA_HEAD && cmd_data.cmd_type < CMD_TYPE_MEDIA_INVALID) {
read_type_condition = 1;
wake_up_interruptible(&read_type_wq);
}
}
#endif
return 0;
}
// 读操作
static ssize_t rpmsg_media_read(struct file *file, char __user *buffer, size_t len, loff_t *offset)
{
rpc_media_cmd_t cmd_data = {0};
size_t data_size = sizeof(rpc_media_cmd_t);
sa_rpmsg_recv(rpmsg_channel, (char *)&cmd_data, sizeof(rpc_media_cmd_t));
if (cmd_data.cmd_type > CMD_TYPE_MEDIA_HEAD && cmd_data.cmd_type < CMD_TYPE_MEDIA_INVALID) {
// if (len < data_size) {
// data_size = len;
// }
if (copy_to_user(buffer, (void *)&cmd_data, data_size)) {
printk("%s, %d.\n", __func__, __LINE__);
return -EFAULT;
}
} else {
printk("%s, %d.\n", __func__, __LINE__);
return 0;
}
return data_size;
}
// 写操作
static ssize_t rpmsg_media_write(struct file *file, const char __user *buffer, size_t len, loff_t *offset)
{
printk("%s, %d.\n", __func__, __LINE__);
return 0;
}
static long rpmsg_device_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
{
switch (cmd) {
case IOCTL_RPC_MEDIA_GET_INFO_POLL: {
rpc_media_cmd_t _cmd = {0};
int ret = copy_to_user((void *)arg, (void *)&_cmd, sizeof(_cmd));
if (ret) {
printk("%s, %d.osal_copy_to_user err: %d\n", __func__, __LINE__, ret);
return -EFAULT;
}
break;
}
case IOCTL_RPC_MEDIA_ACK: {
rpc_media_cmd_t cmd_data = {0};
int ret = copy_from_user(&cmd_data, (void *)arg, sizeof(cmd_data));
if (ret) {
printk("%s, %d.osal_copy_from_user err: %d\n", __func__, __LINE__, ret);
return -EFAULT;
}
printk("%s, %d.cmd_data.cmd_type: %d\n", __func__, __LINE__, cmd_data.cmd_type);
printk("%s, %d.cmd_data.raddr: %lld\n", __func__, __LINE__, cmd_data.raddr);
printk("%s, %d.cmd_data.size: %lld\n", __func__, __LINE__, cmd_data.size);
printk("%s, %d.cmd_data.ret_val: %lld\n", __func__, __LINE__, cmd_data.ret_val);
sa_rpmsg_send(rpmsg_channel, (char *)&cmd_data, sizeof(cmd_data));
break;
}
default: {
printk("%s, %d.INVAL CMD:%d\n", __func__, __LINE__, cmd);
return -EINVAL;
}
}
return 0;
}
// 文件操作结构体
static struct file_operations fops = {
.owner = THIS_MODULE,
.unlocked_ioctl = rpmsg_device_ioctl,
.read = rpmsg_media_read,
.write = rpmsg_media_write,
};
// 模块初始化
static int __init rpmsg_media_init(void)
{
// 分配设备号
if (alloc_chrdev_region(&dev_num, 0, 1, DEVICE_NAME) < 0) {
printk(KERN_ALERT "Failed to allocate character device region\n");
return -1;
}
// 创建类
rpmsg_class = class_create(THIS_MODULE, CLASS_NAME);
if (IS_ERR(rpmsg_class)) {
printk(KERN_ALERT "Failed to create class\n");
goto create_class_err;
}
// 创建设备
device_create(rpmsg_class, NULL, dev_num, NULL, DEVICE_NAME);
// 初始化字符设备
cdev_init(&rpmsg_dev, &fops);
if (cdev_add(&rpmsg_dev, dev_num, 1) < 0) {
printk(KERN_ALERT "Failed to add cdev\n");
goto cdev_add_err;
}
rpmsg_channel = sa_rpmsg_create_channel("rpmsg-media", RPMSG_MEDIA_CH_ID);
if (!rpmsg_channel) {
printk("create channel failed!\n");
goto create_channel_err;
}
printk(KERN_INFO "create rpmsg-media channel success!\n");
printk(KERN_INFO "rpmsg-rpc-media device registered with major number %d\n", MAJOR(dev_num));
rpc_media_thread = kthread_run(recv_thread_fn, NULL, "rpc_media_thread");
if (IS_ERR(rpc_media_thread)) {
printk(KERN_ALERT "Failed to create hello thread\n");
goto create_thread_err;
}
return 0;
create_thread_err:
if (rpmsg_channel) {
sa_rpmsg_destroy_channel(rpmsg_channel);
rpmsg_channel = NULL;
}
create_channel_err:
cdev_del(&rpmsg_dev);
cdev_add_err:
device_destroy(rpmsg_class, dev_num);
class_destroy(rpmsg_class);
unregister_chrdev_region(dev_num, 1);
create_class_err:
unregister_chrdev_region(dev_num, 1);
return -1;
}
// 模块退出
static void __exit rpmsg_media_exit(void)
{
thread_running = false;
kthread_stop(rpc_media_thread);
if (rpmsg_channel) {
sa_rpmsg_destroy_channel(rpmsg_channel);
rpmsg_channel = NULL;
}
cdev_del(&rpmsg_dev);
device_destroy(rpmsg_class, dev_num);
class_destroy(rpmsg_class);
unregister_chrdev_region(dev_num, 1);
printk(KERN_INFO "rpmsg-rpc-media device unregistered\n");
}
module_init(rpmsg_media_init);
module_exit(rpmsg_media_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("luo");
MODULE_DESCRIPTION("rpmsg rpc media");
\ No newline at end of file
...@@ -3,42 +3,46 @@ from building import * ...@@ -3,42 +3,46 @@ from building import *
Import('RTT_ROOT') Import('RTT_ROOT')
curdir = RTT_ROOT+'/bsp/sa692x/star/build/mcu/' curdir = RTT_ROOT+'/bsp/sa692x/star/build/mcu/'
cwd = GetCurrentDir() cwd = GetCurrentDir()
src = Glob('*.c') # src = Glob('*.c')
src = []
if GetDepend('YJW_USING_PIR') == False:
SrcRemove(src, ['pir_p824m.c']) if GetDepend('YJW_OUTDOOR_IPC') == True:
src = Glob('*.c')
if GetDepend('YJW_USING_BATTERY') == False:
SrcRemove(src, ['cw2017.c']) if GetDepend('YJW_USING_PIR') == False:
SrcRemove(src, ['charge.c']) SrcRemove(src, ['pir_p824m.c'])
if GetDepend('YJW_USING_RTC') == False: if GetDepend('YJW_USING_BATTERY') == False:
SrcRemove(src, ['rtc.c']) SrcRemove(src, ['cw2017.c'])
SrcRemove(src, ['charge.c'])
if GetDepend('YJW_USING_BUTTON') == False:
SrcRemove(src, ['button.c']) if GetDepend('YJW_USING_RTC') == False:
SrcRemove(src, ['rtc.c'])
if GetDepend('YJW_USING_PT2') == False:
SrcRemove(src, ['led_list.c']) if GetDepend('YJW_USING_BUTTON') == False:
SrcRemove(src, ['alarm.c']) SrcRemove(src, ['button.c'])
SrcRemove(src, ['codec.c'])
SrcRemove(src, ['factory_test.c']) if GetDepend('YJW_USING_PT2') == False:
SrcRemove(src, ['flag_ops.c']) SrcRemove(src, ['led_list.c'])
SrcRemove(src, ['gpio_interrupt.c']) SrcRemove(src, ['alarm.c'])
SrcRemove(src, ['i2c_repeater.c']) SrcRemove(src, ['codec.c'])
SrcRemove(src, ['sys_cmd.c']) SrcRemove(src, ['factory_test.c'])
SrcRemove(src, ['sys_power_ctrl.c']) SrcRemove(src, ['flag_ops.c'])
SrcRemove(src, ['system_state.c']) SrcRemove(src, ['gpio_interrupt.c'])
SrcRemove(src, ['tlv_data_handler.c']) SrcRemove(src, ['i2c_repeater.c'])
SrcRemove(src, ['wireless_wakeup.c']) SrcRemove(src, ['sys_cmd.c'])
SrcRemove(src, ['work_mode.c']) SrcRemove(src, ['sys_power_ctrl.c'])
SrcRemove(src, ['misc.c']) SrcRemove(src, ['system_state.c'])
SrcRemove(src, ['tlv_data_handler.c'])
if GetDepend('YJW_USING_RPMSG_MCU') == False: SrcRemove(src, ['wireless_wakeup.c'])
SrcRemove(src, ['rpmsg_mcu.c']) SrcRemove(src, ['work_mode.c'])
SrcRemove(src, ['misc.c'])
if GetDepend('YJW_USING_RPMSG_RPC_APP') == False:
SrcRemove(src, ['rpmsg_rpc_app.c']) if GetDepend('YJW_USING_RPMSG_MCU') == False:
SrcRemove(src, ['rpmsg_mcu.c'])
if GetDepend('YJW_USING_RPMSG_RPC_APP') == False:
SrcRemove(src, ['rpmsg_rpc_app.c'])
#libs = ['airkiss'] #libs = ['airkiss']
libpath = [cwd] libpath = [cwd]
......
#include <rtthread.h>
#include <rtdevice.h>
#include <string.h>
#include <sa_comm_type.h>
#include <sa_rpmsg.h>
#include "common.h"
#include "power_ctrl.h"
#define RPMSG_MEDIA_CH_ID (47)
#define MAX_CMD_LENGTH 128
typedef enum {
CMD_TYPE_MEDIA_HEAD,
CMD_TYPE_MEDIA_Reset,
CMD_TYPE_MEDIA_GetAttr,
CMD_TYPE_MEDIA_Start,
CMD_TYPE_MEDIA_Capture,
CMD_TYPE_MEDIA_GetVideoStream,
CMD_TYPE_MEDIA_ReleaseVideoStream,
CMD_TYPE_MEDIA_Stop,
CMD_TYPE_MEDIA_Ota,
CMD_TYPE_MEDIA_Ack_0,
CMD_TYPE_MEDIA_Ack_1,
CMD_TYPE_MEDIA_INVALID = 0xffffffff,
// 添加更多指令类型
} command_type_t;
typedef struct {
command_type_t cmd_type;
long long raddr;
long long size;
long long ret_val;
long long scene;
long long frame_cnt;
} rpc_media_cmd_t;
static struct rt_device rpmsg_dev;
static struct sa_rpmsg_endpoint *ep;
static struct rt_completion wait_media_event;
// 处理接收到的命令
static void process_command(rpc_media_cmd_t *cmd) {
switch (cmd->cmd_type) {
case CMD_TYPE_MEDIA_Ack_0: {
// rt_kprintf("cmd->ret_val = %lld\n", cmd->ret_val);
rt_kprintf("ack 0, sizeof(t_cmd_data) = %d\n", sizeof(rpc_media_cmd_t));
if (cmd->ret_val)
rt_kprintf("cmd->ret_val > 0\n");
else
rt_kprintf("cmd->ret_val == 0\n");
rt_completion_done(&wait_media_event);
break;
}
default:
rt_kprintf("Unknown command type: %d\n", cmd->cmd_type);
break;
}
}
// 接收回调函数
static SA_S32 rpmsg_device_ep_rx_cb(void *payload, SA_U32 payload_len, SA_VOID *priv) {
rpc_media_cmd_t cmd;
memcpy(&cmd, payload, sizeof(rpc_media_cmd_t));
process_command(&cmd);
return 0;
}
// 初始化RPMSG设备
static int rpmsg_rpc_media_init(void) {
int ret;
rt_kprintf("%s enter\r\n",__func__);
rt_completion_init(&wait_media_event);
while(1) {
if (RPMSG_RUNNING == sa_rpmsg_get_stat()) {
if (!sa_rpmsg_check_channel(RPMSG_MEDIA_CH_ID)) {
// 注册接收回调
ret = sa_rpmsg_install_cb_for_channel(RPMSG_MEDIA_CH_ID, rpmsg_device_ep_rx_cb, RT_NULL);
if (ER_OK != ret) {
rt_kprintf("%s sa_rpmsg_install_cb_for_channel err\r\n",__func__);
} else {
rt_kprintf("%s sa_rpmsg_install_cb_for_channel ok\r\n",__func__);
break;
}
}
}
rt_thread_mdelay(10);
}
return 0;
}
static uint8_t flag = 0;
static void rpmsg_rpc_media_init_entry(void *parameter)
{
rpmsg_rpc_media_init();
flag = 0;
}
int rpmsg_rpc_media(void) {
static rt_thread_t tid = RT_NULL;
if(tid && flag) {
rt_thread_delete(tid);
}
tid = rt_thread_create("rpmsg-media", rpmsg_rpc_media_init_entry, RT_NULL, 1024, 15, 5);
if(tid != RT_NULL)
{
rt_thread_startup(tid);
flag = 1;
return 0;
}
return SA_FAILURE;
}
INIT_APP_EXPORT(rpmsg_rpc_media);
static char *command;
static int usage(int status)
{
rt_kprintf("Usage0:%s [-h/--help]\n", command);
rt_kprintf("Example0:\n");
rt_kprintf("\t%s --help\n", command);
rt_kprintf("Usage1:%s media_start [scene:0:capture; 1:record]\n", command);
rt_kprintf("Example1:\n");
rt_kprintf("\t%s media_start\n", command);
rt_kprintf( "\n");
rt_kprintf("\t%s media_start 0\n", command);
rt_kprintf( "\n");
rt_kprintf("\t%s media_start 1\n", command);
rt_kprintf( "\n");
rt_kprintf("Usage2:%s media_stop\n", command);
rt_kprintf("Example2:\n");
rt_kprintf("\t%s media_stop\n", command);
rt_kprintf( "\n");
rt_kprintf("Usage3:%s media_capture\n", command);
rt_kprintf("Example3:\n");
rt_kprintf("\t%s media_capture\n", command);
rt_kprintf( "\n");
rt_kprintf("Usage4:%s media_getstream\n", command);
rt_kprintf("Example4:\n");
rt_kprintf("\t%s media_getstream\n", command);
rt_kprintf( "\n");
return status;
}
static int rpc_media_cmd_test(int argc, char **argv)
{
rpc_media_cmd_t cmd_data = {0};
command = argv[0];
int ret;
if (argc < 2)
return usage(-1);
if (strcmp(argv[1], "media_start") == 0) {
cmd_data.cmd_type = CMD_TYPE_MEDIA_Start;
cmd_data.scene = 0;
if (argc > 2) {
cmd_data.scene = atoi(argv[2]);
}
} else if (strcmp(argv[1], "media_stop") == 0) {
cmd_data.cmd_type = CMD_TYPE_MEDIA_Stop;
} else if (strcmp(argv[1], "media_getstream") == 0) {
cmd_data.cmd_type = CMD_TYPE_MEDIA_GetVideoStream;
} else if (strcmp(argv[1], "media_releasestream") == 0) {
cmd_data.cmd_type = CMD_TYPE_MEDIA_ReleaseVideoStream;
} else if (strcmp(argv[1], "media_capture") == 0) {
cmd_data.cmd_type = CMD_TYPE_MEDIA_Capture;
if (argc > 2) {
cmd_data.frame_cnt = atoi(argv[2]);
}
} else {
return usage(-1);
}
if (RPMSG_RUNNING == sa_rpmsg_get_stat()) {
ret = sa_rpmsg_send(RPMSG_MEDIA_CH_ID, (char *)&cmd_data, sizeof(rpc_media_cmd_t), 2000);
if (ret) {
rt_kprintf("%s, %d. ret = %d.\r\n", __func__, __LINE__, ret);
}
// rt_completion_wait(&wait_media_event, RT_TICK_PER_SECOND*2);
rt_completion_wait(&wait_media_event, RT_WAITING_FOREVER);
} else {
rt_kprintf("%s, %d. sa_rpmsg_get_stat = %d.\r\n", __func__, __LINE__, sa_rpmsg_get_stat());
}
return 0;
}
MSH_CMD_EXPORT(rpc_media_cmd_test, "media_test");
\ No newline at end of file
...@@ -11,7 +11,7 @@ machine=`uname -m` ...@@ -11,7 +11,7 @@ machine=`uname -m`
if [ ${machine} = "aarch64" ];then if [ ${machine} = "aarch64" ];then
/sbin/insmod ${ko_dir}/osal/osaldrv.ko anony=1 mmz_allocator=superacme mmz=anonymous,0,0x68000000,128M:sram,0,0x201E0000,4352K /sbin/insmod ${ko_dir}/osal/osaldrv.ko anony=1 mmz_allocator=superacme mmz=anonymous,0,0x68000000,128M:sram,0,0x201E0000,4352K
else else
/sbin/insmod ${ko_dir}/osal/osaldrv.ko anony=1 mmz_allocator=superacme mmz=anonymous,0,0x66000000,160M:sram,0,0x201E0000,4352K /sbin/insmod ${ko_dir}/osal/osaldrv.ko anony=1 mmz_allocator=superacme mmz=anonymous,0,0x64000000,192M:sram,0,0x201E0000,4352K
fi fi
# dtbo # dtbo
mkdir -p /sys/kernel/config/device-tree/overlays/sdk mkdir -p /sys/kernel/config/device-tree/overlays/sdk
......
...@@ -44,11 +44,11 @@ rootfs_copy_file() { ...@@ -44,11 +44,11 @@ rootfs_copy_file() {
rm system_temp/lib/modules/sa6920-i2c.dtbo rm system_temp/lib/modules/sa6920-i2c.dtbo
mkdir system_temp/conf/681/ -p mkdir system_temp/conf/681/ -p
cp common/modules/sa6920-i2c.dtbo system_temp/lib/modules/ cp common/modules/sa6920-i2c.dtbo system_temp/lib/modules/
cp common/conf/681/imx681_12M* system_temp/conf/681/ cp common/conf/681/* system_temp/conf/681/
cp common/bin/lite_imx681j_normal.json system_temp/bin/ cp common/bin/lite_imx681* system_temp/bin/
cp common/bin/lite_imx681v_normal.json system_temp/bin/
cp common/script/load_glasses_all.sh system_temp/scripts/ cp common/script/load_glasses_all.sh system_temp/scripts/
cp sdk/lib/modules/isp_all.ko system_temp/lib/modules/ cp sdk/lib/modules/isp_all.ko system_temp/lib/modules/
cp sdk/bin/sample_hapi_media system_temp/bin/
fi fi
if [ "$type" == "emmc" ];then if [ "$type" == "emmc" ];then
...@@ -133,6 +133,14 @@ copy_files "$1" ...@@ -133,6 +133,14 @@ copy_files "$1"
cp sdk/lib/libservice_api.so system_temp/lib/ cp sdk/lib/libservice_api.so system_temp/lib/
cp sdk/lib/libulog.so* system_temp/lib/ cp sdk/lib/libulog.so* system_temp/lib/
cp sdk/lib/libvqe.so* system_temp/lib/ cp sdk/lib/libvqe.so* system_temp/lib/
cp -d sdk/lib/libtinyNE10.so system_temp/lib/
cp -d sdk/lib/libsvp_npu_od.so system_temp/lib/
cp -d sdk/lib/libsvp_vnne.so system_temp/lib/
cp -d sdk/lib/libsvp_npu_fe.so system_temp/lib/
cp -d sdk/lib/libsvp_npu_od_car.so system_temp/lib/
cp -d sdk/lib/libsvp_npu_od.so system_temp/lib/
cp -d sdk/lib/libsvp_vnne.so system_temp/lib/
cp -d sdk/lib/libsvp_yolox.so system_temp/lib/
cp sdk/opensource/lib/libhapi_open.so* system_temp/lib/ cp sdk/opensource/lib/libhapi_open.so* system_temp/lib/
cp sdk/opensource/lib/libimu_open.so* system_temp/lib/ cp sdk/opensource/lib/libimu_open.so* system_temp/lib/
...@@ -178,9 +186,9 @@ copy_files "$1" ...@@ -178,9 +186,9 @@ copy_files "$1"
cp sdk/lib/modules/nfs_ssc.ko system_temp/lib/modules/ cp sdk/lib/modules/nfs_ssc.ko system_temp/lib/modules/
cp sdk/lib/modules/nfsv3.ko system_temp/lib/modules/ cp sdk/lib/modules/nfsv3.ko system_temp/lib/modules/
cp sdk/lib/modules/nfsv4.ko system_temp/lib/modules/ cp sdk/lib/modules/nfsv4.ko system_temp/lib/modules/
# cp sdk/lib/modules/snd-soc-es8328-i2c.ko system_temp/lib/modules/ cp sdk/lib/modules/snd-soc-es8328-i2c.ko system_temp/lib/modules/
# cp sdk/lib/modules/snd-soc-es8328.ko system_temp/lib/modules/ cp sdk/lib/modules/snd-soc-es8328.ko system_temp/lib/modules/
# cp sdk/lib/modules/snd-soc-sa8900.ko system_temp/lib/modules/ cp sdk/lib/modules/snd-soc-sa8900.ko system_temp/lib/modules/
cp sdk/lib/modules/snd-soc-sa8901.ko system_temp/lib/modules/ cp sdk/lib/modules/snd-soc-sa8901.ko system_temp/lib/modules/
cp sdk/lib/modules/snd-soc-simple-card.ko system_temp/lib/modules/ cp sdk/lib/modules/snd-soc-simple-card.ko system_temp/lib/modules/
cp sdk/lib/modules/snd-soc-simple-card-utils.ko system_temp/lib/modules/ cp sdk/lib/modules/snd-soc-simple-card-utils.ko system_temp/lib/modules/
......
...@@ -2,11 +2,11 @@ ...@@ -2,11 +2,11 @@
#notice follows path in ota_pack #notice follows path in ota_pack
bootinfo_version="2.5.6" bootinfo_version="2.5.6"
OTA_VERSION="S04_16NRALXSW1Y1_V1.0.4_250121" OTA_VERSION="S04_16NRALXSW1Y1_V1.0.5_250123"
OTA_KERNEL_PATH="../burn_img_nor/bootimg-XIP-6920E-0P55-outdoor-ipc-linux.bin" OTA_KERNEL_PATH="../burn_img_nor/bootimg-XIP-6920E-0P55-outdoor-ipc-linux.bin"
OTA_SYSTEM_PATH="../burn_img_nor/system.squashfs.bin" OTA_SYSTEM_PATH="../burn_img_nor/system.squashfs.bin"
OTA_SDK_VERSION="V2.5.0.2.8" OTA_SDK_VERSION="V2.5.0.2.9"
OTA_WIFI_FW_PATH="../third_party/longse/wifi/AiW4211L_demo_ota_V2025.1.15.bin" OTA_WIFI_FW_PATH="../third_party/longse/wifi/AiW4211L_demo_ota_V2025.1.23.bin"
OTA_BURN_SH_PATH="./device_ota_pack/ota_burn.sh" OTA_BURN_SH_PATH="./device_ota_pack/ota_burn.sh"
OTA_EXT_SH_PATH="./device_ota_pack/sample_ota.sh" OTA_EXT_SH_PATH="./device_ota_pack/sample_ota.sh"
OTA_EXT_CMD="" OTA_EXT_CMD=""
......
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
...@@ -94,6 +94,7 @@ ...@@ -94,6 +94,7 @@
"scale": { "width": 416, "height": 416 }, "scale": { "width": 416, "height": 416 },
"memlen": 0, "totaltime": 1000, "maxwaittime": 1000, "tolerance": 5, "memlen": 0, "totaltime": 1000, "maxwaittime": 1000, "tolerance": 5,
"nightMode":0, "sensitivity":1, "firstlevel": 0, "secondlevel": 0, "nightMode":0, "sensitivity":1, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
......
...@@ -94,6 +94,7 @@ ...@@ -94,6 +94,7 @@
"scale": { "width": 416, "height": 416 }, "scale": { "width": 416, "height": 416 },
"memlen": 45000000, "totaltime": 1000, "maxwaittime": 1000, "tolerance": 5, "memlen": 45000000, "totaltime": 1000, "maxwaittime": 1000, "tolerance": 5,
"nightMode":0, "sensitivity":1, "firstlevel": 0, "secondlevel": 0, "nightMode":0, "sensitivity":1, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
"workmode": "normal", "workmode": "normal",
"dual": 0, "dual": 0,
"audio": { "audio": {
"enable": 1, "enable": 0,
"scene": "record", "scene": "record",
"input": { "samplerate": 16000, "soundmode": "mono", "encoder": "aac", "vqe": { "enable": 0, "paramfile": "" } }, "input": { "samplerate": 16000, "soundmode": "mono", "encoder": "aac", "vqe": { "enable": 0, "paramfile": "" } },
"output": { "samplerate": 16000, "soundmode": "mono", "decoder": "aac", "vqe": { "enable": 0, "paramfile": "" } }, "output": { "samplerate": 16000, "soundmode": "mono", "decoder": "aac", "vqe": { "enable": 0, "paramfile": "" } },
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
] ]
}, },
{ {
"enable": 1, "devid": 0, "channel": 1, "smartrc": 1, "smartsei": 1, "enable": 0, "devid": 0, "channel": 1, "smartrc": 1, "smartsei": 1,
"format": "h265", "width": 1280, "height": 720, "rcmode": "cbr", "bitrate": 1024000, "format": "h265", "width": 1280, "height": 720, "rcmode": "cbr", "bitrate": 1024000,
"region": [ "region": [
{ {
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
], ],
"svp": [ "svp": [
{ {
"enable": 1, "devid": 0, "detectfps": 15, "structfps": 1, "threshold": 0.65, "rows": 5, "cols": 5, "enable": 0, "devid": 0, "detectfps": 15, "structfps": 1, "threshold": 0.65, "rows": 5, "cols": 5,
"modelfile": "/acme/conf/yolox_nano_PersonVehicleNonvehicle_800x480.hir", "modelfile": "/acme/conf/yolox_nano_PersonVehicleNonvehicle_800x480.hir",
"motordetect": { "enable": 1, "threshold": 0.25 }, "motordetect": { "enable": 1, "threshold": 0.25 },
"nonmotordetect": { "enable": 0, "threshold": 0.25 }, "nonmotordetect": { "enable": 0, "threshold": 0.25 },
...@@ -94,6 +94,7 @@ ...@@ -94,6 +94,7 @@
"scale": { "width": 416, "height": 416 }, "scale": { "width": 416, "height": 416 },
"memlen": 45000000, "totaltime": 1000, "maxwaittime": 1000, "tolerance": 5, "memlen": 45000000, "totaltime": 1000, "maxwaittime": 1000, "tolerance": 5,
"nightMode":0, "sensitivity":1, "firstlevel": 0, "secondlevel": 0, "nightMode":0, "sensitivity":1, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
......
...@@ -94,6 +94,7 @@ ...@@ -94,6 +94,7 @@
"scale": { "width": 416, "height": 416 }, "scale": { "width": 416, "height": 416 },
"memlen": 45000000, "totaltime": 1000, "maxwaittime": 1000, "tolerance": 5, "memlen": 45000000, "totaltime": 1000, "maxwaittime": 1000, "tolerance": 5,
"nightMode":0, "sensitivity":1, "firstlevel": 0, "secondlevel": 0, "nightMode":0, "sensitivity":1, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
......
...@@ -83,17 +83,18 @@ ...@@ -83,17 +83,18 @@
"trigger": [ "trigger": [
{ {
"enable": 1, "enable": 1,
"poweronmode": 1, "poweronmode": 1,
"updatestaticattr": 0, "updatestaticattr": 0,
"updatedynamicattr": 1, "updatedynamicattr": 1,
"devname": "/dev/mtd4", "devname": "/dev/mtd4",
"offsetstatic": 0, "offsetstatic": 0,
"offsetdynamic": 65536, "offsetdynamic": 65536,
"crop": { "x": 0, "y": 0, "width": 2560, "height": 1440 }, "crop": { "x": 0, "y": 0, "width": 2560, "height": 1440 },
"binning": { "width": 640, "height": 480 }, "binning": { "width": 640, "height": 480 },
"scale": { "width": 416, "height": 416 }, "scale": { "width": 416, "height": 416 },
"memlen": 45000000, "totaltime": 1000, "maxwaittime": 1000, "tolerance": 5, "memlen": 45000000, "totaltime": 1000, "maxwaittime": 1000, "tolerance": 5,
"nightMode":0, "sensitivity":1, "firstlevel": 0, "secondlevel": 0, "nightMode":0, "sensitivity":1, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
......
...@@ -77,6 +77,7 @@ ...@@ -77,6 +77,7 @@
"scale": { "width": 416, "height": 416 }, "scale": { "width": 416, "height": 416 },
"memlen": 45000000, "totaltime": 1000, "maxwaittime": 1000, "tolerance": 5, "memlen": 45000000, "totaltime": 1000, "maxwaittime": 1000, "tolerance": 5,
"nightMode":0, "sensitivity":1, "firstlevel": 0, "secondlevel": 0, "nightMode":0, "sensitivity":1, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
......
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -387,6 +388,8 @@ ...@@ -387,6 +388,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -387,6 +388,8 @@ ...@@ -387,6 +388,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -395,6 +396,8 @@ ...@@ -395,6 +396,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 200, "totaltime": 1000, "maxtime": 200,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":10,
"lightDownFrqIR":10,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -387,6 +388,8 @@ ...@@ -387,6 +388,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -387,6 +388,8 @@ ...@@ -387,6 +388,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -387,6 +388,8 @@ ...@@ -387,6 +388,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -387,6 +388,8 @@ ...@@ -387,6 +388,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -395,6 +396,8 @@ ...@@ -395,6 +396,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
"mode": 1, "memlen": 50331648, "mode": 1, "memlen": 50331648,
"totaltime": 1000, "maxtime": 600, "totaltime": 1000, "maxtime": 600,
"lerance": 20, "firstlevel": 0, "secondlevel": 0, "lerance": 20, "firstlevel": 0, "secondlevel": 0,
"lampdownfreqlmit":10, "lampupfreqlimit":10,
"exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024, "exptime": 20000, "again": 1024, "dgain": 1024, "ispgain": 1024,
"autotarget": 1, "target": 64, "range": 10, "autotarget": 1, "target": 64, "range": 10,
"isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ] "isotarget": [ 64, 64, 64, 64, 65, 66, 69, 72, 75, 75, 75, 75, 75, 75, 75, 75 ]
...@@ -370,6 +371,8 @@ ...@@ -370,6 +371,8 @@
"lightOff":0, "lightOff":0,
"lightFrqWl":100, "lightFrqWl":100,
"lightFrqIR":100, "lightFrqIR":100,
"lightDownFrqWl":0,
"lightDownFrqIR":0,
"icrLampMode":0, "icrLampMode":0,
"icrEn":0, "icrEn":0,
"lampType":0, "lampType":0,
......
libispalg.so.2.5.0.4.9 libispalg.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libive.so.2.5.0.4.9 libive.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
liblapi.so.2.5.0.4.9 liblapi.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libmapi.so.2.5.0.4.9 libmapi.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
No preview for this file type
libvqe.so.2.5.0.4.9 libvqe.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
No preview for this file type
No preview for this file type
No preview for this file type
libdisplay_open.so.2.5.0.4.9 libdisplay_open.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libhapi_open.so.2.5.0.4.9 libhapi_open.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libimu_open.so.2.5.0.4.9 libimu_open.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libjson_open.so.2.5.0.4.9 libjson_open.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
liblens_open.so.2.5.0.4.9 liblens_open.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
librtsp_open.so.2.5.0.4.9 librtsp_open.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libsns_gc4103_soc.so.2.5.0.4.9 libsns_gc4103_soc.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libsns_imx327_soc.so.2.5.0.4.9 libsns_imx327_soc.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libsns_imx681_soc.so.2.5.0.4.9 libsns_imx681_soc.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libsns_os02n10_soc.so.2.5.0.4.9 libsns_os02n10_soc.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libsns_os04a10_soc.so.2.5.0.4.9 libsns_os04a10_soc.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libsns_os04d10_soc.so.2.5.0.4.9 libsns_os04d10_soc.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libsns_os04d10_soc13.so.2.5.0.4.9 libsns_os04d10_soc13.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libsns_os04d10_soc30.so.2.5.0.4.9 libsns_os04d10_soc30.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libsns_os04j10_soc.so.2.5.0.4.9 libsns_os04j10_soc.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libsns_os04l10_soc.so.2.5.0.4.9 libsns_os04l10_soc.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libsns_os05l10_soc.so.2.5.0.4.9 libsns_os05l10_soc.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libsns_os08a10_soc.so.2.5.0.4.9 libsns_os08a10_soc.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libsns_os08d10_soc.so.2.5.0.4.9 libsns_os08d10_soc.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libsns_sc465sl_soc.so.2.5.0.4.9 libsns_sc465sl_soc.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libsns_sc535_soc.so.2.5.0.4.9 libsns_sc535_soc.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
libsns_sc8238_soc.so.2.5.0.4.9 libsns_sc8238_soc.so.2.5.0.5.1
\ No newline at end of file \ No newline at end of file
...@@ -383,7 +383,7 @@ SA_S32 SA_HAPI_SYS_SetMcuWakeup(WAKE_MODE_E enWakeMode, SYS_GPIO_IRQ_EVENT_E enI ...@@ -383,7 +383,7 @@ SA_S32 SA_HAPI_SYS_SetMcuWakeup(WAKE_MODE_E enWakeMode, SYS_GPIO_IRQ_EVENT_E enI
stWakeupSrc.WAKEUP_MODE_SET.MODE_PIR.wake_duty = 20; stWakeupSrc.WAKEUP_MODE_SET.MODE_PIR.wake_duty = 20;
stWakeupAction.event[0].mode = 0;//0 is gpio type, 1 is pwm type stWakeupAction.event[0].mode = 0;//0 is gpio type, 1 is pwm type
stWakeupAction.event[0].enable = SA_TRUE; stWakeupAction.event[0].enable = SA_FALSE;
stWakeupAction.event[0].ACTION.GPIO.gpio_id = 0x0A03; stWakeupAction.event[0].ACTION.GPIO.gpio_id = 0x0A03;
stWakeupAction.event[0].ACTION.GPIO.output = 0; stWakeupAction.event[0].ACTION.GPIO.output = 0;
stWakeupAction.event[0].ACTION.GPIO.keep_time = 200; stWakeupAction.event[0].ACTION.GPIO.keep_time = 200;
......
...@@ -268,7 +268,7 @@ SA_S32 IMU_Function(SA_S32 Dev, SA_U32 Cmd, SA_VOID *pData) ...@@ -268,7 +268,7 @@ SA_S32 IMU_Function(SA_S32 Dev, SA_U32 Cmd, SA_VOID *pData)
stImuStartPara.enImuDataOutMode = IMU_DATA_OUT_REG_MODE; stImuStartPara.enImuDataOutMode = IMU_DATA_OUT_REG_MODE;
s32Ret = IMU_Start(Dev, &stImuStartPara); s32Ret = IMU_Start(Dev, &stImuStartPara);
OSWL_LOG_I("imu mode %d, sample rate %d\n", stImuStartPara.enRunMode, stImuStartPara.enImuSampleRatio); printf("imu mode %d, sample rate %d\n", stImuStartPara.enRunMode, stImuStartPara.enImuSampleRatio);
break; break;
} }
case ISP_EIS_IMU_STOP: case ISP_EIS_IMU_STOP:
......
...@@ -172,7 +172,7 @@ void delay_ms(unsigned short mSecond) ...@@ -172,7 +172,7 @@ void delay_ms(unsigned short mSecond)
{ {
//your delay code(mSecond: millisecond): //your delay code(mSecond: millisecond):
//...... //......
oswl_mdelay(mSecond); usleep(mSecond*1000);
} }
......
...@@ -171,7 +171,7 @@ IMU_write SH3201_write = SPI_writeNBytes; ...@@ -171,7 +171,7 @@ IMU_write SH3201_write = SPI_writeNBytes;
static void delay_ms(unsigned short mSecond) static void delay_ms(unsigned short mSecond)
{ {
oswl_mdelay(mSecond); usleep(mSecond*1000);
} }
...@@ -1915,7 +1915,7 @@ void SH3201_Get_Adc_Polarity(short gyroPolarity[3]) ...@@ -1915,7 +1915,7 @@ void SH3201_Get_Adc_Polarity(short gyroPolarity[3])
SH3201_write(SH3201_ADDRESS, regAddrS1[i], 1, &regInitS1[i]); SH3201_write(SH3201_ADDRESS, regAddrS1[i], 1, &regInitS1[i]);
} }
oswl_mdelay(50); usleep(50*1000);
i = 0; i = 0;
while(i++ < 20) while(i++ < 20)
...@@ -1937,7 +1937,7 @@ void SH3201_Get_Adc_Polarity(short gyroPolarity[3]) ...@@ -1937,7 +1937,7 @@ void SH3201_Get_Adc_Polarity(short gyroPolarity[3])
SH3201_write(SH3201_ADDRESS, regAddrS2[i], 1, &regInitS2[i]); SH3201_write(SH3201_ADDRESS, regAddrS2[i], 1, &regInitS2[i]);
} }
oswl_mdelay(50); usleep(50*1000);
gyroSum[0] = 0; gyroSum[0] = 0;
gyroSum[1] = 0; gyroSum[1] = 0;
......
...@@ -25,7 +25,7 @@ MAPI_SDK_SYS_LIB_DIR := -L$(SDK_LIB_DIR) -L$(SDK_USER_LIB_DIR) -L$(SDK_OPENSOURC ...@@ -25,7 +25,7 @@ MAPI_SDK_SYS_LIB_DIR := -L$(SDK_LIB_DIR) -L$(SDK_USER_LIB_DIR) -L$(SDK_OPENSOURC
MAPI_SDK_SYS_LD_FLAGS :=-loswl -lmapi -llapi -lispalg -live -lulog -ldl -lfdk-aac -ljson_open -lae_algo -lawb_algo -lsd_algo \ MAPI_SDK_SYS_LD_FLAGS :=-loswl -lmapi -llapi -lispalg -live -lulog -ldl -lfdk-aac -ljson_open -lae_algo -lawb_algo -lsd_algo \
-licr -lsmartLamp -licr -lsmartLamp
#CROSS_COMPILE=arm-microbt-linux-uclibcgnueabihf- CROSS_COMPILE=arm-microbt-linux-uclibcgnueabihf-
CC=$(CROSS_COMPILE)gcc CC=$(CROSS_COMPILE)gcc
AR=$(CROSS_COMPILE)ar AR=$(CROSS_COMPILE)ar
......
No preview for this file type
No preview for this file type
No preview for this file type
...@@ -25,7 +25,7 @@ MAPI_SDK_SYS_LIB_DIR := -L$(SDK_LIB_DIR) -L$(SDK_USER_LIB_DIR) -L$(SDK_OPENSOURC ...@@ -25,7 +25,7 @@ MAPI_SDK_SYS_LIB_DIR := -L$(SDK_LIB_DIR) -L$(SDK_USER_LIB_DIR) -L$(SDK_OPENSOURC
MAPI_SDK_SYS_LD_FLAGS :=-loswl -lmapi -llapi -lispalg -live -lulog -ldl -lfdk-aac -ljson_open -lae_algo -lawb_algo -lsd_algo \ MAPI_SDK_SYS_LD_FLAGS :=-loswl -lmapi -llapi -lispalg -live -lulog -ldl -lfdk-aac -ljson_open -lae_algo -lawb_algo -lsd_algo \
-licr -lsmartLamp -licr -lsmartLamp
#CROSS_COMPILE=arm-microbt-linux-uclibcgnueabihf- CROSS_COMPILE=arm-microbt-linux-uclibcgnueabihf-
CC=$(CROSS_COMPILE)gcc CC=$(CROSS_COMPILE)gcc
AR=$(CROSS_COMPILE)ar AR=$(CROSS_COMPILE)ar
......
-include ../mkconfig
src = $(PWD)
ARFLAGS := -rc
CFLAGS := -g -Wall -fpic
CFLAGS += $(MAPI_SDK_SYS_INC_DIR)
LDFLAGS += $(MAPI_SDK_SYS_LIB_DIR)
LDFLAGS += $(MAPI_SDK_SYS_LD_FLAGS)
LDFLAGS += -lhapi_open -lrtsp_open -lfreetype -limu_open
DIR_LIB := $(src)
DIRS := $(shell find . -maxdepth 2 -type d)
FILES = $(foreach dir,$(DIRS),$(wildcard $(dir)/*.c))
SRC := $(wildcard ${src}/*.c)
OBJ += $(patsubst %.c, %.o, ${FILES})
TARGET = sample_rpmsg_media
all:$(OBJ)
$(CC) $(LDFLAGS) $(OBJ) -o $(TARGET)
%.o:%.c
$(CC) -c $(CFLAGS) $< -o $@
clean:
@rm -rf $(OBJ) $(TARGET)
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif /* End of #ifdef __cplusplus */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <signal.h>
#include <ctype.h>
#include <getopt.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/file.h>
#include <stdint.h>
#include <time.h>
#include <sys/time.h>
#include <arpa/inet.h>
#include <sys/ioctl.h>
#include <errno.h>
#include "sa_hapi_sys.h"
#include "sa_hapi_media.h"
#ifdef HAPI_SA6920
#include "sa_mapi_vpss.h"
#include "sa_mapi_venc.h"
#endif
#include "sa_list.h"
#include "rtsp.h"
#include "saJSON.h"
#include "sa_comm.h"
#define DEVICE_NAME "/dev/rpmsg_media"
typedef enum {
CMD_TYPE_MEDIA_HEAD,
CMD_TYPE_MEDIA_Reset,
CMD_TYPE_MEDIA_GetAttr,
CMD_TYPE_MEDIA_Start,
CMD_TYPE_MEDIA_Capture,
CMD_TYPE_MEDIA_GetVideoStream,
CMD_TYPE_MEDIA_ReleaseVideoStream,
CMD_TYPE_MEDIA_Stop,
CMD_TYPE_MEDIA_Ota,
CMD_TYPE_MEDIA_Ack_0,
CMD_TYPE_MEDIA_Ack_1,
CMD_TYPE_MEDIA_INVALID = 0xffffffff,
// 添加更多指令类型
} command_type_t;
#define MAX_CMD_LENGTH 128
typedef struct {
command_type_t cmd_type;
long long raddr;
long long size;
long long ret_val;
long long scene;
long long frame_cnt;
} rpc_media_cmd_t;
#define IOCTL_RPC_MEDIA_ACK _IOW('m', 2, rpc_media_cmd_t)
#define RPC_MEDIA_CAPTURE_CH_ID 0
#define RPC_MEDIA_RECORD_CH_ID 1
static HAPI_MEDIA_THREAD_T g_stSceneTh = {0};
static SA_BOOL g_bMediaHapiRun = 0; //0 - OFF, 1 - ON
static SA_S32 g_s32CaptureNum = 1; //拍照张数
static SA_S8 g_s8DropFrame = -1; //-1:自适应丢帧 >=0:固定丢帧数
static SA_MEDIA_SCENE_E g_enSampleScene = SA_MEDIA_SCENE_NUM;
static SA_MEDIA_CONFIG_S g_stMediaCfg = {
.stVideoConfig = {
.enSensorType = SA_MEDIA_SNS_TYPE_4D10,
.enSensorMode = SA_MEDIA_SNS_MODE_LINEAR,
.s32ViDev = 0,
.f32MaxFps = 15.0,
.f32MinFps = 5.0,
.bMirror = 0,
.bFlip = 0,
.enRotation = VI_GDC_ROTATE_0,
.bGdc = 0,
.enFilterColor = SA_MEDIA_COLOR_FILTER_NORMAL,
.stProAttr = {
.bProEnable = 0,
.u16ISO = 100,
.u16AWBCt = 5000,
.stSportMode = {
.bSportEnable = 0,
.u32MaxIntTime = 0
}
},
.astVencConfig = {
{
.enEncodeType = VENC_ENCODE_TYPE_JPEG,
.u8Qfactor = 80,
.stResolution = {
.u32Width = 2560,
.u32Height = 1440
},
.enRcMode = VENC_RC_MODE_JPEG_FXIQP,
.u32Bitrate = 2048000,
.astRegion = {
{
.bEnable = SA_FALSE,
.enType = SA_MEDIA_RGN_TYPE_IMAGE,
.astrImageFile = "/acme/bin/logo256x128.2bpp",
.stRect = {
.s32X = 32,
.s32Y = 32,
.u32Width = 256,
.u32Height = 128
},
.u32RgbColor = { 0xFFFFFF, 0x5E2BD2, 0xFF8445 }
},
{
.bEnable = SA_FALSE,
.enType = SA_MEDIA_RGN_TYPE_TIMESTAMP,
.stRect = {
.s32X = 1928, //cavas width(2560) - region width(600) - padding(32)
.s32Y = 1344, //cavas height(1440) - region height(64) - padding(32)
.u32Width = 600,
.u32Height = 64
},
.u32RgbColor = { 0xFFFFFF, 0x5E2BD2, 0xFF8445 }
}
},
.enSmartEncoder = SA_MEDIA_SMART_ENCODER_NONE,
.bSmartSEI = SA_FALSE
},
{
.enEncodeType = VENC_ENCODE_TYPE_H265,
.u8Qfactor = 80,
.stResolution = {
.u32Width = 1920,
.u32Height = 1080
},
.enRcMode = VENC_RC_MODE_CBR,
.u32Bitrate = 2048000,
.astRegion = {
{
.bEnable = SA_FALSE,
.enType = SA_MEDIA_RGN_TYPE_IMAGE,
.astrImageFile = "/acme/bin/logo256x128.2bpp",
.stRect = {
.s32X = 32,
.s32Y = 32,
.u32Width = 256,
.u32Height = 128
},
.u32RgbColor = { 0xFFFFFF, 0x5E2BD2, 0xFF8445 }
},
{
.bEnable = SA_FALSE,
.enType = SA_MEDIA_RGN_TYPE_TIMESTAMP,
.stRect = {
.s32X = 1928, //cavas width(2560) - region width(600) - padding(32)
.s32Y = 1344, //cavas height(1440) - region height(64) - padding(32)
.u32Width = 600,
.u32Height = 64
},
.u32RgbColor = { 0xFFFFFF, 0x5E2BD2, 0xFF8445 }
}
},
.enSmartEncoder = SA_MEDIA_SMART_ENCODER_ROI,
.bSmartSEI = SA_TRUE
}
},
.stSdConfig = {
.enSdMode = SA_MEDIA_SD_AUTO,
.enSceneType = SA_MEDIA_SD_COLOR_OUTDOOR,
.enWdrMode = SA_MEDIA_SD_WDRMODE_NONE,
.stExpAttr = {
.stIntTimeAttr = {
.bEnable = SA_FALSE,
.u32IntTimeMax = 0
},
.stRoiAttr = {
.bEnable = SA_FALSE,
.stRoiSizeAttr = {
.u16X = 0,
.u16Y = 0,
.u16Width = 0,
.u16Height = 0
}
},
.stStrategyAttr = {
.enMode = EXP_STRATEGY_NORMAL,
.u32Strength = 100
},
.stFlickerAttr = {
.bEnable = SA_FALSE,
.u8Frequency = 50
}
},
},
.astrIspFile = {
"/acme/conf/4d10/os04d10_base_Color.bin",
"/acme/conf/4d10/os04d10_4M_Color_Outdoor_diff.bin",
"/acme/conf/4d10/os04d10_4M_Color_Indoor_diff.bin",
"/acme/conf/4d10/os04d10_4M_Color_Aisp_diff.bin",
},
.astrAinrFile = {"/acme/conf/4d10/aisp_4M.bin",},
},
.stCaptureConfig = {
.bBokehEnable = SA_FALSE,
.bMFNREnable = SA_FALSE,
.bHDREnable = SA_FALSE,
.bZSLEnable = SA_FALSE,
.stBeautyCfg.bBeautyEnable = SA_FALSE,
.stBeautyCfg.u8Strength = 0,
.stSaveCfg = {
.bSaveEnable = SA_TRUE,
.enSaveFormat = SA_MEDIA_CAPTURE_SAVE_JPEG,
.astrSaveFilePath = {"/mnt/sdcard/"},
},
},
.stRecordConfig = {
.enEISMode = VI_EIS_DISABLE,
.stAudioConfig = {
.stAudioInConfig = {
.bAudioEnable = SA_TRUE,
.enSampleRate = SA_MEDIA_AUDIO_SAMPLE_RATE_16000,
.enSoundMode = SA_MEDIA_AUDIO_SOUND_MODE_MONO,
.enEncType = SA_MEDIA_AUDIO_CODEC_TYPE_LCAAC,
.bVqeEnable = SA_FALSE,
.strVqeParamFile = {0}
},
.stAudioOutConfig = {0},
},
.stSaveCfg = {
.bSaveEnable = SA_TRUE,
.enSaveFormat = SA_MEDIA_RECORD_SAVE_265,
.astrSaveFilePath = {"/mnt/sdcard/"},
},
},
.stSvpConfig = {
.bOCREnable = SA_FALSE,
.bQRCodeEnable = SA_FALSE,
.bFaceDetEnable = SA_FALSE,
.bPeopleDetEnable = SA_FALSE,
.bSmartAeEnable = SA_FALSE
}
};
static SA_VOID SAMPLE_MEDIA_Exit(SA_S32 s32Sig)
{
if (SIGINT == s32Sig || SIGTERM == s32Sig) {
if (SA_TRUE == g_bMediaHapiRun) {
g_bMediaHapiRun = SA_FALSE;
HAPI_MEDIA_THREAD_DEINIT(g_stSceneTh);
}
}
}
static SA_S32 rpc_media_capture_setupfile(SA_MEDIA_ATTR_S *pstMediaAttr, SA_U32 u32FrameId) {
SA_S32 fdStream = -1;
SA_CHAR strName[256] = {0};
SA_U32 width = pstMediaAttr->stVenc.astChannel[RPC_MEDIA_CAPTURE_CH_ID].stChnAttr.stVencAttr.u32EncWidth;
SA_U32 height = pstMediaAttr->stVenc.astChannel[RPC_MEDIA_CAPTURE_CH_ID].stChnAttr.stVencAttr.u32EncHeight;
if (SA_TRUE == pstMediaAttr->stCapture.stSaveCfg.bSaveEnable) {
if (SA_MEDIA_CAPTURE_SAVE_JPEG == pstMediaAttr->stCapture.stSaveCfg.enSaveFormat) {
sprintf(strName, "%s/capture_%dx%d_%d.%s", pstMediaAttr->stCapture.stSaveCfg.astrSaveFilePath, width, height, u32FrameId, "jpg");
HAPI_MEDIA_LOG_I("capture save path:%s!\n", strName);
fdStream = open(strName, O_RDWR | O_CREAT | O_TRUNC, 0666);
if (fdStream < 0) {
HAPI_MEDIA_LOG_E("create capture file failed!\n");
return -1;
}
} else {
HAPI_MEDIA_LOG_E("capture save format not support!\n");
return -1;
}
} else {
HAPI_MEDIA_LOG_E("capture save disable!\n");
return -1;
}
return fdStream;
}
static SA_S32 rpc_media_record_setupfile(SA_MEDIA_ATTR_S *pstMediaAttr, SA_U32 u32FrameId) {
SA_S32 fdStream = -1;
SA_CHAR strName[256] = {0};
SA_U32 width = pstMediaAttr->stVenc.astChannel[RPC_MEDIA_RECORD_CH_ID].stChnAttr.stVencAttr.u32EncWidth;
SA_U32 height = pstMediaAttr->stVenc.astChannel[RPC_MEDIA_RECORD_CH_ID].stChnAttr.stVencAttr.u32EncHeight;
if (SA_TRUE == pstMediaAttr->stRecord.stSaveCfg.bSaveEnable) {
if (SA_MEDIA_RECORD_SAVE_265 == pstMediaAttr->stRecord.stSaveCfg.enSaveFormat) {
sprintf(strName, "%s/record_%dx%d_%d.%s", pstMediaAttr->stRecord.stSaveCfg.astrSaveFilePath, width, height, u32FrameId, "h265");
} else if (SA_MEDIA_RECORD_SAVE_264 == pstMediaAttr->stRecord.stSaveCfg.enSaveFormat) {
sprintf(strName, "%s/record_%dx%d_%d.%s", pstMediaAttr->stRecord.stSaveCfg.astrSaveFilePath, width, height, u32FrameId, "h264");
} else if (SA_MEDIA_RECORD_SAVE_JPG == pstMediaAttr->stRecord.stSaveCfg.enSaveFormat) {
sprintf(strName, "%s/record_%dx%d_%d.%s", pstMediaAttr->stRecord.stSaveCfg.astrSaveFilePath, width, height, u32FrameId, "jpg");
} else {
HAPI_MEDIA_LOG_E("record save format not support!\n");
return -1;
}
HAPI_MEDIA_LOG_I("record save path:%s!\n", strName);
fdStream = open(strName, O_RDWR | O_CREAT | O_TRUNC, 0666);
if (fdStream < 0) {
HAPI_MEDIA_LOG_E("create record file failed!\n");
return -1;
}
} else {
HAPI_MEDIA_LOG_E("record save disable!\n");
return -1;
}
return fdStream;
}
static SA_S32 rpc_media_stop(VENC_STREAM_S *pstStream, SA_S32 fdStream) {
if (fdStream != -1) {
close(fdStream);
}
if (SA_NULL != pstStream) {
if (SA_NULL != pstStream->pstPack) {
HAPI_MEDIA_FREE(pstStream->pstPack);
}
HAPI_MEDIA_FREE(pstStream);
}
return SA_SUCCESS;
}
static SA_U32 g_u32RecordId = 0;
static SA_U32 g_u32CaptureId = 0;
static VENC_STREAM_S *rpc_media_start(SA_MEDIA_ATTR_S *pstMediaAttr, SA_S32 *pfdStream, SA_MEDIA_SCENE_E stScene) {
SA_S32 fdStream = -1;
VENC_STREAM_S *pstStream = HAPI_MEDIA_MALLOC(sizeof(VENC_STREAM_S));
if (SA_NULL == pstStream) {
HAPI_MEDIA_LOG_E("malloc stream failed!\n");
return SA_NULL;
}
memset(pstStream, 0, sizeof(VENC_STREAM_S));
pstStream->pstPack = (VENC_PACK_S *)HAPI_MEDIA_MALLOC(SA_MEDIA_PACK_NUM_MAX * sizeof(VENC_PACK_S));
if (SA_NULL == pstStream->pstPack) {
HAPI_MEDIA_LOG_E("malloc stream pack failed!\n");
goto SAMPLE_STREAM_EXIT;
}
memset(pstStream->pstPack, 0, SA_MEDIA_PACK_NUM_MAX * sizeof(VENC_PACK_S));
if (stScene == SA_MEDIA_SCENE_RECORD) {
fdStream = rpc_media_record_setupfile(pstMediaAttr, g_u32RecordId);
if (fdStream < 0) {
goto SAMPLE_STREAM_EXIT;
}
g_u32RecordId++;
} else {
fdStream = rpc_media_capture_setupfile(pstMediaAttr, g_u32CaptureId);
if (fdStream < 0) {
goto SAMPLE_STREAM_EXIT;
}
g_u32CaptureId++;
}
*pfdStream = fdStream;
return pstStream;
SAMPLE_STREAM_EXIT:
rpc_media_stop(pstStream, fdStream);
return SA_NULL;
}
static SA_S32 rpc_media_getstream(SA_MEDIA_ATTR_S *pstMediaAttr, VENC_STREAM_S *pstStream, SA_S32 fdStream, SA_MEDIA_SCENE_E stScene) {
SA_S32 s32Ret = SA_SUCCESS;
SA_U32 u32ChnId;
if (!pstStream)
return -1;
if (stScene == SA_MEDIA_SCENE_RECORD)
u32ChnId = RPC_MEDIA_RECORD_CH_ID;
else
u32ChnId = RPC_MEDIA_CAPTURE_CH_ID;
pstStream->u32PackCount = SA_MEDIA_PACK_NUM_MAX;
s32Ret = SA_HAPI_MEDIA_GetVideoStream(pstMediaAttr->stVenc.astChannel[u32ChnId].u32ChnId, pstStream, 1000); // 1000ms 超时
if (SA_SUCCESS != s32Ret) {
HAPI_MEDIA_LOG_E("SA_HAPI_MEDIA_GetVideoStream(%d) failed with %#x!\n", pstMediaAttr->stVenc.astChannel[u32ChnId].u32ChnId, s32Ret);
goto SAMPLE_COLSE_FD;
}
for (SA_U32 u32Index = 0; u32Index < pstStream->u32PackCount; u32Index++) {
VENC_PACK_S *pstPack = &pstStream->pstPack[u32Index];
if (SA_NULL != pstPack->pu8Addr && pstPack->u32Len > 0) {
if (fdStream != -1) {
s32Ret = write(fdStream, pstPack->pu8Addr, pstPack->u32Len);
if (s32Ret < 0) {
HAPI_MEDIA_LOG_E("%s: write record file fail.\n", __func__);
goto SAMPLE_COLSE_FD;
}
}
} else {
break;
}
}
SAMPLE_COLSE_FD:
return s32Ret;
}
static SA_S32 rpc_media_releasestream(SA_MEDIA_ATTR_S *pstMediaAttr, VENC_STREAM_S *pstStream, SA_MEDIA_SCENE_E stScene) {
SA_S32 s32Ret = SA_SUCCESS;
SA_U32 u32ChnId;
if (!pstStream)
return -1;
if (stScene == SA_MEDIA_SCENE_RECORD)
u32ChnId = RPC_MEDIA_RECORD_CH_ID;
else
u32ChnId = RPC_MEDIA_CAPTURE_CH_ID;
s32Ret = SA_HAPI_MEDIA_ReleaseVideoStream(pstMediaAttr->stVenc.astChannel[u32ChnId].u32ChnId, pstStream);
if (SA_SUCCESS != s32Ret) {
HAPI_MEDIA_LOG_E("SA_HAPI_MEDIA_ReleaseVideoStream failed with %#x!\n", s32Ret);
}
return s32Ret;
}
static SA_MEDIA_ATTR_S g_stMediaAttr = {0};
static void media_init(SA_MEDIA_SCENE_E stScene)
{
int s32Ret = SA_SUCCESS;
s32Ret = SA_HAPI_SYS_GetWorkMode(&g_stMediaAttr.enSysMode);
if (SA_SUCCESS != s32Ret) {
HAPI_MEDIA_LOG_E("SA_HAPI_SYS_SetWorkMode %d failed with %#x!\n", g_stMediaAttr.enSysMode, s32Ret);
return;
}
s32Ret = SA_HAPI_MEDIA_GetAttr(stScene, &g_stMediaCfg, &g_stMediaAttr);
if (SA_SUCCESS != s32Ret) {
HAPI_MEDIA_LOG_E("SA_HAPI_MEDIA_GetAttr failed with %#x!\n", s32Ret);
return;
}
s32Ret = SA_HAPI_SYS_SetWorkMode(g_stMediaAttr.enSysMode);
if (SA_SUCCESS != s32Ret) {
HAPI_MEDIA_LOG_E("SA_HAPI_SYS_SetWorkMode %d failed with %#x!\n", g_stMediaAttr.enSysMode, s32Ret);
return;
}
g_stMediaAttr.stVin.stIspAttr.s8DropFramesNum = g_s8DropFrame;
s32Ret = SA_HAPI_MEDIA_Start(&g_stMediaAttr);
if (SA_SUCCESS != s32Ret) {
HAPI_MEDIA_LOG_E("SA_HAPI_MEDIA_Start failed with %#x!\n", s32Ret);
}
return;
}
void media_deinit(void)
{
int s32Ret = SA_HAPI_MEDIA_Stop(&g_stMediaAttr);
if (SA_SUCCESS != s32Ret) {
HAPI_MEDIA_LOG_E("SA_HAPI_VIDEO_Stop failed with %#x!\n", s32Ret);
}
}
#ifdef __linux__
int main(int argc,char **argv)
#else
int streamerlite(int argc,char **argv)
#endif
{
int fd;
int s32Ret = SA_SUCCESS;
#ifdef __linux__
signal(SIGPIPE, SIG_IGN);
signal(SIGINT, SAMPLE_MEDIA_Exit);
#endif
// 打开设备文件
fd = open(DEVICE_NAME, O_RDWR);
if (fd < 0) {
perror("Failed to open device");
return EXIT_FAILURE;
}
VENC_STREAM_S *pstStream = SA_NULL;
SA_S32 fdStream = -1;
while (1) {
int ret = 0;
rpc_media_cmd_t cmd_data = {0};
rpc_media_cmd_t t_cmd_data = {0};
re_read:
if (read(fd, &cmd_data, sizeof(cmd_data)) < 0) {
perror("Failed to read from the device");
close(fd);
return errno;
}
// HAPI_MEDIA_LOG_I("cmd_data.cmd_type : %d, sizeof(rpc_media_cmd_t) = %d\n", cmd_data.cmd_type, sizeof(rpc_media_cmd_t));
switch (cmd_data.cmd_type) {
case CMD_TYPE_MEDIA_Stop: {
if (g_bMediaHapiRun == SA_TRUE) {
media_deinit();
rpc_media_stop(pstStream, fdStream);
SA_HAPI_SYS_Deinit();
g_bMediaHapiRun = SA_FALSE;
}
break;
}
case CMD_TYPE_MEDIA_Reset: {
break;
}
case CMD_TYPE_MEDIA_Start: {
if (g_bMediaHapiRun == SA_FALSE) {
if (cmd_data.scene)
g_enSampleScene = SA_MEDIA_SCENE_RECORD;
else
g_enSampleScene = SA_MEDIA_SCENE_CAPTURE;
s32Ret = SA_HAPI_SYS_Init();
if (SA_SUCCESS != s32Ret) {
HAPI_MEDIA_LOG_E("SA_HAPI_SYS_Init failed with %#x!\n", s32Ret);
return s32Ret;
}
media_init(g_enSampleScene);
pstStream = rpc_media_start(&g_stMediaAttr, &fdStream, g_enSampleScene);
g_bMediaHapiRun = SA_TRUE;
}
break;
}
case CMD_TYPE_MEDIA_Capture: {
g_enSampleScene = SA_MEDIA_SCENE_CAPTURE;
if (cmd_data.frame_cnt)
g_s32CaptureNum = cmd_data.frame_cnt;
else
g_s32CaptureNum = 1;
HAPI_MEDIA_LOG_I("cmd_data.frame_cnt : %lld, sizeof(rpc_media_cmd_t) = %d\n", cmd_data.frame_cnt, sizeof(rpc_media_cmd_t));
if (g_bMediaHapiRun == SA_TRUE) {
SAMPLE_MEDIA_Exit(SIGTERM);
SA_HAPI_SYS_Deinit();
}
s32Ret = SA_HAPI_SYS_Init();
if (SA_SUCCESS != s32Ret) {
HAPI_MEDIA_LOG_E("SA_HAPI_SYS_Init failed with %#x!\n", s32Ret);
return s32Ret;
}
// g_bMediaHapiRun = SA_TRUE;
// HAPI_MEDIA_THREAD_INIT(&g_stSceneTh, "SAMPLE_MEDIA_Work", SAMPLE_MEDIA_Work, &g_enSampleScene);
break;
}
case CMD_TYPE_MEDIA_Ota: {
break;
}
case CMD_TYPE_MEDIA_ReleaseVideoStream: {
if (g_bMediaHapiRun == SA_TRUE) {
rpc_media_releasestream(&g_stMediaAttr, pstStream, g_enSampleScene);
}
break;
}
case CMD_TYPE_MEDIA_GetVideoStream: {
if (g_bMediaHapiRun == SA_TRUE) {
rpc_media_getstream(&g_stMediaAttr, pstStream, fdStream, g_enSampleScene);
rpc_media_releasestream(&g_stMediaAttr, pstStream, g_enSampleScene);
}
break;
}
default:
goto re_read;
}
t_cmd_data.cmd_type = CMD_TYPE_MEDIA_Ack_0;
t_cmd_data.ret_val = ret;
if (ioctl(fd, IOCTL_RPC_MEDIA_ACK, &t_cmd_data) < 0) {
perror("Failed to perform ioctl on the device");
close(fd);
return errno;
}
}
return s32Ret;
}
#ifndef __linux__
MSH_CMD_EXPORT(streamerlite, Super ACME Streamer Lite Server);
#endif
\ No newline at end of file
...@@ -670,8 +670,8 @@ setmode: ...@@ -670,8 +670,8 @@ setmode:
stIcrUserAttr.icr1stLevelCtrl = 0; stIcrUserAttr.icr1stLevelCtrl = 0;
stIcrUserAttr.icr2ndLevelCtrl = 0; stIcrUserAttr.icr2ndLevelCtrl = 0;
stIcrUserAttr.sensitivity = 1; stIcrUserAttr.sensitivity = 1;
stIcrUserAttr.u16LampDownFreqLimit = 1000; stIcrUserAttr.u16LampDownFreqLimit = 10;
stIcrUserAttr.u16LampUpFreqLimit = 1000; stIcrUserAttr.u16LampUpFreqLimit = 10;
stIcrUserAttr.enModeRes = u8IcrModeRes; stIcrUserAttr.enModeRes = u8IcrModeRes;
// ServiceICRGetCurICRMode(Dev, &stIcrUserAttr.enModeRes); // ServiceICRGetCurICRMode(Dev, &stIcrUserAttr.enModeRes);
memcpy(pstVideoTriggerAttr->au8IcrUserAttr, &stIcrUserAttr, sizeof(ICR_USER_ATTR_S)); memcpy(pstVideoTriggerAttr->au8IcrUserAttr, &stIcrUserAttr, sizeof(ICR_USER_ATTR_S));
......
...@@ -70,6 +70,8 @@ typedef struct saICR_ATTR_S ...@@ -70,6 +70,8 @@ typedef struct saICR_ATTR_S
int lightOff; //0:正常开启补光灯;1:强制不开启补光灯 int lightOff; //0:正常开启补光灯;1:强制不开启补光灯
int lightFrqWl; //白光可变最大值。范围[0~100] int lightFrqWl; //白光可变最大值。范围[0~100]
int lightFrqIR; //红外光可变最大值。范围[0~100] int lightFrqIR; //红外光可变最大值。范围[0~100]
int lightDownFrqWl; //白光可变最大值。范围[0~100]
int lightDownFrqIR; //红外光可变最大值。范围[0~100]
int icrLampMode; //暂时不用 int icrLampMode; //暂时不用
int icrEn; //暂时不用 int icrEn; //暂时不用
int lampType; //暂时不用 int lampType; //暂时不用
......
/*
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2024-02-17 zhengyong first implementation
*/
#include <linux/i2c.h>
#include <linux/i2c-dev.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
#include "oswl.h"
#include "service_hw_sa8900_power.h"
#define LOG_TAG SERVICE_HW_SA8900_POWER
ULOG_DECLARE_TAG(LOG_TAG);
#define A_GPIO(pin) (pin)
#define D_GPIO(pin) (pin + 0x8)
#define B_GPIO(pin) (pin + 0x19)
#define E_GPIO(pin) (pin + 0x1B)
#define C_GPIO(pin) (pin + 0x29)
#define F_GPIO(pin) (pin + 0x2F)
#define H_GPIO(pin) (pin + 0x4A)
typedef struct _sa8900_power_mag_s{
char R28;
char R38;
char R87;
char R1A;
char R1B;
char R1C;
char devid;
char addr;
char vad_dis;
char powerdown_flag;
char powerup_flag;
}sa8900_power_mag_s;
static sa8900_power_mag_s sa8900_power_mag =
{
.R28 = 0x20,
.R38 = 0,
.R87 = 0x10,
.R1A = 0x04,
.R1B = 0x14,
.R1C = 0x04,
.devid = 0,
.addr = 0x1A,
.vad_dis = 0,
.powerdown_flag = 0,
.powerup_flag = 0,
};
static pthread_mutex_t this_sa8900_mutex = PTHREAD_MUTEX_INITIALIZER;
#define TEST_REGISTER_2 0x28
#define TEST_2 0x87
#define VAD_PGA_GAIN 0x38
int sa8900_open(int i2c_num)
{
int fd;
char i2c_dev[16];
snprintf(i2c_dev, sizeof(i2c_dev),"/dev/i2c-%d", i2c_num);
fd = open(i2c_dev,O_RDWR);
if(fd < 0) {
OSWL_LOG_E("Failed to open %s\n", i2c_dev);
return -1;
}
(void)this_sa8900_mutex;
(void)sa8900_power_mag;
return fd;
}
void sa8900_close(int i2c_fd)
{
close(i2c_fd);
}
int sa8900_read(int i2c_fd, char addr, char reg, char *value)
{
struct i2c_msg msg[2];
struct i2c_rdwr_ioctl_data rdwr;
msg[0].addr = addr;
msg[0].flags = 0|0x100;
msg[0].len = 1;
msg[0].buf = (__u8 *)&reg;
msg[1].addr = addr;
msg[1].flags = I2C_M_RD|0x100;
msg[1].len = 1;
msg[1].buf = (__u8 *)value;
rdwr.msgs = msg;
rdwr.nmsgs = 2;
if (ioctl(i2c_fd, I2C_RDWR, &rdwr) < 0) {
OSWL_LOG_E("Failed to read 8900(0x%x)\n", reg);
return -1;
}
return 0;
}
int sa8900_write(int i2c_fd, char addr, char reg, char value)
{
struct i2c_msg msg[1];
struct i2c_rdwr_ioctl_data rdwr;
char send_buffer[2];
send_buffer[0] = reg;
send_buffer[1] = value;
msg[0].addr = addr;
msg[0].flags = 0|0x100;
msg[0].len = 2;
msg[0].buf = (__u8 *)send_buffer;
rdwr.msgs = msg;
rdwr.nmsgs = 1;
if(ioctl(i2c_fd, I2C_RDWR, &rdwr) < 0) {
OSWL_LOG_E("Failed to write 8900(0x%x 0x%x)\n", reg, value);
return -1;
}
return 0;
}
int sa8900_powerup(int i2c_fd)
{
#if 0
int ret;
char r_1e = 0;
char r_1f = 0;
ret = sa8900_read(i2c_fd, sa8900_power_mag.addr, 0x1e, &r_1e);
if (ret < 0) {
OSWL_LOG_E("%s: I2C read 0x%x failure(%d)\n", __func__, 0x1e, ret);
return -1;
}
ret = sa8900_read(i2c_fd, sa8900_power_mag.addr, 0x1f, &r_1f);
if (ret < 0) {
OSWL_LOG_E("%s: I2C read 0x%x failure(%d)\n", __func__, 0x1f, ret);
return -1;
}
if(((r_1e & 0x7f) == 0) && ((r_1f & 0x3f) == 0))
{
OSWL_LOG_I("####### sa8900 power up #######\n");
}
else
{
OSWL_LOG_E("####### sa8900 cannot powerup as the capture(0x%x) or palyback(0x%x) is in working #######\n", r_1e, r_1f);
return -1;
}
pthread_mutex_lock(&this_sa8900_mutex);
if(sa8900_power_mag.powerup_flag == 0)
{
OSWL_LOG_I("####### sa8900 is ready to power up #######\n");
sa8900_power_mag.powerdown_flag = 0;
sa8900_power_mag.powerup_flag = 1;
}
else
{
OSWL_LOG_I("####### sa8900 is already power up, reject to powerup again #######\n");
pthread_mutex_unlock(&this_sa8900_mutex);
return 0 ;
}
pthread_mutex_unlock(&this_sa8900_mutex);
/* config sa8900 */
OSWL_LOG_I("%s: R28 0x%x\n", __func__, sa8900_power_mag.R28);
ret = sa8900_write(i2c_fd, sa8900_power_mag.addr, TEST_REGISTER_2, sa8900_power_mag.R28);
if (ret < 0) {
OSWL_LOG_E("%s: I2C write 0x%x failure(%d)\n", __func__, TEST_REGISTER_2, ret);
return -1;
}
OSWL_LOG_I("%s: R87 0x%x\n", __func__, sa8900_power_mag.R87);
ret = sa8900_write(i2c_fd, sa8900_power_mag.addr, TEST_2, sa8900_power_mag.R87);
if (ret < 0) {
OSWL_LOG_E("%s: I2C write 0x%x failure(%d)\n", __func__, TEST_2, ret);
return -1;
}
if(sa8900_power_mag.vad_dis == 0)
{
OSWL_LOG_I("%s: R38 0x%x\n", __func__, sa8900_power_mag.R38);
ret = sa8900_write(i2c_fd, sa8900_power_mag.addr, VAD_PGA_GAIN, sa8900_power_mag.R38);
if (ret < 0) {
OSWL_LOG_E("%s: I2C write 0x%x failure(%d)\n", __func__, VAD_PGA_GAIN, ret);
return -1;
}
}
#endif
return 0;
}
int sa8900_powerdown(int i2c_fd)
{
#if 0
int ret;
int loop = 5;
char r_1e = 0;
char r_1f = 0;
ret = sa8900_read(i2c_fd, sa8900_power_mag.addr, 0x1e, &r_1e);
if (ret < 0) {
OSWL_LOG_E("%s: I2C read 0x%x failure(%d)\n", __func__, 0x1e, ret);
return -1;
}
ret = sa8900_read(i2c_fd, sa8900_power_mag.addr, 0x1f, &r_1f);
if (ret < 0) {
OSWL_LOG_E("%s: I2C read 0x%x failure(%d)\n", __func__, 0x1f, ret);
return -1;
}
if(((r_1e & 0x7f) == 0) && ((r_1f & 0x3f) == 0))
{
OSWL_LOG_I("####### sa8900 power down #######\n");
}
else
{
OSWL_LOG_E("####### sa8900 cannot powerdown as the capture(0x%x) or palyback(0x%x) is in working #######\n", r_1e, r_1f);
return -1;
}
pthread_mutex_lock(&this_sa8900_mutex);
if(sa8900_power_mag.powerdown_flag == 0)
{
OSWL_LOG_I("####### sa8900 is ready to power down #######\n");
sa8900_power_mag.powerdown_flag = 1;
sa8900_power_mag.powerup_flag = 0;
}
else
{
OSWL_LOG_I("####### sa8900 is already power down, reject to powerdown again #######\n");
pthread_mutex_unlock(&this_sa8900_mutex);
return 0 ;
}
pthread_mutex_unlock(&this_sa8900_mutex);
/* configure sa8900 */
ret = sa8900_read(i2c_fd, sa8900_power_mag.addr, TEST_REGISTER_2, &sa8900_power_mag.R28);
if (ret < 0) {
OSWL_LOG_E("%s: I2C read 0x%x failure(%d)\n", __func__, TEST_REGISTER_2, ret);
return -1;
}
OSWL_LOG_I("%s: R28 0x%x\n", __func__, sa8900_power_mag.R28);
ret = sa8900_read(i2c_fd, sa8900_power_mag.addr, VAD_PGA_GAIN, &sa8900_power_mag.R38);
if (ret < 0) {
OSWL_LOG_E("%s: I2C read 0x%x failure(%d)\n", __func__, VAD_PGA_GAIN, ret);
return -1;
}
OSWL_LOG_I("%s: R38 0x%x\n", __func__, sa8900_power_mag.R38);
ret = sa8900_read(i2c_fd, sa8900_power_mag.addr, TEST_2, &sa8900_power_mag.R87);
if (ret < 0) {
OSWL_LOG_E("%s: I2C read 0x%x failure(%d)\n", __func__, TEST_2, ret);
return -1;
}
OSWL_LOG_I("%s: R87 0x%x\n", __func__, sa8900_power_mag.R87);
if(sa8900_power_mag.vad_dis == 0)
{
oswl_gpio_get(A_GPIO(6));
oswl_gpio_set_dir(A_GPIO(6), 0);
while(loop--) {
usleep(10000);
oswl_gpio_get_value(A_GPIO(6), &ret);
if(0 == (ret&0x1)) {
OSWL_LOG_I("%s: vad out pin is %d, start to close vad\n", __func__, ret);
ret = sa8900_write(i2c_fd, sa8900_power_mag.addr, VAD_PGA_GAIN, (sa8900_power_mag.R38 & 0xfe));
if(ret < 0){
OSWL_LOG_E("%s: I2C write 0x%x failure(%d)\n", __func__, VAD_PGA_GAIN, ret);
continue;
}
usleep(10000);
oswl_gpio_get_value(A_GPIO(6), &ret);
if(0 == (ret&0x1)) {
OSWL_LOG_I("%s: vad is successful closed\n", __func__);
sa8900_power_mag.vad_dis = 1;
break;
} else {
OSWL_LOG_I("%s: vad is not successful closed, try again\n", __func__);
ret = sa8900_write(i2c_fd, sa8900_power_mag.addr, VAD_PGA_GAIN, (sa8900_power_mag.R38 | 0x1));
if(ret < 0){
OSWL_LOG_E("%s: I2C write 0x%x failure(%d)\n", __func__, VAD_PGA_GAIN, ret);
continue;
}
}
} else {
OSWL_LOG_I("%s: vad out pin is %d, try again\n", __func__, ret);
}
}
oswl_gpio_release(A_GPIO(6));
}
ret = sa8900_write(i2c_fd, sa8900_power_mag.addr, TEST_2, 0x0);
if (ret < 0) {
OSWL_LOG_E("%s: I2C write 0x%x failure(%d)\n", __func__, TEST_2, ret);
return -1;
}
ret = sa8900_write(i2c_fd, sa8900_power_mag.addr, TEST_REGISTER_2, 0x40);
if (ret < 0) {
OSWL_LOG_E("%s: I2C write 0x%x failure(%d)\n", __func__, TEST_REGISTER_2, ret);
return -1;
}
#endif
return 0;
}
\ No newline at end of file
...@@ -551,6 +551,8 @@ int g_appNightMode[ISP_DEV_MAX] = {ICR_NIGHTMODE_BLACK, ICR_NIGHTMODE_BLACK}; // ...@@ -551,6 +551,8 @@ int g_appNightMode[ISP_DEV_MAX] = {ICR_NIGHTMODE_BLACK, ICR_NIGHTMODE_BLACK}; //
int g_lightOff[ISP_DEV_MAX] = {0, 0}; //0:正常开启补光灯;1:强制不开启补光灯 int g_lightOff[ISP_DEV_MAX] = {0, 0}; //0:正常开启补光灯;1:强制不开启补光灯
int g_lightFrqWl[ISP_DEV_MAX] = {60, 60}; //白光光固定补光灯频率。范围[0~100] int g_lightFrqWl[ISP_DEV_MAX] = {60, 60}; //白光光固定补光灯频率。范围[0~100]
int g_lightFrqIR[ISP_DEV_MAX] = {30, 30}; //红外光固定补光灯频率。范围[0~100] int g_lightFrqIR[ISP_DEV_MAX] = {30, 30}; //红外光固定补光灯频率。范围[0~100]
int g_lightFrqDownWl[ISP_DEV_MAX] = {0, 0}; //白光光固定补光灯频率下限。范围[0~100]
int g_lightFrqDownIR[ISP_DEV_MAX] = {0, 0}; //红外光固定补光灯频率下限。范围[0~100]
int g_IcrLampMode[ISP_DEV_MAX] = {0, 0}; int g_IcrLampMode[ISP_DEV_MAX] = {0, 0};
int g_IcrEn[ISP_DEV_MAX] = {0, 0}; int g_IcrEn[ISP_DEV_MAX] = {0, 0};
int g_LampType[ISP_DEV_MAX] = {0, 0}; int g_LampType[ISP_DEV_MAX] = {0, 0};
...@@ -592,7 +594,8 @@ int ServiceIcrSdCreat(int isp_dev) ...@@ -592,7 +594,8 @@ int ServiceIcrSdCreat(int isp_dev)
//这里按照民用相机常用模式来配置icr库和smartlamp库 //这里按照民用相机常用模式来配置icr库和smartlamp库
ICR_WORK_MODE_E icrWorkMode = ICR_AUTO; ICR_WORK_MODE_E icrWorkMode = ICR_AUTO;
LAMP_TYPE_E lampType = LAMP_WL; LAMP_TYPE_E lampType = LAMP_WL;
int g_lightFrq = (ICR_NIGHTMODE_COLOR == g_nightMode[isp_dev]) ? g_lightFrqWl[isp_dev] : g_lightFrqIR[isp_dev]; int g_lightFrqDown = (ICR_NIGHTMODE_COLOR == g_nightMode[isp_dev]) ? g_lightFrqDownWl[isp_dev] : g_lightFrqDownIR[isp_dev];
int g_lightFrqUp = (ICR_NIGHTMODE_COLOR == g_nightMode[isp_dev]) ? g_lightFrqWl[isp_dev] : g_lightFrqIR[isp_dev];
if (ICR_NIGHTMODE_COLOR == g_nightMode[isp_dev]) if (ICR_NIGHTMODE_COLOR == g_nightMode[isp_dev])
{ {
//全彩夜视。配置ICR为强制日模式,配置补光灯类型为白光灯 //全彩夜视。配置ICR为强制日模式,配置补光灯类型为白光灯
...@@ -625,8 +628,8 @@ int ServiceIcrSdCreat(int isp_dev) ...@@ -625,8 +628,8 @@ int ServiceIcrSdCreat(int isp_dev)
//可以配置补光灯是否强制不开 //可以配置补光灯是否强制不开
LAMP_ADJUST_PARAM_S lampAdjustParam = {0}; LAMP_ADJUST_PARAM_S lampAdjustParam = {0};
lampAdjustParam.enAdjustMode = LAMP_ADJUST_AUTO; lampAdjustParam.enAdjustMode = LAMP_ADJUST_AUTO;
lampAdjustParam.uFreq.stAutoFreq.u16DownFreqLimit = 0; lampAdjustParam.uFreq.stAutoFreq.u16DownFreqLimit = (g_lightOff[isp_dev] ? 0 : g_lightFrqDown*100);
lampAdjustParam.uFreq.stAutoFreq.u16UpFreqLimit = (g_lightOff[isp_dev] ? 0 : g_lightFrq*100); lampAdjustParam.uFreq.stAutoFreq.u16UpFreqLimit = (g_lightOff[isp_dev] ? 0 : g_lightFrqUp*100);
SA_ALG_LAMP_SetAdjustParam(g_lampHndl[isp_dev], &lampAdjustParam); SA_ALG_LAMP_SetAdjustParam(g_lampHndl[isp_dev], &lampAdjustParam);
memcpy(&g_preAdjustParam[isp_dev], &lampAdjustParam, sizeof(g_preAdjustParam[isp_dev])); memcpy(&g_preAdjustParam[isp_dev], &lampAdjustParam, sizeof(g_preAdjustParam[isp_dev]));
...@@ -963,7 +966,8 @@ int SecondLevelCtrlLamp(int isp_dev, LAMP_RESULT_S *plampResult) ...@@ -963,7 +966,8 @@ int SecondLevelCtrlLamp(int isp_dev, LAMP_RESULT_S *plampResult)
return 0; return 0;
} }
int g_lightFrq = (ICR_NIGHTMODE_COLOR == g_nightMode[isp_dev]) ? g_lightFrqWl[isp_dev] : g_lightFrqIR[isp_dev]; int g_lightFrqDown = (ICR_NIGHTMODE_COLOR == g_nightMode[isp_dev]) ? g_lightFrqDownWl[isp_dev] : g_lightFrqDownIR[isp_dev];
int g_lightFrqUp = (ICR_NIGHTMODE_COLOR == g_nightMode[isp_dev]) ? g_lightFrqWl[isp_dev] : g_lightFrqIR[isp_dev];
if (1 == target2ndLevelCtrlLamp) if (1 == target2ndLevelCtrlLamp)
{ {
LAMP_ADJUST_PARAM_S lampAdjustParam = {0}; LAMP_ADJUST_PARAM_S lampAdjustParam = {0};
...@@ -976,8 +980,8 @@ int SecondLevelCtrlLamp(int isp_dev, LAMP_RESULT_S *plampResult) ...@@ -976,8 +980,8 @@ int SecondLevelCtrlLamp(int isp_dev, LAMP_RESULT_S *plampResult)
{ {
LAMP_ADJUST_PARAM_S lampAdjustParam = {0}; LAMP_ADJUST_PARAM_S lampAdjustParam = {0};
lampAdjustParam.enAdjustMode = LAMP_ADJUST_AUTO; lampAdjustParam.enAdjustMode = LAMP_ADJUST_AUTO;
lampAdjustParam.uFreq.stAutoFreq.u16DownFreqLimit = 0; lampAdjustParam.uFreq.stAutoFreq.u16DownFreqLimit = (g_lightOff[isp_dev] ? 0 : g_lightFrqDown*100);;
lampAdjustParam.uFreq.stAutoFreq.u16UpFreqLimit = (g_lightOff[isp_dev] ? 0 : g_lightFrq*100); lampAdjustParam.uFreq.stAutoFreq.u16UpFreqLimit = (g_lightOff[isp_dev] ? 0 : g_lightFrqUp*100);
SA_ALG_LAMP_SetAdjustParam(g_lampHndl[isp_dev], &lampAdjustParam); SA_ALG_LAMP_SetAdjustParam(g_lampHndl[isp_dev], &lampAdjustParam);
memcpy(&g_preAdjustParam[isp_dev], &lampAdjustParam, sizeof(g_preAdjustParam[isp_dev])); memcpy(&g_preAdjustParam[isp_dev], &lampAdjustParam, sizeof(g_preAdjustParam[isp_dev]));
} }
...@@ -1072,11 +1076,12 @@ int ServiceIcrForceLamp(int isp_dev) ...@@ -1072,11 +1076,12 @@ int ServiceIcrForceLamp(int isp_dev)
} }
else if (1 == g_forceLampEn[isp_dev] && 0 == g_appForceLampEn[isp_dev]) else if (1 == g_forceLampEn[isp_dev] && 0 == g_appForceLampEn[isp_dev])
{ {
int g_lightFrq = (ICR_NIGHTMODE_COLOR == g_nightMode[isp_dev]) ? g_lightFrqWl[isp_dev] : g_lightFrqIR[isp_dev]; int g_lightFrqDown = (ICR_NIGHTMODE_COLOR == g_nightMode[isp_dev]) ? g_lightFrqDownWl[isp_dev] : g_lightFrqDownIR[isp_dev];
int g_lightFrqUp = (ICR_NIGHTMODE_COLOR == g_nightMode[isp_dev]) ? g_lightFrqWl[isp_dev] : g_lightFrqIR[isp_dev];
LAMP_ADJUST_PARAM_S lampAdjustParam = {0}; LAMP_ADJUST_PARAM_S lampAdjustParam = {0};
lampAdjustParam.enAdjustMode = LAMP_ADJUST_AUTO; lampAdjustParam.enAdjustMode = LAMP_ADJUST_AUTO;
lampAdjustParam.uFreq.stAutoFreq.u16DownFreqLimit = 0; lampAdjustParam.uFreq.stAutoFreq.u16DownFreqLimit = (g_lightOff[isp_dev] ? 0 : g_lightFrqDown*100);;
lampAdjustParam.uFreq.stAutoFreq.u16UpFreqLimit = (g_lightOff[isp_dev] ? 0 : g_lightFrq*100); lampAdjustParam.uFreq.stAutoFreq.u16UpFreqLimit = (g_lightOff[isp_dev] ? 0 : g_lightFrqUp*100);
SA_ALG_LAMP_SetAdjustParam(g_lampHndl[isp_dev], &lampAdjustParam); SA_ALG_LAMP_SetAdjustParam(g_lampHndl[isp_dev], &lampAdjustParam);
SA_ALG_LAMP_SetType(g_lampHndl[isp_dev], g_curLampType[isp_dev]); SA_ALG_LAMP_SetType(g_lampHndl[isp_dev], g_curLampType[isp_dev]);
...@@ -1591,6 +1596,8 @@ int ServiceICRGetAttr(int isp_dev, ICR_ATTR_S* pstAttr) ...@@ -1591,6 +1596,8 @@ int ServiceICRGetAttr(int isp_dev, ICR_ATTR_S* pstAttr)
pstAttr->lightOff = g_lightOff[isp_dev]; pstAttr->lightOff = g_lightOff[isp_dev];
pstAttr->lightFrqWl = g_lightFrqWl[isp_dev]; pstAttr->lightFrqWl = g_lightFrqWl[isp_dev];
pstAttr->lightFrqIR = g_lightFrqIR[isp_dev]; pstAttr->lightFrqIR = g_lightFrqIR[isp_dev];
pstAttr->lightDownFrqWl = g_lightFrqDownWl[isp_dev];
pstAttr->lightDownFrqIR = g_lightFrqDownIR[isp_dev];
pstAttr->icrLampMode = g_IcrLampMode[isp_dev]; pstAttr->icrLampMode = g_IcrLampMode[isp_dev];
pstAttr->icrEn = g_IcrEn[isp_dev]; pstAttr->icrEn = g_IcrEn[isp_dev];
...@@ -1624,6 +1631,8 @@ int ServiceICRSetAttr(int isp_dev, ICR_ATTR_S* pstAttr) ...@@ -1624,6 +1631,8 @@ int ServiceICRSetAttr(int isp_dev, ICR_ATTR_S* pstAttr)
g_lightOff[isp_dev] = pstAttr->lightOff; g_lightOff[isp_dev] = pstAttr->lightOff;
g_lightFrqWl[isp_dev] = pstAttr->lightFrqWl; g_lightFrqWl[isp_dev] = pstAttr->lightFrqWl;
g_lightFrqIR[isp_dev] = pstAttr->lightFrqIR; g_lightFrqIR[isp_dev] = pstAttr->lightFrqIR;
g_lightFrqDownWl[isp_dev] = pstAttr->lightDownFrqWl;
g_lightFrqDownIR[isp_dev] = pstAttr->lightDownFrqIR;
g_IcrLampMode[isp_dev] = pstAttr->icrLampMode; g_IcrLampMode[isp_dev] = pstAttr->icrLampMode;
g_IcrEn[isp_dev] = pstAttr->icrEn; g_IcrEn[isp_dev] = pstAttr->icrEn;
...@@ -1762,6 +1771,8 @@ int ServiceIcrInit(int isp_dev) ...@@ -1762,6 +1771,8 @@ int ServiceIcrInit(int isp_dev)
g_lightOff[isp_dev] = 0; //0:正常开启补光灯;1:强制不开启补光灯 g_lightOff[isp_dev] = 0; //0:正常开启补光灯;1:强制不开启补光灯
g_lightFrqWl[isp_dev] = 60; //白光光固定补光灯频率。范围[0~100] g_lightFrqWl[isp_dev] = 60; //白光光固定补光灯频率。范围[0~100]
g_lightFrqIR[isp_dev] = 30; //红外光固定补光灯频率。范围[0~100] g_lightFrqIR[isp_dev] = 30; //红外光固定补光灯频率。范围[0~100]
g_lightFrqDownWl[isp_dev] = 0; //白光光固定补光灯频率。范围[0~100]
g_lightFrqDownIR[isp_dev] = 0; //红外光固定补光灯频率。范围[0~100]
g_IcrLampMode[isp_dev] = 0; g_IcrLampMode[isp_dev] = 0;
g_IcrEn[isp_dev] = 0; g_IcrEn[isp_dev] = 0;
g_LampType[isp_dev] = 0; g_LampType[isp_dev] = 0;
......
diff --git a/6920_bsp_release/pack_tool/boot_info/linux/bootinfo-6920-linux-xip-aarch32-050.bin b/6920_bsp_release/pack_tool/boot_info/linux/bootinfo-6920-linux-xip-aarch32-050.bin diff --git a/sdk/opensource/lib/libhapi_open.so.2.5.0.4.9 b/sdk/opensource/lib/libhapi_open.so.2.5.0.4.9
index 366881fef..9aa0ff0e1 100755 index d5cc4fd72..e0b6e3261 100755
Binary files a/6920_bsp_release/pack_tool/boot_info/linux/bootinfo-6920-linux-xip-aarch32-050.bin and b/6920_bsp_release/pack_tool/boot_info/linux/bootinfo-6920-linux-xip-aarch32-050.bin differ Binary files a/sdk/opensource/lib/libhapi_open.so.2.5.0.4.9 and b/sdk/opensource/lib/libhapi_open.so.2.5.0.4.9 differ
diff --git a/sdk/opensource/source/hapi/src/sys/sa_hapi_sys.c b/sdk/opensource/source/hapi/src/sys/sa_hapi_sys.c diff --git a/sdk/opensource/lib/libhapi_open_static.a b/sdk/opensource/lib/libhapi_open_static.a
index f32907fc9..22f2270ba 100755 index 31c5f3d77..51ecf1b5b 100644
--- a/sdk/opensource/source/hapi/src/sys/sa_hapi_sys.c Binary files a/sdk/opensource/lib/libhapi_open_static.a and b/sdk/opensource/lib/libhapi_open_static.a differ
+++ b/sdk/opensource/source/hapi/src/sys/sa_hapi_sys.c diff --git a/sdk/opensource/lib/libsns_os04d10_soc30.so.2.5.0.4.9 b/sdk/opensource/lib/libsns_os04d10_soc30.so.2.5.0.4.9
@@ -309,7 +309,7 @@ SA_S32 SA_HAPI_SYS_SetMcuWakeup(WAKE_MODE_E enWakeMode, SYS_GPIO_IRQ_EVENT_E enI index a76baabbb..93fec0e57 100755
stWakeupSrc.WAKEUP_MODE_SET.MODE_PIR.wake_duty = 20; Binary files a/sdk/opensource/lib/libsns_os04d10_soc30.so.2.5.0.4.9 and b/sdk/opensource/lib/libsns_os04d10_soc30.so.2.5.0.4.9 differ
stWakeupAction.event[0].mode = 0;//0 is gpio type, 1 is pwm type
- stWakeupAction.event[0].enable = SA_TRUE;
+ stWakeupAction.event[0].enable = SA_FALSE;
stWakeupAction.event[0].ACTION.GPIO.gpio_id = 0x0A03;
stWakeupAction.event[0].ACTION.GPIO.output = 0;
stWakeupAction.event[0].ACTION.GPIO.keep_time = 200;
diff --git a/sdk/opensource/source/imu/imu_core.c b/sdk/opensource/source/imu/imu_core.c
index 521b3385e..3899a092b 100755
--- a/sdk/opensource/source/imu/imu_core.c
+++ b/sdk/opensource/source/imu/imu_core.c
@@ -268,7 +268,7 @@ SA_S32 IMU_Function(SA_S32 Dev, SA_U32 Cmd, SA_VOID *pData)
stImuStartPara.enImuDataOutMode = IMU_DATA_OUT_REG_MODE;
s32Ret = IMU_Start(Dev, &stImuStartPara);
- OSWL_LOG_I("imu mode %d, sample rate %d\n", stImuStartPara.enRunMode, stImuStartPara.enImuSampleRatio);
+ printf("imu mode %d, sample rate %d\n", stImuStartPara.enRunMode, stImuStartPara.enImuSampleRatio);
break;
}
case ISP_EIS_IMU_STOP:
diff --git a/sdk/opensource/source/sensor/comm/isp_ext.c b/sdk/opensource/source/sensor/comm/isp_ext.c diff --git a/sdk/opensource/source/sensor/comm/isp_ext.c b/sdk/opensource/source/sensor/comm/isp_ext.c
index eb40da57d..00dc91d52 100755 index 9939fff8a..b847aaf7a 100755
--- a/sdk/opensource/source/sensor/comm/isp_ext.c --- a/sdk/opensource/source/sensor/comm/isp_ext.c
+++ b/sdk/opensource/source/sensor/comm/isp_ext.c +++ b/sdk/opensource/source/sensor/comm/isp_ext.c
@@ -1,7 +1,8 @@ @@ -276,8 +276,18 @@ int isp_ircut(int argc, char *argv[])
#if __linux__
#include <linux/spi/spidev.h>
+#define OSWL_LOG_E printf
+#define OSWL_LOG_I printf
#endif
-
//default evb_v12
static int g_IcrType[SA_SNS_DEV_MAX] = {[0 ...(SA_SNS_DEV_MAX - 1)] = 0}; //0: no 1: spi ; 2:gpio
static char g_IcrSpiDev[SA_SNS_DEV_MAX][32] = {"/dev/spidev2.0","/dev/spidev2.0"};
@@ -81,6 +82,7 @@ static int isp_led_pwm(SA_S32 ledpwmchn, SA_U32 period, SA_U32 duty)
{
int pwmchn = ledpwmchn;
char cmd[64];
+ printf("===== period:%d, duty:%d\n", period,duty);
sprintf(cmd,"/sys/class/pwm/pwmchip%u/pwm0/period", pwmchn);
if (access(cmd, R_OK))
{
@@ -271,8 +273,17 @@ int isp_ircut(int argc, char *argv[])
MSH_CMD_EXPORT_ALIAS(isp_ircut, isp_ircut, isp ircut ctrl) MSH_CMD_EXPORT_ALIAS(isp_ircut, isp_ircut, isp ircut ctrl)
#endif #endif
...@@ -60,6 +22,7 @@ index eb40da57d..00dc91d52 100755 ...@@ -60,6 +22,7 @@ index eb40da57d..00dc91d52 100755
+ int speed; // 电机速度,1-5速 + int speed; // 电机速度,1-5速
+ unsigned char icr_status; // icr状态 + unsigned char icr_status; // icr状态
+}; +};
+
+ +
static int icr_spi_ctrl(SA_S32 Dev, SA_CHAR *pSpiDev,SA_S32 On) static int icr_spi_ctrl(SA_S32 Dev, SA_CHAR *pSpiDev,SA_S32 On)
{ {
...@@ -67,18 +30,19 @@ index eb40da57d..00dc91d52 100755 ...@@ -67,18 +30,19 @@ index eb40da57d..00dc91d52 100755
#define TM8150B_ID0 (0x00) #define TM8150B_ID0 (0x00)
#define TM8150B_ID1 (0x01) #define TM8150B_ID1 (0x01)
#define TM8150B_GCTRL (0x02) #define TM8150B_GCTRL (0x02)
@@ -300,7 +311,30 @@ static int icr_spi_ctrl(SA_S32 Dev, SA_CHAR *pSpiDev,SA_S32 On) @@ -306,6 +316,31 @@ static int icr_spi_ctrl(SA_S32 Dev, SA_CHAR *pSpiDev,SA_S32 On)
#if __linux__
close(fd); close(fd);
#endif #endif
+#endif +#endif
+
+ //longse: ircut控制修改这里 + //longse: ircut控制修改这里
+ #define MOTOR_DEVICE_FILE "/dev/tmi8150b" // 设备文件路径 + #define MOTOR_DEVICE_FILE "/dev/tmi8150b" // 设备文件路径
+ #define PT_IOC_MAGIC 'M'//ioctl幻数 + #define PT_IOC_MAGIC 'M'//ioctl幻数
+ #define PT_SET_ICR _IOW(PT_IOC_MAGIC, 10, struct ptmotor_ctrl *) + #define PT_SET_ICR _IOW(PT_IOC_MAGIC, 10, struct ptmotor_ctrl *)
+ #define IRCUT_ON 0x86 + #define IRCUT_ON 0x86
+ #define IRCUT_OFF 0x8A + #define IRCUT_OFF 0x8A
+
+ int fd; + int fd;
+ struct pt_item pt; + struct pt_item pt;
+ +
...@@ -98,15 +62,15 @@ index eb40da57d..00dc91d52 100755 ...@@ -98,15 +62,15 @@ index eb40da57d..00dc91d52 100755
return SA_SUCCESS; return SA_SUCCESS;
} }
@@ -360,6 +394,7 @@ static int CheckBoardType(ISP_DEV Dev) @@ -381,6 +416,7 @@ static int CheckBoardType(ISP_DEV Dev)
} }
} else { } else {
//use default pt2 //use default pt2
+ //longse:暖光灯和红外灯要反过来,ircut操作,两种都不是,需要单独修改 + //longse:暖光灯和红外灯要反过来,ircut操作,两种都不是,需要单独修改
if (0 == (Dev%SA_SNS_PHY_DEV_MAX)) { if (0 == (Dev%SA_SNS_PHY_DEV_MAX)) {
g_IcrType[dev] = 1; // 1: spi ; 2:gpio g_IcrType[dev] = 1; // 1: spi ; 2:gpio
memcpy(g_IcrSpiDev[dev], "/dev/spidev2.0",strlen("/dev/spidev2.0")); memcpy(g_IcrSpiDev[dev], "/dev/spidev2.0",strlen("/dev/spidev2.0"));
@@ -367,9 +402,9 @@ static int CheckBoardType(ISP_DEV Dev) @@ -388,9 +424,9 @@ static int CheckBoardType(ISP_DEV Dev)
g_SnsRstPin[dev] = 27; g_SnsRstPin[dev] = 27;
g_SnsRstPwdnPin[dev] = -1; g_SnsRstPwdnPin[dev] = -1;
g_LampIrSupport[dev] = SA_TRUE; g_LampIrSupport[dev] = SA_TRUE;
...@@ -118,11 +82,12 @@ index eb40da57d..00dc91d52 100755 ...@@ -118,11 +82,12 @@ index eb40da57d..00dc91d52 100755
} }
} }
printf("isp ext info: IcrType = %d\n",g_IcrType[dev]); printf("isp ext info: IcrType = %d\n",g_IcrType[dev]);
@@ -471,3 +506,23 @@ static SNS_ISPEXT_OBJ g_stIspExtObj = { @@ -530,3 +566,24 @@ static SNS_ISPEXT_OBJ g_stIspExtObj = {
.pfn_sns_ispext_seticr = ISP_EXT_SetIcr, .pfn_sns_ispext_seticr = ISP_EXT_SetIcr,
.pfn_sns_ispext_setlamp = ISP_EXT_SetLamp, .pfn_sns_ispext_setlamp = ISP_EXT_SetLamp,
}; };
+ +
+
+int LS_Device_SetIRCut(int on) +int LS_Device_SetIRCut(int on)
+{ +{
+ printf("===== %s: on:%d\n", __func__,on); + printf("===== %s: on:%d\n", __func__,on);
...@@ -142,64 +107,4 @@ index eb40da57d..00dc91d52 100755 ...@@ -142,64 +107,4 @@ index eb40da57d..00dc91d52 100755
+ printf("===== %s: duty:%d, val:%d\n", __func__, duty, val); + printf("===== %s: duty:%d, val:%d\n", __func__, duty, val);
+ return ISP_EXT_SetLamp(0, SNS_LAMP_IR, 50000, val); + return ISP_EXT_SetLamp(0, SNS_LAMP_IR, 50000, val);
+} +}
diff --git a/third_party/longse/bin/longse b/third_party/longse/bin/longse \ No newline at end of file
index 340d6cff2..4098f6b03 100755
Binary files a/third_party/longse/bin/longse and b/third_party/longse/bin/longse differ
diff --git a/third_party/longse/patch/opensource.patch b/third_party/longse/patch/opensource.patch
index aa3b54514..9ed723b4d 100644
--- a/third_party/longse/patch/opensource.patch
+++ b/third_party/longse/patch/opensource.patch
@@ -22,51 +22,8 @@ Binary files a/sdk/opensource/lib/libimu_open.so.2.5.0.3.7 and b/sdk/opensource/
diff --git a/sdk/opensource/lib/libsns_os04d10_soc30.so.2.5.0.3.7 b/sdk/opensource/lib/libsns_os04d10_soc30.so.2.5.0.3.7
index 889fcd153..dc3ca55a2 100755
Binary files a/sdk/opensource/lib/libsns_os04d10_soc30.so.2.5.0.3.7 and b/sdk/opensource/lib/libsns_os04d10_soc30.so.2.5.0.3.7 differ
-diff --git a/sdk/opensource/source/hapi/src/sys/sa_hapi_sys.c b/sdk/opensource/source/hapi/src/sys/sa_hapi_sys.c
-index f32907fc9..22f2270ba 100755
---- a/sdk/opensource/source/hapi/src/sys/sa_hapi_sys.c
-+++ b/sdk/opensource/source/hapi/src/sys/sa_hapi_sys.c
-@@ -309,7 +309,7 @@ SA_S32 SA_HAPI_SYS_SetMcuWakeup(WAKE_MODE_E enWakeMode, SYS_GPIO_IRQ_EVENT_E enI
- stWakeupSrc.WAKEUP_MODE_SET.MODE_PIR.wake_duty = 20;
-
- stWakeupAction.event[0].mode = 0;//0 is gpio type, 1 is pwm type
-- stWakeupAction.event[0].enable = SA_TRUE;
-+ stWakeupAction.event[0].enable = SA_FALSE;
- stWakeupAction.event[0].ACTION.GPIO.gpio_id = 0x0A03;
- stWakeupAction.event[0].ACTION.GPIO.output = 0;
- stWakeupAction.event[0].ACTION.GPIO.keep_time = 200;
-diff --git a/sdk/opensource/source/hapi/src/video/sa_inner_hapi_vin.c b/sdk/opensource/source/hapi/src/video/sa_inner_hapi_vin.c
-index ded18fe5d..f0fdfdbb2 100644
---- a/sdk/opensource/source/hapi/src/video/sa_inner_hapi_vin.c
-+++ b/sdk/opensource/source/hapi/src/video/sa_inner_hapi_vin.c
-@@ -24,6 +24,7 @@ extern "C" {
- #include "sa_aisp_weight.h"
- #include "sa_inner_hapi_sd.h"
- #endif
-+#include <errno.h>
-
- #define SA_SNS_MAX_NUM (2)
-
-@@ -573,7 +574,7 @@ SA_S32 SA_INNER_HAPI_VIN_GetIspConfig(SA_CHAR *strConfigFile, SA_VOID *pAttr, SA
- return SA_ERR_HAPI_VIDEO_NULL_PTR;
- }
-
-- fdCfg = fopen(strConfigFile, "r+");
-+ fdCfg = fopen(strConfigFile, "r");
- if (SA_NULL == fdCfg) {
- HAPI_LOG_E("no isp config file found!\n");
- return SA_ERR_HAPI_VIDEO_ILLEGAL_PARAM;
-@@ -609,9 +610,9 @@ SA_S32 SA_INNER_HAPI_VIN_GetAlgConfig(SA_CHAR *strAlgFile, SA_VOID *pAttr, SA_U3
- return SA_ERR_HAPI_VIDEO_NOT_CONFIG;
- }
-
-- fdCfg = fopen(strAlgFile, "r+");
-+ fdCfg = fopen(strAlgFile, "r");
- if (SA_NULL == fdCfg) {
-- HAPI_LOG_W("no isp alg file found, use default aisp weight!\n");
-+ HAPI_LOG_W("no isp alg file found, use default aisp weight! strAlgFile %s faild %s\n",strAlgFile,strerror(errno));
- return SA_ERR_HAPI_VIDEO_ILLEGAL_PARAM;
- }
+
+
diff --git a/sdk/opensource/source/imu/imu_core.c b/sdk/opensource/source/imu/imu_core.c
index 521b3385e..3899a092b 100755
...@@ -29,10 +29,10 @@ rm -f $file_path ...@@ -29,10 +29,10 @@ rm -f $file_path
rm -f /tmp/wifi_unlink rm -f /tmp/wifi_unlink
sample_cli getstatus sample_cli getstatus
sleep 1 sleep 0.5
while [ ! -f "$file_path" ]; do while [ ! -f "$file_path" ]; do
sample_cli getstatus sample_cli getstatus
sleep 1 sleep 0.5
retries=$((retries + 1)) retries=$((retries + 1))
echo "$retries" echo "$retries"
if [ "$retries" -ge "$max_retries" ]; then if [ "$retries" -ge "$max_retries" ]; then
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment