📄 libvisca.c
字号:
unsigned intVISCA_set_wide_mode(VISCAInterface_t *interface, VISCACamera_t *camera, UInt8_t mode){ VISCAPacket_t packet; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_COMMAND); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_WIDE_MODE); _VISCA_append_byte(&packet, mode); return _VISCA_send_packet_with_reply(interface, camera, &packet);}unsigned intVISCA_set_mirror(VISCAInterface_t *interface, VISCACamera_t *camera, UInt8_t power){ VISCAPacket_t packet; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_COMMAND); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_MIRROR); _VISCA_append_byte(&packet, power); return _VISCA_send_packet_with_reply(interface, camera, &packet);}unsigned intVISCA_set_freeze(VISCAInterface_t *interface, VISCACamera_t *camera, UInt8_t power){ VISCAPacket_t packet; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_COMMAND); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_FREEZE); _VISCA_append_byte(&packet, power); return _VISCA_send_packet_with_reply(interface, camera, &packet);}unsigned intVISCA_set_picture_effect(VISCAInterface_t *interface, VISCACamera_t *camera, UInt8_t mode){ VISCAPacket_t packet; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_COMMAND); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_PICTURE_EFFECT); _VISCA_append_byte(&packet, mode); return _VISCA_send_packet_with_reply(interface, camera, &packet);}unsigned intVISCA_set_digital_effect(VISCAInterface_t *interface, VISCACamera_t *camera, UInt8_t mode){ VISCAPacket_t packet; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_COMMAND); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_DIGITAL_EFFECT); _VISCA_append_byte(&packet, mode); return _VISCA_send_packet_with_reply(interface, camera, &packet);}unsigned intVISCA_set_digital_effect_level(VISCAInterface_t *interface, VISCACamera_t *camera, UInt8_t level){ VISCAPacket_t packet; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_COMMAND); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_DIGITAL_EFFECT_LEVEL); _VISCA_append_byte(&packet, level); return _VISCA_send_packet_with_reply(interface, camera, &packet);}unsigned intVISCA_memory_set(VISCAInterface_t *interface, VISCACamera_t *camera, UInt8_t channel){ VISCAPacket_t packet; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_COMMAND); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_MEMORY); _VISCA_append_byte(&packet, VISCA_MEMORY_SET); _VISCA_append_byte(&packet, channel); return _VISCA_send_packet_with_reply(interface, camera, &packet);}unsigned intVISCA_memory_recall(VISCAInterface_t *interface, VISCACamera_t *camera, UInt8_t channel){ VISCAPacket_t packet; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_COMMAND); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_MEMORY); _VISCA_append_byte(&packet, VISCA_MEMORY_RECALL); _VISCA_append_byte(&packet, channel); return _VISCA_send_packet_with_reply(interface, camera, &packet);}unsigned intVISCA_memory_reset(VISCAInterface_t *interface, VISCACamera_t *camera, UInt8_t channel){ VISCAPacket_t packet; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_COMMAND); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_MEMORY); _VISCA_append_byte(&packet, VISCA_MEMORY_RESET); _VISCA_append_byte(&packet, channel); return _VISCA_send_packet_with_reply(interface, camera, &packet);}unsigned intVISCA_set_display(VISCAInterface_t *interface, VISCACamera_t *camera, UInt8_t power){ VISCAPacket_t packet; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_COMMAND); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_DISPLAY); _VISCA_append_byte(&packet, power); return _VISCA_send_packet_with_reply(interface, camera, &packet);}unsigned intVISCA_set_date_time(VISCAInterface_t *interface, VISCACamera_t *camera, unsigned int year, unsigned int month, unsigned int day, unsigned int hour, unsigned int minute){ VISCAPacket_t packet; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_COMMAND); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_DATE_TIME_SET); _VISCA_append_byte(&packet, year/10); _VISCA_append_byte(&packet, year-10*(year/10)); _VISCA_append_byte(&packet, month/10); _VISCA_append_byte(&packet, month-10*(month/10)); _VISCA_append_byte(&packet, day/10); _VISCA_append_byte(&packet, day-10*(day/10)); _VISCA_append_byte(&packet, hour/10); _VISCA_append_byte(&packet, hour-10*(hour/10)); _VISCA_append_byte(&packet, minute/10); _VISCA_append_byte(&packet, minute-10*(minute/10)); return _VISCA_send_packet_with_reply(interface, camera, &packet);}unsigned intVISCA_set_date_display(VISCAInterface_t *interface, VISCACamera_t *camera, UInt8_t power){ VISCAPacket_t packet; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_COMMAND); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_DATE_DISPLAY); _VISCA_append_byte(&packet, power); return _VISCA_send_packet_with_reply(interface, camera, &packet);}unsigned intVISCA_set_time_display(VISCAInterface_t *interface, VISCACamera_t *camera, UInt8_t power){ VISCAPacket_t packet; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_COMMAND); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_TIME_DISPLAY); _VISCA_append_byte(&packet, power); return _VISCA_send_packet_with_reply(interface, camera, &packet);}unsigned intVISCA_set_title_display(VISCAInterface_t *interface, VISCACamera_t *camera, UInt8_t power){ VISCAPacket_t packet; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_COMMAND); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_TITLE_DISPLAY); _VISCA_append_byte(&packet, power); return _VISCA_send_packet_with_reply(interface, camera, &packet);}unsigned intVISCA_set_title_clear(VISCAInterface_t *interface, VISCACamera_t *camera){ VISCAPacket_t packet; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_COMMAND); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_TITLE_DISPLAY); _VISCA_append_byte(&packet, VISCA_TITLE_DISPLAY_CLEAR); return _VISCA_send_packet_with_reply(interface, camera, &packet);}unsigned intVISCA_set_title_params(VISCAInterface_t *interface, VISCACamera_t *camera, VISCATitleData_t *title){ VISCAPacket_t packet; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_COMMAND); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_TITLE_SET); _VISCA_append_byte(&packet, VISCA_TITLE_SET_PARAMS); _VISCA_append_byte(&packet, title->vposition); _VISCA_append_byte(&packet, title->hposition); _VISCA_append_byte(&packet, title->color); _VISCA_append_byte(&packet, title->blink); _VISCA_append_byte(&packet, 0); _VISCA_append_byte(&packet, 0); _VISCA_append_byte(&packet, 0); _VISCA_append_byte(&packet, 0); _VISCA_append_byte(&packet, 0); _VISCA_append_byte(&packet, 0); return _VISCA_send_packet_with_reply(interface, camera, &packet);}unsigned intVISCA_set_title(VISCAInterface_t *interface, VISCACamera_t *camera, VISCATitleData_t *title){ VISCAPacket_t packet; int i, err=0; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_COMMAND); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_TITLE_SET); _VISCA_append_byte(&packet, VISCA_TITLE_SET_PART1); for (i=0;i<10;i++) _VISCA_append_byte(&packet, title->title[i]); err+=_VISCA_send_packet_with_reply(interface, camera, &packet); _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_COMMAND); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_TITLE_SET); _VISCA_append_byte(&packet, VISCA_TITLE_SET_PART2); for (i=0;i<10;i++) _VISCA_append_byte(&packet, title->title[i+10]); err+=_VISCA_send_packet_with_reply(interface, camera, &packet); return err;}/***********************************//* INQUIRY FUNCTIONS *//***********************************/unsigned intVISCA_get_power(VISCAInterface_t *interface, VISCACamera_t *camera, UInt8_t *power){ VISCAPacket_t packet; unsigned int err; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_INQUIRY); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_POWER); err=_VISCA_send_packet_with_reply(interface, camera, &packet); if (err!=VISCA_SUCCESS) return err; else { *power=interface->ibuf[2]; return VISCA_SUCCESS; }}unsigned intVISCA_get_dzoom(VISCAInterface_t *interface, VISCACamera_t *camera, UInt8_t *power){ VISCAPacket_t packet; unsigned int err; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_INQUIRY); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_DZOOM); err=_VISCA_send_packet_with_reply(interface, camera, &packet); if (err!=VISCA_SUCCESS) return err; else { *power=interface->ibuf[2]; return VISCA_SUCCESS; }}unsigned intVISCA_get_zoom_value(VISCAInterface_t *interface, VISCACamera_t *camera, UInt16_t *value){ VISCAPacket_t packet; unsigned int err; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_INQUIRY); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_ZOOM_VALUE); err=_VISCA_send_packet_with_reply(interface, camera, &packet); if (err!=VISCA_SUCCESS) return err; else { *value=(interface->ibuf[2]<<12)+(interface->ibuf[3]<<8)+(interface->ibuf[4]<<4)+interface->ibuf[5]; return VISCA_SUCCESS; }}unsigned intVISCA_get_focus_auto(VISCAInterface_t *interface, VISCACamera_t *camera, UInt8_t *power){ VISCAPacket_t packet; unsigned int err; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_INQUIRY); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_FOCUS_AUTO); err=_VISCA_send_packet_with_reply(interface, camera, &packet); if (err!=VISCA_SUCCESS) return err; else { *power=interface->ibuf[2]; return VISCA_SUCCESS; }}unsigned intVISCA_get_focus_value(VISCAInterface_t *interface, VISCACamera_t *camera, UInt16_t *value){ VISCAPacket_t packet; unsigned int err; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_INQUIRY); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_FOCUS_VALUE); err=_VISCA_send_packet_with_reply(interface, camera, &packet); if (err!=VISCA_SUCCESS) return err; else { *value=(interface->ibuf[2]<<12)+(interface->ibuf[3]<<8)+(interface->ibuf[4]<<4)+interface->ibuf[5]; return VISCA_SUCCESS; }}unsigned intVISCA_get_focus_auto_sense(VISCAInterface_t *interface, VISCACamera_t *camera, UInt8_t *mode){ VISCAPacket_t packet; unsigned int err; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_INQUIRY); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_FOCUS_AUTO_SENSE ); err=_VISCA_send_packet_with_reply(interface, camera, &packet); if (err!=VISCA_SUCCESS) return err; else { *mode=interface->ibuf[2]; return VISCA_SUCCESS; }}unsigned intVISCA_get_focus_near_limit(VISCAInterface_t *interface, VISCACamera_t *camera, UInt16_t *value){ VISCAPacket_t packet; unsigned int err; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_INQUIRY); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_FOCUS_NEAR_LIMIT); err=_VISCA_send_packet_with_reply(interface, camera, &packet); if (err!=VISCA_SUCCESS) return err; else { *value=(interface->ibuf[2]<<12)+(interface->ibuf[3]<<8)+(interface->ibuf[4]<<4)+interface->ibuf[5]; return VISCA_SUCCESS; }}unsigned intVISCA_get_whitebal_mode(VISCAInterface_t *interface, VISCACamera_t *camera, UInt8_t *mode){ VISCAPacket_t packet; unsigned int err; _VISCA_init_packet(&packet); _VISCA_append_byte(&packet, VISCA_INQUIRY); _VISCA_append_byte(&packet, VISCA_CATEGORY_CAMERA1); _VISCA_append_byte(&packet, VISCA_WB); err=_VISCA_send_packet_with_reply(interface, camera, &packet); if (err!=VISCA_SUCCESS) return err; else { *mode=interface->ibuf[2]; return VISCA_SUCCESS; }}unsigned intVISCA_get_rgain_value(VISCAInterface_t *interface, VISCACamera_t *camera, UInt16_t *value){
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -