From 72e5e493f10e8cd8fae71c1c66f257fddb2d50ae Mon Sep 17 00:00:00 2001 From: Jarkko Makivaara Date: Mon, 18 Jun 2018 19:48:19 +0300 Subject: [PATCH] Added a few new features. With this you can control camera preferences: brightness, contrast, hue, saturation and offcontrast. --- Adafruit_VC0706.cpp | 23 +++++++++++++++++++++++ Adafruit_VC0706.h | 5 +++++ 2 files changed, 28 insertions(+) diff --git a/Adafruit_VC0706.cpp b/Adafruit_VC0706.cpp index 4864808..ecd045f 100644 --- a/Adafruit_VC0706.cpp +++ b/Adafruit_VC0706.cpp @@ -248,6 +248,29 @@ uint8_t Adafruit_VC0706::getCompression(void) { return camerabuff[5]; } +boolean Adafruit_VC0706::setBrightness(uint8_t c) { + uint8_t args[] = {0x5, 0x1, 0x1, 0x1A, 0x10, c}; + return runCommand(VC0706_WRITE_DATA, args, sizeof(args), 5); +} + +boolean Adafruit_VC0706::setContrast(uint8_t c) { + uint8_t args[] = {0x5, 0x1, 0x1, 0x1A, 0x11, c}; + return runCommand(VC0706_WRITE_DATA, args, sizeof(args), 5); +} + +boolean Adafruit_VC0706::setHue(uint8_t c) { + uint8_t args[] = {0x5, 0x1, 0x1, 0x1A, 0x14, c}; + return runCommand(VC0706_WRITE_DATA, args, sizeof(args), 5); +} +boolean Adafruit_VC0706::setSaturation(uint8_t c) { + uint8_t args[] = {0x5, 0x1, 0x1, 0x1A, 0x15, c}; + return runCommand(VC0706_WRITE_DATA, args, sizeof(args), 5); +} +boolean Adafruit_VC0706::setOffContrast(uint8_t c) { + uint8_t args[] = {0x5, 0x1, 0x1, 0x1A, 0x12, c}; + return runCommand(VC0706_WRITE_DATA, args, sizeof(args), 5); +} + boolean Adafruit_VC0706::setPTZ(uint16_t wz, uint16_t hz, uint16_t pan, uint16_t tilt) { uint8_t args[] = {0x08, wz >> 8, wz, hz >> 8, wz, diff --git a/Adafruit_VC0706.h b/Adafruit_VC0706.h index 6c3c158..87718c1 100644 --- a/Adafruit_VC0706.h +++ b/Adafruit_VC0706.h @@ -95,6 +95,11 @@ class Adafruit_VC0706 { boolean cameraFrameBuffCtrl(uint8_t command); uint8_t getCompression(); boolean setCompression(uint8_t c); + boolean setBrightness(uint8_t c); + boolean setContrast(uint8_t c); + boolean setHue(uint8_t c); + boolean setSaturation(uint8_t c); + boolean setOffContrast(uint8_t c); boolean getPTZ(uint16_t &w, uint16_t &h, uint16_t &wz, uint16_t &hz, uint16_t &pan, uint16_t &tilt); boolean setPTZ(uint16_t wz, uint16_t hz, uint16_t pan, uint16_t tilt);