與rkipc通信

rkipc的通信方式

在ipcweb中,程序是通過/var/tmp/rkipc和rkipc進行通信,并且網絡和客戶端的函數封裝在luckfox-pico/project/app/ipcweb/ipcweb-backend/src/socket_client文件夾中,
client.cpp是客戶端命令
socket.cpp是網絡命令

編寫rkipc的通信程序

創建文件夾con_rkipcwe并且把luckfox-pico/project/app/ipcweb/ipcweb-backend/src/socket_client中的文件復制進去, 并且改后綴名為c文件
修改client.c

// #include "api_handler.h"
#include <string.h>
//添加stdlib.h
#include <stdlib.h>
#include "socket.h"

創建main.c

#include <stdio.h>
#include "client.h"
#include "socket.h"int main()
{// printf("hello world!\n");int int_value = 0;rk_isp_get_contrast(0, &int_value);printf("int_value %d \n", int_value);return 0;
}

build.sh

#! /bin/sh../luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-gcc \
-g \
main.c client.c  socket.c \
-o con_rkipc \
-I ./ 

編譯和測試

編譯

$ ./build.sh

復制到攝像頭的/oem/usr/bin目錄下

# ./con_rkipc
int_value 50

已經取得int值50

函數解析

luckfox-pico/project/app/rkipc/rkipc/common/socket_server/server.c的static const struct FunMap map[] 定義了 client的函數和server函數對應關系
例如

 {(char *)"rk_isp_get_contrast", &ser_rk_isp_get_contrast},

client的rk_isp_get_contrast函數,對應server的ser_rk_isp_get_contrast

// isp adjustmentint ser_rk_isp_get_contrast(int fd) {int err = 0;int id;int value;if (sock_read(fd, &id, sizeof(id)) == SOCKERR_CLOSED)return -1;//| rk_isp_get_contrast                  | 獲取對比度       |err = rk_isp_get_contrast(id, &value);LOG_DEBUG("value is %d\n", value);if (sock_write(fd, &value, sizeof(value)) == SOCKERR_CLOSED)return -1;if (sock_write(fd, &err, sizeof(int)) == SOCKERR_CLOSED)return -1;return 0;
}

在luckfox-pico/project/app/rkipc/rkipc/docs/Rockchip_Developer_Guide_Linux_RKIPC_CN.md中查得rk_isp_get_contrast函數是獲取對比度的函數
rkipc獲取對比度的值,發送回con_rkipc

static const struct FunMap map[]

static const struct FunMap map[] = {{(char *)"rk_isp_set", &ser_rk_isp_set},{(char *)"rk_video_set", &ser_rk_video_set},{(char *)"rk_audio_set", &ser_rk_audio_set},// isp scenario{(char *)"rk_isp_get_scenario", &ser_rk_isp_get_scenario},{(char *)"rk_isp_set_scenario", &ser_rk_isp_set_scenario},// isp adjustment{(char *)"rk_isp_get_contrast", &ser_rk_isp_get_contrast},{(char *)"rk_isp_set_contrast", &ser_rk_isp_set_contrast},{(char *)"rk_isp_get_brightness", &ser_rk_isp_get_brightness},{(char *)"rk_isp_set_brightness", &ser_rk_isp_set_brightness},{(char *)"rk_isp_get_saturation", &ser_rk_isp_get_saturation},{(char *)"rk_isp_set_saturation", &ser_rk_isp_set_saturation},{(char *)"rk_isp_get_sharpness", &ser_rk_isp_get_sharpness},{(char *)"rk_isp_set_sharpness", &ser_rk_isp_set_sharpness},{(char *)"rk_isp_get_hue", &ser_rk_isp_get_hue},{(char *)"rk_isp_set_hue", &ser_rk_isp_set_hue},// isp exposure{(char *)"rk_isp_get_exposure_mode", &ser_rk_isp_get_exposure_mode},{(char *)"rk_isp_set_exposure_mode", &ser_rk_isp_set_exposure_mode},{(char *)"rk_isp_get_gain_mode", &ser_rk_isp_get_gain_mode},{(char *)"rk_isp_set_gain_mode", &ser_rk_isp_set_gain_mode},{(char *)"rk_isp_get_exposure_time", &ser_rk_isp_get_exposure_time},{(char *)"rk_isp_set_exposure_time", &ser_rk_isp_set_exposure_time},{(char *)"rk_isp_get_exposure_gain", &ser_rk_isp_get_exposure_gain},{(char *)"rk_isp_set_exposure_gain", &ser_rk_isp_set_exposure_gain},{(char *)"rk_isp_get_frame_rate", &ser_rk_isp_get_frame_rate},{(char *)"rk_isp_set_frame_rate", &ser_rk_isp_set_frame_rate},// isp night_to_day{(char *)"rk_isp_get_night_to_day", &ser_rk_isp_get_night_to_day},{(char *)"rk_isp_set_night_to_day", &ser_rk_isp_set_night_to_day},{(char *)"rk_isp_get_fill_light_mode", &ser_rk_isp_get_fill_light_mode},{(char *)"rk_isp_set_fill_light_mode", &ser_rk_isp_set_fill_light_mode},{(char *)"rk_isp_get_light_brightness", &ser_rk_isp_get_light_brightness},{(char *)"rk_isp_set_light_brightness", &ser_rk_isp_set_light_brightness},{(char *)"rk_isp_get_night_to_day_filter_level", &ser_rk_isp_get_night_to_day_filter_level},{(char *)"rk_isp_set_night_to_day_filter_level", &ser_rk_isp_set_night_to_day_filter_level},{(char *)"rk_isp_get_night_to_day_filter_time", &ser_rk_isp_get_night_to_day_filter_time},{(char *)"rk_isp_set_night_to_day_filter_time", &ser_rk_isp_set_night_to_day_filter_time},// isp blc{(char *)"rk_isp_get_hdr", &ser_rk_isp_get_hdr},{(char *)"rk_isp_set_hdr", &ser_rk_isp_set_hdr},{(char *)"rk_isp_get_blc_region", &ser_rk_isp_get_blc_region},{(char *)"rk_isp_set_blc_region", &ser_rk_isp_set_blc_region},{(char *)"rk_isp_get_hlc", &ser_rk_isp_get_hlc},{(char *)"rk_isp_set_hlc", &ser_rk_isp_set_hlc},{(char *)"rk_isp_get_hdr_level", &ser_rk_isp_get_hdr_level},{(char *)"rk_isp_set_hdr_level", &ser_rk_isp_set_hdr_level},{(char *)"rk_isp_get_blc_strength", &ser_rk_isp_get_blc_strength},{(char *)"rk_isp_set_blc_strength", &ser_rk_isp_set_blc_strength},{(char *)"rk_isp_get_hlc_level", &ser_rk_isp_get_hlc_level},{(char *)"rk_isp_set_hlc_level", &ser_rk_isp_set_hlc_level},{(char *)"rk_isp_get_dark_boost_level", &ser_rk_isp_get_dark_boost_level},{(char *)"rk_isp_set_dark_boost_level", &ser_rk_isp_set_dark_boost_level},// isp white_blance{(char *)"rk_isp_get_white_blance_style", &ser_rk_isp_get_white_blance_style},{(char *)"rk_isp_set_white_blance_style", &ser_rk_isp_set_white_blance_style},{(char *)"rk_isp_get_white_blance_red", &ser_rk_isp_get_white_blance_red},{(char *)"rk_isp_set_white_blance_red", &ser_rk_isp_set_white_blance_red},{(char *)"rk_isp_get_white_blance_green", &ser_rk_isp_get_white_blance_green},{(char *)"rk_isp_set_white_blance_green", &ser_rk_isp_set_white_blance_green},{(char *)"rk_isp_get_white_blance_blue", &ser_rk_isp_get_white_blance_blue},{(char *)"rk_isp_set_white_blance_blue", &ser_rk_isp_set_white_blance_blue},// isp enhancement{(char *)"rk_isp_get_noise_reduce_mode", &ser_rk_isp_get_noise_reduce_mode},{(char *)"rk_isp_set_noise_reduce_mode", &ser_rk_isp_set_noise_reduce_mode},{(char *)"rk_isp_get_dehaze", &ser_rk_isp_get_dehaze},{(char *)"rk_isp_set_dehaze", &ser_rk_isp_set_dehaze},{(char *)"rk_isp_get_gray_scale_mode", &ser_rk_isp_get_gray_scale_mode},{(char *)"rk_isp_set_gray_scale_mode", &ser_rk_isp_set_gray_scale_mode},{(char *)"rk_isp_get_distortion_correction", &ser_rk_isp_get_distortion_correction},{(char *)"rk_isp_set_distortion_correction", &ser_rk_isp_set_distortion_correction},{(char *)"rk_isp_get_spatial_denoise_level", &ser_rk_isp_get_spatial_denoise_level},{(char *)"rk_isp_set_spatial_denoise_level", &ser_rk_isp_set_spatial_denoise_level},{(char *)"rk_isp_get_temporal_denoise_level", &ser_rk_isp_get_temporal_denoise_level},{(char *)"rk_isp_set_temporal_denoise_level", &ser_rk_isp_set_temporal_denoise_level},{(char *)"rk_isp_get_dehaze_level", &ser_rk_isp_get_dehaze_level},{(char *)"rk_isp_set_dehaze_level", &ser_rk_isp_set_dehaze_level},{(char *)"rk_isp_get_fec_level", &ser_rk_isp_get_fec_level},{(char *)"rk_isp_set_fec_level", &ser_rk_isp_set_fec_level},{(char *)"rk_isp_get_ldch_level", &ser_rk_isp_get_ldch_level},{(char *)"rk_isp_set_ldch_level", &ser_rk_isp_set_ldch_level},// isp video_adjustment{(char *)"rk_isp_get_power_line_frequency_mode", &ser_rk_isp_get_power_line_frequency_mode},{(char *)"rk_isp_set_power_line_frequency_mode", &ser_rk_isp_set_power_line_frequency_mode},{(char *)"rk_isp_get_image_flip", &ser_rk_isp_get_image_flip},{(char *)"rk_isp_set_image_flip", &ser_rk_isp_set_image_flip},// isp auto focus{(char *)"rk_isp_get_af_mode", &ser_rk_isp_get_af_mode},{(char *)"rk_isp_set_af_mode", &ser_rk_isp_set_af_mode},{(char *)"rk_isp_get_zoom_level", &ser_rk_isp_get_zoom_level},{(char *)"rk_isp_get_focus_level", &ser_rk_isp_get_focus_level},{(char *)"rk_isp_af_zoom_in", &ser_rk_isp_af_zoom_in},{(char *)"rk_isp_af_zoom_out", &ser_rk_isp_af_zoom_out},{(char *)"rk_isp_af_focus_in", &ser_rk_isp_af_focus_in},{(char *)"rk_isp_af_focus_out", &ser_rk_isp_af_focus_out},{(char *)"rk_isp_af_focus_once", &ser_rk_isp_af_focus_once},// audio{(char *)"rk_audio_restart", &ser_rk_audio_restart},{(char *)"rk_audio_get_bit_rate", &ser_rk_audio_get_bit_rate},{(char *)"rk_audio_set_bit_rate", &ser_rk_audio_set_bit_rate},{(char *)"rk_audio_get_sample_rate", &ser_rk_audio_get_sample_rate},{(char *)"rk_audio_set_sample_rate", &ser_rk_audio_set_sample_rate},{(char *)"rk_audio_get_volume", &ser_rk_audio_get_volume},{(char *)"rk_audio_set_volume", &ser_rk_audio_set_volume},{(char *)"rk_audio_get_enable_vqe", &ser_rk_audio_get_enable_vqe},{(char *)"rk_audio_set_enable_vqe", &ser_rk_audio_set_enable_vqe},{(char *)"rk_audio_get_encode_type", &ser_rk_audio_get_encode_type},{(char *)"rk_audio_set_encode_type", &ser_rk_audio_set_encode_type},// video{(char *)"rk_video_restart", &ser_rk_video_restart},{(char *)"rk_video_get_gop", &ser_rk_video_get_gop},{(char *)"rk_video_set_gop", &ser_rk_video_set_gop},{(char *)"rk_video_get_max_rate", &ser_rk_video_get_max_rate},{(char *)"rk_video_set_max_rate", &ser_rk_video_set_max_rate},{(char *)"rk_video_get_RC_mode", &ser_rk_video_get_RC_mode},{(char *)"rk_video_set_RC_mode", &ser_rk_video_set_RC_mode},{(char *)"rk_video_get_output_data_type", &ser_rk_video_get_output_data_type},{(char *)"rk_video_set_output_data_type", &ser_rk_video_set_output_data_type},{(char *)"rk_video_get_rc_quality", &ser_rk_video_get_rc_quality},{(char *)"rk_video_set_rc_quality", &ser_rk_video_set_rc_quality},{(char *)"rk_video_get_smart", &ser_rk_video_get_smart},{(char *)"rk_video_set_smart", &ser_rk_video_set_smart},{(char *)"rk_video_get_gop_mode", &ser_rk_video_get_gop_mode},{(char *)"rk_video_set_gop_mode", &ser_rk_video_set_gop_mode},{(char *)"rk_video_get_stream_type", &ser_rk_video_get_stream_type},{(char *)"rk_video_set_stream_type", &ser_rk_video_set_stream_type},{(char *)"rk_video_get_h264_profile", &ser_rk_video_get_h264_profile},{(char *)"rk_video_set_h264_profile", &ser_rk_video_set_h264_profile},{(char *)"rk_video_get_resolution", &ser_rk_video_get_resolution},{(char *)"rk_video_set_resolution", &ser_rk_video_set_resolution},{(char *)"rk_video_get_frame_rate", &ser_rk_video_get_frame_rate},{(char *)"rk_video_set_frame_rate", &ser_rk_video_set_frame_rate},{(char *)"rk_video_get_frame_rate_in", &ser_rk_video_get_frame_rate_in},{(char *)"rk_video_set_frame_rate_in", &ser_rk_video_set_frame_rate_in},{(char *)"rk_video_get_rotation", &ser_rk_video_get_rotation},{(char *)"rk_video_set_rotation", &ser_rk_video_set_rotation},// jpeg{(char *)"rk_video_get_enable_cycle_snapshot", &ser_rk_video_get_enable_cycle_snapshot},{(char *)"rk_video_set_enable_cycle_snapshot", &ser_rk_video_set_enable_cycle_snapshot},{(char *)"rk_video_get_image_quality", &ser_rk_video_get_image_quality},{(char *)"rk_video_set_image_quality", &ser_rk_video_set_image_quality},{(char *)"rk_video_get_snapshot_interval_ms", &ser_rk_video_get_snapshot_interval_ms},{(char *)"rk_video_set_snapshot_interval_ms", &ser_rk_video_set_snapshot_interval_ms},{(char *)"rk_video_get_jpeg_resolution", &ser_rk_video_get_jpeg_resolution},{(char *)"rk_video_set_jpeg_resolution", &ser_rk_video_set_jpeg_resolution},// osd.common{(char *)"rk_osd_get_is_presistent_text", &ser_rk_osd_get_is_presistent_text},{(char *)"rk_osd_set_is_presistent_text", &ser_rk_osd_set_is_presistent_text},{(char *)"rk_osd_get_font_size", &ser_rk_osd_get_font_size},{(char *)"rk_osd_set_font_size", &ser_rk_osd_set_font_size},{(char *)"rk_osd_get_boundary", &ser_rk_osd_get_boundary},{(char *)"rk_osd_set_boundary", &ser_rk_osd_set_boundary},{(char *)"rk_osd_get_normalized_screen_width", &ser_rk_osd_get_normalized_screen_width},{(char *)"rk_osd_get_normalized_screen_height", &ser_rk_osd_get_normalized_screen_height},{(char *)"rk_osd_get_attribute", &ser_rk_osd_get_attribute},{(char *)"rk_osd_set_attribute", &ser_rk_osd_set_attribute},{(char *)"rk_osd_get_font_color_mode", &ser_rk_osd_get_font_color_mode},{(char *)"rk_osd_set_font_color_mode", &ser_rk_osd_set_font_color_mode},{(char *)"rk_osd_get_font_color", &ser_rk_osd_get_font_color},{(char *)"rk_osd_set_font_color", &ser_rk_osd_set_font_color},{(char *)"rk_osd_get_alignment", &ser_rk_osd_get_alignment},{(char *)"rk_osd_set_alignment", &ser_rk_osd_set_alignment},{(char *)"rk_osd_get_font_path", &ser_rk_osd_get_font_path},{(char *)"rk_osd_set_font_path", &ser_rk_osd_set_font_path},// osd.x{(char *)"rk_osd_get_enabled", &ser_rk_osd_get_enabled},{(char *)"rk_osd_set_enabled", &ser_rk_osd_set_enabled},{(char *)"rk_osd_get_position_x", &ser_rk_osd_get_position_x},{(char *)"rk_osd_set_position_x", &ser_rk_osd_set_position_x},{(char *)"rk_osd_get_position_y", &ser_rk_osd_get_position_y},{(char *)"rk_osd_set_position_y", &ser_rk_osd_set_position_y},{(char *)"rk_osd_get_height", &ser_rk_osd_get_height},{(char *)"rk_osd_set_height", &ser_rk_osd_set_height},{(char *)"rk_osd_get_width", &ser_rk_osd_get_width},{(char *)"rk_osd_set_width", &ser_rk_osd_set_width},{(char *)"rk_osd_get_display_week_enabled", &ser_rk_osd_get_display_week_enabled},{(char *)"rk_osd_set_display_week_enabled", &ser_rk_osd_set_display_week_enabled},{(char *)"rk_osd_get_date_style", &ser_rk_osd_get_date_style},{(char *)"rk_osd_set_date_style", &ser_rk_osd_set_date_style},{(char *)"rk_osd_get_time_style", &ser_rk_osd_get_time_style},{(char *)"rk_osd_set_time_style", &ser_rk_osd_set_time_style},{(char *)"rk_osd_get_type", &ser_rk_osd_get_type},{(char *)"rk_osd_set_type", &ser_rk_osd_set_type},{(char *)"rk_osd_get_display_text", &ser_rk_osd_get_display_text},{(char *)"rk_osd_set_display_text", &ser_rk_osd_set_display_text},{(char *)"rk_osd_get_image_path", &ser_rk_osd_get_image_path},{(char *)"rk_osd_set_image_path", &ser_rk_osd_set_image_path},{(char *)"rk_osd_get_style", &ser_rk_osd_get_style},{(char *)"rk_osd_set_style", &ser_rk_osd_set_style},{(char *)"rk_osd_restart", &ser_rk_osd_restart},// roi.x{(char *)"rk_roi_get_stream_type", &ser_rk_roi_get_stream_type},{(char *)"rk_roi_set_stream_type", &ser_rk_roi_set_stream_type},{(char *)"rk_roi_get_name", &ser_rk_roi_get_name},{(char *)"rk_roi_set_name", &ser_rk_roi_set_name},{(char *)"rk_roi_get_id", &ser_rk_roi_get_id},{(char *)"rk_roi_set_id", &ser_rk_roi_set_id},{(char *)"rk_roi_get_enabled", &ser_rk_roi_get_enabled},{(char *)"rk_roi_set_enabled", &ser_rk_roi_set_enabled},{(char *)"rk_roi_get_position_x", &ser_rk_roi_get_position_x},{(char *)"rk_roi_set_position_x", &ser_rk_roi_set_position_x},{(char *)"rk_roi_get_position_y", &ser_rk_roi_get_position_y},{(char *)"rk_roi_set_position_y", &ser_rk_roi_set_position_y},{(char *)"rk_roi_get_height", &ser_rk_roi_get_height},{(char *)"rk_roi_set_height", &ser_rk_roi_set_height},{(char *)"rk_roi_get_width", &ser_rk_roi_get_width},{(char *)"rk_roi_set_width", &ser_rk_roi_set_width},{(char *)"rk_roi_get_quality_level", &ser_rk_roi_get_quality_level},{(char *)"rk_roi_set_quality_level", &ser_rk_roi_set_quality_level},{(char *)"rk_roi_set_all", &ser_rk_roi_set_all},// region_clip.x{(char *)"rk_region_clip_get_enabled", &ser_rk_region_clip_get_enabled},{(char *)"rk_region_clip_set_enabled", &ser_rk_region_clip_set_enabled},{(char *)"rk_region_clip_get_position_x", &ser_rk_region_clip_get_position_x},{(char *)"rk_region_clip_set_position_x", &ser_rk_region_clip_set_position_x},{(char *)"rk_region_clip_get_position_y", &ser_rk_region_clip_get_position_y},{(char *)"rk_region_clip_set_position_y", &ser_rk_region_clip_set_position_y},{(char *)"rk_region_clip_get_height", &ser_rk_region_clip_get_height},{(char *)"rk_region_clip_set_height", &ser_rk_region_clip_set_height},{(char *)"rk_region_clip_get_width", &ser_rk_region_clip_get_width},{(char *)"rk_region_clip_set_width", &ser_rk_region_clip_set_width},{(char *)"rk_region_clip_set_all", &ser_rk_region_clip_set_all},// network{(char *)"rk_network_ipv4_get", &ser_rk_network_ipv4_get},{(char *)"rk_network_ipv4_set", &ser_rk_network_ipv4_set},{(char *)"rk_network_dns_get", &ser_rk_network_dns_get},{(char *)"rk_network_dns_set", &ser_rk_network_dns_set},{(char *)"rk_network_get_mac", &ser_rk_network_get_mac},{(char *)"rk_network_nicspeed_get", &ser_rk_network_nicspeed_get},{(char *)"rk_network_nicspeed_set", &ser_rk_network_nicspeed_set},{(char *)"rk_network_nicspeed_support_get", &ser_rk_network_nicspeed_support_get},{(char *)"rk_wifi_power_get", &ser_rk_wifi_power_get},{(char *)"rk_wifi_power_set", &ser_rk_wifi_power_set},{(char *)"rk_wifi_scan_wifi", &ser_rk_wifi_scan_wifi},{(char *)"rk_wifi_get_list", &ser_rk_wifi_get_list},{(char *)"rk_wifi_connect_with_ssid", &ser_rk_wifi_connect_with_ssid},{(char *)"rk_wifi_forget_with_ssid", &ser_rk_wifi_forget_with_ssid},// storage{(char *)"rk_storage_record_start", &ser_rk_storage_record_start},{(char *)"rk_storage_record_stop", &ser_rk_storage_record_stop},{(char *)"rk_storage_record_statue_get", &ser_rk_storage_record_statue_get},{(char *)"rk_take_photo", &ser_rk_take_photo},// event{(char *)"rk_event_ri_get_enabled", &ser_rk_event_ri_get_enabled},{(char *)"rk_event_ri_set_enabled", &ser_rk_event_ri_set_enabled},{(char *)"rk_event_ri_get_position_x", &ser_rk_event_ri_get_position_x},{(char *)"rk_event_ri_set_position_x", &ser_rk_event_ri_set_position_x},{(char *)"rk_event_ri_get_position_y", &ser_rk_event_ri_get_position_y},{(char *)"rk_event_ri_set_position_y", &ser_rk_event_ri_set_position_y},{(char *)"rk_event_ri_get_width", &ser_rk_event_ri_get_width},{(char *)"rk_event_ri_set_width", &ser_rk_event_ri_set_width},{(char *)"rk_event_ri_get_height", &ser_rk_event_ri_get_height},{(char *)"rk_event_ri_set_height", &ser_rk_event_ri_set_height},{(char *)"rk_event_ri_get_proportion", &ser_rk_event_ri_get_proportion},{(char *)"rk_event_ri_set_proportion", &ser_rk_event_ri_set_proportion},{(char *)"rk_event_ri_get_sensitivity_level", &ser_rk_event_ri_get_sensitivity_level},{(char *)"rk_event_ri_set_sensitivity_level", &ser_rk_event_ri_set_sensitivity_level},{(char *)"rk_event_ri_get_time_threshold", &ser_rk_event_ri_get_time_threshold},{(char *)"rk_event_ri_set_time_threshold", &ser_rk_event_ri_set_time_threshold},// system{(char *)"rk_system_capability_get_video", &ser_rk_system_capability_get_video},{(char *)"rk_system_capability_get_image_adjustment",&ser_rk_system_capability_get_image_adjustment},{(char *)"rk_system_capability_get_image_blc", &ser_rk_system_capability_get_image_blc},{(char *)"rk_system_capability_get_image_enhancement",&ser_rk_system_capability_get_image_enhancement},{(char *)"rk_system_capability_get_image_exposure",&ser_rk_system_capability_get_image_exposure},{(char *)"rk_system_capability_get_image_night_to_day",&ser_rk_system_capability_get_image_night_to_day},{(char *)"rk_system_capability_get_image_video_adjustment",&ser_rk_system_capability_get_image_video_adjustment},{(char *)"rk_system_capability_get_image_white_blance",&ser_rk_system_capability_get_image_white_blance},{(char *)"rk_system_get_deivce_name", &ser_rk_system_get_deivce_name},{(char *)"rk_system_get_telecontrol_id", &ser_rk_system_get_telecontrol_id},{(char *)"rk_system_get_model", &ser_rk_system_get_model},{(char *)"rk_system_get_serial_number", &ser_rk_system_get_serial_number},{(char *)"rk_system_get_firmware_version", &ser_rk_system_get_firmware_version},{(char *)"rk_system_get_encoder_version", &ser_rk_system_get_encoder_version},{(char *)"rk_system_get_web_version", &ser_rk_system_get_web_version},{(char *)"rk_system_get_plugin_version", &ser_rk_system_get_plugin_version},{(char *)"rk_system_get_channels_number", &ser_rk_system_get_channels_number},{(char *)"rk_system_get_hard_disks_number", &ser_rk_system_get_hard_disks_number},{(char *)"rk_system_get_alarm_inputs_number", &ser_rk_system_get_alarm_inputs_number},{(char *)"rk_system_get_alarm_outputs_number", &ser_rk_system_get_alarm_outputs_number},{(char *)"rk_system_get_firmware_version_info", &ser_rk_system_get_firmware_version_info},{(char *)"rk_system_get_manufacturer", &ser_rk_system_get_manufacturer},{(char *)"rk_system_get_hardware_id", &ser_rk_system_get_hardware_id},{(char *)"rk_system_set_deivce_name", &ser_rk_system_set_deivce_name},{(char *)"rk_system_set_telecontrol_id", &ser_rk_system_set_telecontrol_id},{(char *)"rk_system_reboot", &ser_rk_system_reboot},{(char *)"rk_system_factory_reset", &ser_rk_system_factory_reset},{(char *)"rk_system_export_log", &ser_rk_system_export_log},{(char *)"rk_system_export_db", &ser_rk_system_export_db},{(char *)"rk_system_import_db", &ser_rk_system_import_db},{(char *)"rk_system_upgrade", &ser_rk_system_upgrade},{(char *)"rk_system_get_user_num", &ser_rk_system_get_user_num},{(char *)"rk_system_set_user_num", &ser_rk_system_set_user_num},{(char *)"rk_system_get_user_level", &ser_rk_system_get_user_level},{(char *)"rk_system_set_user_level", &ser_rk_system_set_user_level},{(char *)"rk_system_get_user_name", &ser_rk_system_get_user_name},{(char *)"rk_system_set_user_name", &ser_rk_system_set_user_name},{(char *)"rk_system_get_password", &ser_rk_system_get_password},{(char *)"rk_system_set_password", &ser_rk_system_set_password},{(char *)"rk_system_add_user", &ser_rk_system_add_user},{(char *)"rk_system_del_user", &ser_rk_system_del_user}};

rkipc 函數定義

函數名稱功能
rk_system_init系統模塊初始化
rk_system_deinit系統模塊反初始化
rk_system_reboot重啟
rk_system_factory_reset恢復出廠設置
rk_system_export_log導出日志
rk_system_export_db導出配置文件
rk_system_import_db導入配置文件
rk_system_upgrade系統升級
rk_system_get_user_num獲取用戶數
rk_system_set_user_num設置用戶數
rk_system_get_user_level獲取用戶權限
rk_system_set_user_level設置用戶權限
rk_system_get_user_name獲取用戶名
rk_system_set_user_name設置用戶名
rk_system_get_password獲取密碼(已加密)
rk_system_set_password設置密碼(已加密)
rk_system_add_user新增用戶
rk_system_del_user刪除用戶

事件模塊

目前僅支持rv1126_ipc_rkmedia

函數名稱功能
rk_event_init事件模塊初始化
rk_event_deinit事件模塊反初始化
rk_event_ri_get_enabled獲取區域入侵使能狀態
rk_event_ri_set_enabled設置區域入侵使能狀態
rk_event_ri_get_position_x獲取區域入侵的x坐標
rk_event_ri_set_position_x設置區域入侵的x坐標
rk_event_ri_get_position_y獲取區域入侵的y坐標
rk_event_ri_set_position_y設置區域入侵的x坐標
rk_event_ri_get_width獲取區域入侵的寬度
rk_event_ri_set_width設置區域入侵的寬度
rk_event_ri_get_height獲取區域入侵的高度
rk_event_ri_set_height設置區域入侵的高度
rk_event_ri_get_proportion獲取區域入侵的占比
rk_event_ri_set_proportion設置區域入侵的占比
rk_event_ri_get_sensitivity_level獲取區域入侵的靈敏度
rk_event_ri_set_sensitivity_level設置區域入侵的靈敏度
rk_event_ri_get_time_threshold獲取區域入侵的時間閾值
rk_event_ri_set_time_threshold設置區域入侵的時間閾值

rtmp推流模塊

函數名稱功能
rk_rtmp_initrtmp模塊初始化
rk_rtmp_deinitrtmp模塊反初始化
rk_rtmp_write_video_frame寫視頻幀
rk_rtmp_write_audio_frame寫音頻幀

rtsp推流模塊

函數名稱功能
create_rtsp_demo創建句柄
rtsp_new_session根據URL,創建會話
rtsp_set_video設置視頻流格式
rtsp_set_audio設置音頻流格式
rtsp_sync_video_ts同步視頻時間戳
rtsp_sync_audio_ts同步音頻時間戳
rtsp_del_session刪除會話
rtsp_del_demo刪除句柄
rtsp_tx_video送視頻幀
rtsp_tx_audio送音頻幀
rtsp_do_event執行操作

ISP模塊

函數名稱功能
rk_isp_init單攝像頭初始化
rk_isp_deinit單攝像頭反初始化
rk_isp_group_init多攝像頭初始化
rk_isp_group_deinit多攝像頭反初始化
rk_isp_set_frame_rate設置幀率
rk_isp_get_contrast獲取對比度
rk_isp_set_contrast設置對比度
rk_isp_get_brightness獲取亮度
rk_isp_set_brightness設置亮度
rk_isp_get_saturation獲取飽和度
rk_isp_set_saturation設置飽和度
rk_isp_get_sharpness獲取銳度
rk_isp_set_sharpness設置銳度
rk_isp_get_hue獲取色調
rk_isp_set_hue設置色調
rk_isp_get_exposure_mode獲取曝光模式
rk_isp_set_exposure_mode設置曝光模式
rk_isp_get_gain_mode獲取增益模式
rk_isp_set_gain_mode設置增益模式
rk_isp_get_exposure_time獲取曝光時間
rk_isp_set_exposure_time設置曝光時間
rk_isp_get_exposure_gain獲取增益
rk_isp_set_exposure_gain設置增益
rk_isp_get_hdr獲取高動態模式
rk_isp_set_hdr設置高動態模式
rk_isp_get_blc_region獲取背光模式
rk_isp_set_blc_region設置背光模式
rk_isp_get_hlc獲取強光抑制模式
rk_isp_set_hlc設置強光抑制模式
rk_isp_get_hdr_level獲取高動態級別
rk_isp_set_hdr_level設置高動態級別
rk_isp_get_blc_strength獲取背光強度
rk_isp_set_blc_strength設置背光強度
rk_isp_get_hlc_level獲取強光抑制等級
rk_isp_set_hlc_level設置強光抑制等級
rk_isp_get_dark_boost_level獲取暗區增強等級
rk_isp_set_dark_boost_level設置暗區增強等級
rk_isp_get_white_blance_style獲取白平衡模式
rk_isp_set_white_blance_style設置白平衡模式
rk_isp_get_white_blance_red獲取白平衡R增益
rk_isp_set_white_blance_red設置白平衡R增益
rk_isp_get_white_blance_green獲取白平衡G增益
rk_isp_set_white_blance_green設置白平衡G增益
rk_isp_get_white_blance_blue獲取白平衡B增益
rk_isp_set_white_blance_blue設置白平衡B增益
rk_isp_get_noise_reduce_mode獲取降噪模式
rk_isp_set_noise_reduce_mode設置降噪模式
rk_isp_get_dehaze獲取去霧模式
rk_isp_set_dehaze設置去霧模式
rk_isp_get_gray_scale_mode獲取灰度范圍
rk_isp_set_gray_scale_mode設置灰度范圍
rk_isp_get_distortion_correction獲取畸變矯正模式
rk_isp_set_distortion_correction設置畸變矯正模式
rk_isp_get_spatial_denoise_level獲取空域降噪等級
rk_isp_set_spatial_denoise_level設置空域降噪等級
rk_isp_get_temporal_denoise_level獲取時域降噪等級
rk_isp_set_temporal_denoise_level設置時域降噪等級
rk_isp_get_dehaze_level獲取去霧等級
rk_isp_set_dehaze_level設置去霧等級
rk_isp_get_ldch_level獲取LDCH等級
rk_isp_set_ldch_level設置LDCH等級
rk_isp_get_power_line_frequency_mode獲取視頻制式
rk_isp_set_power_line_frequency_mode設置視頻制式
rk_isp_get_image_flip獲取鏡像翻轉
rk_isp_set_image_flip設置鏡像翻轉
rk_isp_get_af_mode獲取自動對焦模式
rk_isp_set_af_mode設置自動對焦模式
rk_isp_get_zoom_level獲取放大縮小等級
rk_isp_set_zoom_level設置放大縮小等級
rk_isp_af_zoom_in放大
rk_isp_af_zoom_out縮小
rk_isp_af_focus_in聚焦
rk_isp_af_focus_out失焦

音頻模塊

函數名稱功能
rkipc_audio_rtsp_initrtsp音頻初始化
rkipc_audio_init音頻模塊初始化
rkipc_audio_deinit音頻模塊反初始化
rk_audio_restart重啟音頻模塊
rk_audio_get_bit_rate獲取比特率
rk_audio_set_bit_rate設置比特率
rk_audio_get_sample_rate獲取采樣率
rk_audio_set_sample_rate設置采樣率
rk_audio_get_volume獲取音量
rk_audio_set_volume設置音量
rk_audio_get_enable_vqe獲取音頻3A算法是否使能
rk_audio_set_enable_vqe設置音頻3A算法是否使能
rk_audio_get_encode_type獲取編碼類型
rk_audio_set_encode_type設置編碼類型

視頻模塊

函數名稱功能
rk_video_init視頻模塊初始化
rk_video_deinit視頻模塊反初始化
rk_video_restart重啟視頻模塊
rk_video_get_gop獲取I幀間隔
rk_video_set_gop設置I幀間隔
rk_video_get_max_rate獲取最大碼率
rk_video_set_max_rate設置最大碼率
rk_video_get_RC_mode獲取碼率控制類型
rk_video_set_RC_mode設置碼率控制類型
rk_video_get_output_data_type獲取編碼類型
rk_video_set_output_data_type設置編碼類型
rk_video_get_rc_quality獲取碼率控制質量
rk_video_set_rc_quality設置碼率控制質量
rk_video_get_smart獲取智能編碼狀態
rk_video_set_smart設置智能編碼狀態
rk_video_get_gop_mode獲取gop模式
rk_video_set_gop_mode設置gop模式
rk_video_get_stream_type獲取碼流名稱
rk_video_set_stream_type設置碼流名稱
rk_video_get_h264_profile獲取h264的profile
rk_video_set_h264_profile設置h264的profile
rk_video_get_resolution獲取分辨率
rk_video_set_resolution設置分辨率
rk_video_get_frame_rate獲取輸入幀率
rk_video_set_frame_rate設置輸入幀率
rk_video_get_frame_rate_in獲取輸出幀率
rk_video_set_frame_rate_in設置輸出幀率
rk_video_get_rotation獲取旋轉角度
rk_video_set_rotation設置旋轉角度
rk_video_get_smartp_viridrlen獲取smartP的虛擬I幀長度
rk_video_set_smartp_viridrlen設置smartP的虛擬I幀長度
IVS模塊
函數名稱功能
rk_video_get_md_switch獲取移動偵測開關狀態
rk_video_set_md_switch設置移動偵測開關狀態
rk_video_get_md_sensebility獲取移動偵測靈敏度
rk_video_set_md_sensebility設置移動偵測靈敏度
rk_video_get_od_switch獲取隱私遮擋開關狀態
rk_video_set_od_switch設置隱私遮擋開關狀態
JPEG模塊
函數名稱功能
rk_video_get_enable_cycle_snapshot獲取定時抓拍開關狀態
rk_video_set_enable_cycle_snapshot設置定時抓拍開關狀態
rk_video_get_image_quality獲取圖像質量
rk_video_set_image_quality設置圖像質量
rk_video_get_snapshot_interval_ms獲取抓拍間隔
rk_video_set_snapshot_interval_ms設置抓拍間隔
rk_video_get_jpeg_resolution獲取jpeg分辨率
rk_video_set_jpeg_resolution設置jpeg分辨率
rk_take_photo抓拍一次

參數管理模塊

函數名稱功能
rk_param_get_int獲取整型參數
rk_param_set_int設置整型參數
rk_param_get_string獲取字符型參數
rk_param_set_string設置字符型參數
rk_param_save將當前參數保存為文件
rk_param_init從指定ini文件初始化
rk_param_deinit反初始化
rk_param_reload不保存當前參數,重新加載ini

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/897428.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/897428.shtml
英文地址,請注明出處:http://en.pswp.cn/news/897428.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

NLP常見任務專題介紹(2)-多項選擇任務(MultipleChoice)訓練與推理模板

一、 使用 BigBird 進行多項選擇任務訓練與推理 本示例展示如何使用 BigBirdForMultipleChoice 訓練一個多項選擇模型,適用于考試答題、閱讀理解、常識推理等任務。 1?? 任務描述 目標:給定一個問題和多個選項,模型預測正確答案。 數據格式:輸入包含 (問題, 選項1, 選項…

【論文解讀】MODEST 透明物體 單目深度估計和分割 ICRA 2025

MODEST是一種用于透明物體的單目深度估計和分割的方法&#xff0c;來自ICRA 2025。 它通過單張RGB圖像作為輸入&#xff0c;能夠同時預測透明物體的深度圖和分割掩碼。 由深度圖生成點云數據&#xff0c;然后采用GraspNet生成抓取位姿&#xff0c;開展透明物體抓取實驗。 論文…

【網絡安全工程】任務11:路由器配置與靜態路由配置

目錄 一、概念 二、路由器配置 三、配置靜態路由CSDN 原創主頁&#xff1a;不羈https://blog.csdn.net/2303_76492156?typeblog 一、概念 1、路由器的作用&#xff1a;通過路由表進行數據的轉發。 2、交換機的作用&#xff1a;通過學習和識別 MAC 地址&#xff0c;依據 M…

深入理解隱式類型轉換:從原理到應用

C?持內置類型隱式類型轉換為類類型對象&#xff0c;需要有相關內置類型為參數的構造函數。 構造函數前?加explicit就不再?持隱式類型轉換。 類類型的對象之間也可以隱式轉換&#xff0c;需要相應的構造函數?持。 內置類型隱式類型轉換為類類型對象 在 C 中&#xff0c;如果…

垃圾收集算法與收集器

在 JVM 中&#xff0c;垃圾收集&#xff08;Garbage Collection, GC&#xff09;算法的核心目標是自動回收無用對象的內存&#xff0c;同時盡量減少對應用性能的影響。以下是 JVM 中主要垃圾收集算法的原理、流程及實際應用場景的詳細介紹&#xff1a; 一、標記-清除算法&#…

如何為服務設置合理的線程數

1. 首先&#xff0c;要確定最大線程數的限制因素。通常&#xff0c;線程數量受限于內存、CPU和操作系統限制。比如&#xff0c;每個線程都需要一定的棧內存&#xff0c;默認情況下Java線程的棧大小是1MB&#xff08;64位系統可能更大&#xff09;&#xff0c;所以如果內存不足&…

內容中臺:元數據驅動管理新范式

元數據驅動智能管理中樞 現代企業內容管理正經歷從碎片化存儲向結構化治理的范式轉變&#xff0c;元數據驅動機制在此過程中展現出核心樞紐價值。通過構建多維屬性標簽體系&#xff0c;Baklib等內容中臺解決方案實現了對文本、音視頻等數字資產的精準定義&#xff0c;其動態分…

在mac中設置環境變量

步驟一&#xff1a;打開終端 步驟二&#xff1a;輸入printenv&#xff0c;查看當前已有的環境變量&#xff1b; 步驟三&#xff1a;輸入&#xff1a;nano ~/.zshrc 打開環境變量編輯頁面&#xff1b; 步驟四&#xff1a;輸入新的變量&#xff1a;export DEEPSEEK_API_KEY&qu…

擴散模型的算法原理及其在圖像生成領域的優勢與創新

目錄 一、引言 二、擴散模型的加噪過程 &#xff08;一&#xff09;前向擴散過程 &#xff08;二&#xff09;噪聲調度策略 三、擴散模型的去噪過程 &#xff08;一&#xff09;反向擴散過程 &#xff08;二&#xff09;去噪網絡架構 四、擴散模型的訓練和推理機制 &am…

技術領域,有許多優秀的博客和網站

在技術領域&#xff0c;有許多優秀的博客和網站為開發者、工程師和技術愛好者提供了豐富的學習資源和行業動態。以下是一些常用的技術博客和網站&#xff0c;涵蓋了編程、軟件開發、數據科學、人工智能、網絡安全等多個領域&#xff1a; 1. 綜合技術博客 1.1 Medium 網址: ht…

mysql經典試題共34題

1、準備數據 -- drop drop table if exists dept; drop table if exists emp; drop table if exists salgrade;-- CREATE CREATE TABLE dept (deptno int NOT NULL COMMENT 部門編號,dname varchar(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMM…

2025 - GDB 盲調筆記--調試 “無調試符號“ “無調試信息“ 的三方程序

環境&#xff1a; arm64-ubuntu 相關&#xff1a;strace、ltrace、readelf、patchelf、strings、ldd -v 1). 使用 gdb 啟動目標程序(不能直接用gdb啟動的&#xff0c;可以先單獨啟動&#xff0c;再 gdb attach 強制調試) DIR_APP/opt/test gdb --args env LANGUAGE LD_LIBRA…

OCPP擴展機制與自定義功能開發:協議靈活性設計與實踐 - 慧知開源充電樁平臺

OCPP擴展機制與自定義功能開發&#xff1a;協議靈活性設計與實踐 引言 OCPP作為開放協議&#xff0c;其核心價值在于平衡標準化與可擴展性。面對不同充電樁廠商的硬件差異、區域能源政策及定制化業務需求&#xff0c;OCPP通過**擴展點&#xff08;Extension Points&#xff09…

【項目】nnUnetv2復現

作者提出一種nnUNet(no-new-Net)框架,基于原始的UNet(很小的修改),不去采用哪些新的結構,如相殘差連接、dense連接、注意力機制等花里胡哨的東西。相反的,把重心放在:預處理(resampling和normalization)、訓練(loss,optimizer設置、數據增廣)、推理(patch-based…

代碼隨想錄算法訓練營第八天|Leetcode 151.翻轉字符串里的單詞 卡碼網:55.右旋轉字符串 字符串總結 雙指針回顧

151.翻轉字符串里的單詞 建議&#xff1a;這道題目基本把 剛剛做過的字符串操作 都覆蓋了&#xff0c;不過就算知道解題思路&#xff0c;本題代碼并不容易寫&#xff0c;要多練一練。 題目鏈接/文章講解/視頻講解&#xff1a;代碼隨想錄 我們這道題的思路是&#xff0c;先將整…

【計算機網絡】計算機網絡的性能指標——時延、時延帶寬積、往返時延、信道利用率

計算機網絡的性能指標 導讀 大家好&#xff0c;很高興又和大家見面啦&#xff01;&#xff01;&#xff01; 在上一篇內容中我們介紹了計算機網絡的三個性能指標——速率、帶寬和吞吐量。用大白話來說就是&#xff1a;網速、最高網速和實時網速。 相信大家看到這三個詞應該就…

Refreshtoken 前端 安全 前端安全方面

網絡安全 前端不需要過硬的網絡安全方面的知識,但是能夠了解大多數的網絡安全,并且可以進行簡單的防御前兩三個是需要的 介紹一下常見的安全問題,解決方式,和小的Demo,希望大家喜歡 網絡安全匯總 XSSCSRF點擊劫持SQL注入OS注入請求劫持DDOS 在我看來,前端可以了解并且防御前…

vue3框架的響應式依賴追蹤機制

當存在一個響應式變量于視圖中發生改變時會更新當前組件的所以視圖顯示&#xff0c;但是沒有視圖中不寫這個響應式變量就就算修改該變量也不會修改視圖&#xff0c;這是為什么&#xff1f;我們能否可以理解寬泛的理解為vue組件的更新就是視圖的更新&#xff0c;單當視圖中不存在…

C#核心(22)string

前言 我們在之前的學習中已經學習過了很多數字類型的數據結構,但一直沒有講解除了char以外的字符串相關的知識點,這也是我們繼繼承,封裝,重載這些知識點之后要補充講解的核心知識點。 你也發現了,其實在密封函數之后我們就已經開始進入更底層的方面為你講解知識點了,這…

Spring Boot 本地緩存工具類設計與實現

在 Spring Boot 應用中&#xff0c;緩存是提升性能的重要手段之一。為了更方便地使用緩存&#xff0c;我們可以設計一套通用的本地緩存工具類&#xff0c;封裝常見的緩存操作&#xff0c;簡化開發流程。本文將詳細介紹如何設計并實現一套 Spring Boot 本地緩存工具類&#xff0…