summaryrefslogtreecommitdiff
path: root/2003/i/buzz/src/camera/camera.cc
diff options
context:
space:
mode:
Diffstat (limited to '2003/i/buzz/src/camera/camera.cc')
-rw-r--r--2003/i/buzz/src/camera/camera.cc38
1 files changed, 31 insertions, 7 deletions
diff --git a/2003/i/buzz/src/camera/camera.cc b/2003/i/buzz/src/camera/camera.cc
index 3982c7e..e9a7f60 100644
--- a/2003/i/buzz/src/camera/camera.cc
+++ b/2003/i/buzz/src/camera/camera.cc
@@ -9,6 +9,8 @@
#include <fcntl.h>
#include <unistd.h>
#include <iostream> // Debug.
+#include <iomanip> //
+#include <fstream>
#define CAM_FILE "/dev/robotcam"
@@ -20,14 +22,36 @@ Camera::Camera ()
if (m_fd == -1)
throw ErreurFatale ("Impossible d'ouvrir le périphérique de la"
" camera.\n");
+ // Paramètre la camera.
+ sccb_io param;
+ ifstream rc ("rc/camera");
+ int addr, data;
+ while (!rc.eof ())
+ {
+ rc >> hex >> addr >> hex >> data;
+ if (rc.good ())
+ {
+ param.addr = addr; param.data = data;
+ cout << "camera sccbwrite 0x" << hex << addr << " 0x" << data <<
+ endl;
+ ioctl (m_fd, CAM_SCCBWRITE, &param);
+ }
+ }
+ // Affiche les paramètres.
+ cout << hex << "camera sccbdump";
+ for (addr = 0; addr < 0x50; ++addr)
+ {
+ if (!(addr % 16)) cout << endl;
+ param.addr = addr;
+ ioctl (m_fd, CAM_SCCBREAD, &param);
+ data = param.data;
+ cout << setw (2) << setfill ('0') << data << ' ';
+
+ }
+ cout << endl << dec;
// Paramètre la taille de frame.
- m_frameSize = m_w * m_h;
- ioctl (m_fd, CAM_SETFRAMESIZE, m_frameSize);
- // Lance le dma ?
- unsigned int image;
- ::read (m_fd, &image, 0);
- char t;
- cin >> t;
+ m_frameSize = m_w * m_h * 3;
+ ioctl (m_fd, CAM_SETFRAMESIZE, &m_frameSize);
}
// Destructeur.