Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Master al #8

Open
wants to merge 11 commits into
base: main
Choose a base branch
from
Open

Master al #8

wants to merge 11 commits into from

Conversation

alorbach
Copy link

@alorbach alorbach commented Oct 29, 2019

Made many changes to add support for more camera sensor properties, AsyncClient support (ESPAsyncWebServer) and much more. Feel free to use my branch, it's last rebase is from 2020-12-06.

  • added rgb888 format output.
  • Added more functions to set camera sensor properties
  1. Contrast
  2. Brightness
  3. Saturation
  4. SpecialEffect
  5. WbMode
  6. AeLevels
  7. AgcGain
  8. GainceilingSensor
  9. Gaincontrol
  10. Colorbar
  11. Whitebalance
  12. Quality
  13. Aec2
  14. AecValue
  15. AwbGainControl
  16. HMirror
  17. VFlip
  18. Frequence
  19. BPC
  20. WPC
  21. Denoise
  22. Lenc
  23. RawGMA
  24. AutoExposurecontrol
  25. Dcw

For now I will maintaine rebase support for my branch as long as possible.

Copy link
Owner

@yoursunny yoursunny left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My quality standards are quite high. If you are unable to address all comments, I can cleanup this code and merge, after you provide a link to a repository where AsyncTCP is used.

#endif
#if defined(ESP32)
# include <FreeRTOS.h>
# include <AsyncTCP.h>
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This means, this library won't compile when AsyncTCP library is not installed.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AsyncTCP is part of Espressif arduino-esp32 (https://github.com/espressif/arduino-esp32/), so it will be there. AsyncTCP is the base class used by ESPAsyncWebServer (https://github.com/me-no-dev/ESPAsyncWebServer) which is much faster / better than default espressif WebServer.

Copy link
Author

@alorbach alorbach Oct 30, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does the library makes sense to be compiled for ESP8266 at all? If not the code can be reduced to just

# include <FreeRTOS.h>
# include <AsyncTCP.h>

I am using your library in a project that compiles on ESP8266 and EPS32, thats where I copied the include code from.

@@ -46,17 +55,18 @@ class Frame
* \retval true writing completed.
* \retval false writing disrupted by timeout.
*/
bool
writeTo(Print& os, int timeout = 10000);
bool writeTo(Print& os, int timeout = 10000);
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do not change code style.
I use the NDN style: https://named-data.net/doc/ndn-cxx/current/code-style.html

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed with commit -a -amend

@@ -29,6 +29,103 @@ class CameraClass
bool
changeResolution(const Resolution& resolution, int sleepFor = 500);

/**
* must be -2 to +2, default 0
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't proper Doxygen syntax.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed with commit -a -amend, please verify if it is correct now - have not used doxygen yet

@alorbach alorbach force-pushed the master-al branch 3 times, most recently from 7f217b3 to ac8a23e Compare October 30, 2019 07:05
@alorbach
Copy link
Author

have you confirmed the changes I made ?

@yoursunny yoursunny mentioned this pull request Dec 30, 2019
Copy link
Owner

@yoursunny yoursunny left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code lacks examples. The async functionality needs to have examples to demonstrate how it works.
#9 (comment)

- Add function to change frequence
- Add function to overwrite frame data buffer which
  I need to convert JPG to BMP using PSRAM!
- white pixel correction
- black pixel correction
- denoise control
- lens correction
- raw gamma
- changeFrequence of Cam Sensor from 10 to 20 mhz
- AutoExposurecontrol
- Dcw
- AsyncClient: Handle Client Disconnect from Outside
- fix merge conflicts
@alorbach
Copy link
Author

alorbach commented Dec 3, 2020

I will keep my branch rebased on your master as long as possible.
When I get the time to create some samples, I will amend them to my branch here.
Right now I am just to busy doing them.

In order to get more details on API failure reason, the return error
code needs to be stored and evaluated.
Use bAbort flag to cancel streaming from outside task
Base automatically changed from master to main February 27, 2021 02:55
* \param iEnable must be 0(disable) or 1 (enable)
*/
bool
changAutoExposurecontrol(int iEnable);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some drive-by comments while I was looking at OV2640 libraries...

There are a bunch of methods named chang.... I think you mean change...

bool
changDenoise(int iEnable);

/** \brief Enable/Disable Lenc Correction
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is Lenc correction?

Copy link
Author

@alorbach alorbach Jun 12, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some questions will be answered here:
https://github.com/espressif/esp32-camera/blob/e689c3b082985ee7b90198be32d330ce51ac5367/sensors/ov2640.c

And some you need to research in ov2640 sensor doc (Or whatever sensor you have)
https://www.uctronics.com/download/cam_module/OV2640DS.pdf

I remember the lenc and rawgma had big impact on how low light is being handeled.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

* \param iEnable must be 0(disable) or 1 (enable)
*/
bool
changRawGMA(int iEnable);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changeRawGamma?

bool
changRawGMA(int iEnable);

/** \brief Enable/Disable DCW
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is DCW?

* \param iGainCeiling must be between GAINCEILING_2X and GAINCEILING_128X
*/
bool
changGainceilingSensor(int iGainCeiling);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't that be changeGainCeilingSensor to match the iGainCeiling parameter?

Can GAINCEILING_nX be any integer between 2 and 128, in which case shouldn't it just be an integer? If it's an enum, change the parameter description to reference the enum?

And maybe drop Sensor entirely? Having sensor in the name is either redundant because it's implicit that you're manipulating some of the sensor settings, or it's wrong because it suggests that there is some kind of a sensor that measures something about the gain, like there might be temperature sensor.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Possible that some settings did not work at all.
I wanted to have as many sensor options available for testing as possible,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants