Skip to content
Snippets Groups Projects
Commit cd54657f authored by JanBdot's avatar JanBdot
Browse files

wip: take single picture

parent 8eb4d441
Branches
No related tags found
No related merge requests found
Showing
with 142 additions and 86 deletions
#include "camera-controller.h"
#include<qdebug.h>
#include "camera.cpp"
#include "camera.h"
using namespace std;
......@@ -30,7 +30,7 @@ bool cameraController::initCamera()
try {
cout << "Init camera..." << endl;
camera cameraInstance; //create instance, assuming it has default constructor!
camera cameraInstance = camera(); //create instance, assuming it has default constructor!
cameraInstance.run();
}
catch (CGalaxyException& e)
......
......@@ -2,15 +2,21 @@
#include<QWidget>
#include<QImage>
#include<QObject>
#include "camera.h"
//#include<CSampleCaptureEventHandler.h>
using namespace std;
class camera : public ICaptureEventHandler
{
public:
void DoOnImageCaptured(CImageDataPointer& objImageDataPointer, void* pUserParam) // Callback function processing
camera::camera() {
}
camera::~camera() {
}
void camera::DoOnImageCaptured(CImageDataPointer& objImageDataPointer, void* pUserParam) // Callback function processing
{
cout << "Bild erhalten" << endl;
cout << "ImageInfo: " << objImageDataPointer->GetStatus() << endl;
......@@ -21,7 +27,7 @@ public:
bool run()
bool camera::run()
{
cout << "Run code reached..." << endl;
// Declare event callback object pointer
......@@ -47,42 +53,97 @@ public:
}
// Abre el primer dispositivo y la primera secuencia debajo del dispositivo
CGXDevicePointer ObjDevicePtr =
IGXFactory::GetInstance().OpenDeviceBySN(vectorDeviceInfo[0].GetSN(), GX_ACCESS_EXCLUSIVE);
CGXStreamPointer ObjStreamPtr = ObjDevicePtr->OpenStream(0);
CGXDevicePointer objDevicePtr;
GxIAPICPP::gxstring strSN = vectorDeviceInfo[0].GetSN();
objDevicePtr = IGXFactory::GetInstance().OpenDeviceBySN(strSN, GX_ACCESS_EXCLUSIVE);
uint32_t nStreamNum = objDevicePtr->GetStreamCount();
if (nStreamNum > 0)
{
CGXStreamPointer objStreamPtr = objDevicePtr->OpenStream(0);
/*Stream object control or acquisition.*/
// Abrufen des Remotegerteattributtreibers
CGXFeatureControlPointer ObjFeatureControlPtr = ObjDevicePtr->GetRemoteFeatureControl();
CGXFeatureControlPointer ObjFeatureControlPtr = objDevicePtr->GetRemoteFeatureControl();
/*
ObjFeatureControlPtr->GetEnumFeature("TriggerMode")->SetValue("On");
ObjFeatureControlPtr->GetEnumFeature("TriggerSource")->SetValue("Line0");
ObjFeatureControlPtr->GetEnumFeature("TriggerActivation")->SetValue("RisingEdge");
ObjFeatureControlPtr->GetFloatFeature("TriggerDelay")->SetValue(500000);
ObjFeatureControlPtr->GetFloatFeature("TriggerFilterRaisingEdge")->SetValue(5000);
*/
/*Improve the acquisition performance of the network camera
[currently only the Gigabit network camera supports the optimal packet length]*/
GX_DEVICE_CLASS_LIST objDeviceClass = objDevicePtr->GetDeviceInfo().GetDeviceClass();
if (GX_DEVICE_CLASS_U3V == objDeviceClass)
{
/*Determine whether the device supports the stream channel packet function.*/
if (true == ObjFeatureControlPtr->IsImplemented("GevSCPSPacketSize"))
{
/*Get the optimal packet length value of the current network environment*/
int nPacketSize = objStreamPtr->GetOptimalPacketSize();
/*Set the optimal packet length value to the stream channel packet length of
the current device.*/
ObjFeatureControlPtr->GetIntFeature("GevSCPSPacketSize")->SetValue(nPacketSize);
}
}
// Callback Collection registrieren
pCaptureEventHandler = new camera();
ObjStreamPtr->RegisterCaptureCallback(pCaptureEventHandler, NULL);
//pCaptureEventHandler = new camera();
//ObjStreamPtr->RegisterCaptureCallback(pCaptureEventHandler, NULL);
// Senden von Miningbefehlen
ObjStreamPtr->StartGrab();
objStreamPtr->StartGrab();
ObjFeatureControlPtr->GetCommandFeature("AcquisitionStart")->Execute();
cout << "Sleep started!" << endl;
Sleep(10000);
cout << "Sleep ended!" << endl;
CImageDataPointer objImageDataPtr;
objImageDataPtr = objStreamPtr->GetImage(500);/* Set timeout is 500ms, users can set the value by themselves.*/
if (objImageDataPtr->GetStatus() == GX_FRAME_STATUS_SUCCESS)
{
cout << "Bild erhalten!" << endl;
cout << "ImageInfo: " << objImageDataPtr->GetStatus() << endl;
cout << "ImageInfo: " << objImageDataPtr->GetWidth() << endl;
cout << "ImageInfo: " << objImageDataPtr->GetHeight() << endl;
cout << "ImageInfo: " << objImageDataPtr->GetPayloadSize() << endl;
void* pRGB24Buffer = NULL;
// Angenommen, die Originaldaten sind ein BayerRG8-Bild
pRGB24Buffer = objImageDataPtr->ConvertToRGB24(GX_BIT_0_7, GX_RAW2RGB_NEIGHBOUR, true);
QImage* image = new QImage(objImageDataPtr->GetWidth(), objImageDataPtr->GetHeight(), QImage::Format_ARGB32);
}
//cout << "Sleep started!" << endl;
//Sleep(10000);
//cout << "Sleep ended!" << endl;
//Befehl "Miningstopp senden"
ObjFeatureControlPtr->GetCommandFeature("AcquisitionStop")->Execute();
ObjFeatureControlPtr->GetEnumFeature("TriggerMode")->SetValue("Off");
ObjStreamPtr->StopGrab();
objStreamPtr->StopGrab();
//Rckruf beim Abmelden der Sammlung
ObjStreamPtr->UnregisterCaptureCallback();
objStreamPtr->UnregisterCaptureCallback();
//Ressourcen freisetzen
ObjStreamPtr->Close();
ObjDevicePtr->Close();
objStreamPtr->Close();
}
objDevicePtr->Close();
//Deinitialisieren der Bibliothek
IGXFactory::GetInstance().Uninit();
......@@ -96,5 +157,3 @@ public:
return true;
}
\ No newline at end of file
};
\ No newline at end of file
#pragma once
class camera : ICaptureEventHandler
{
public:
camera();
~camera();
void DoOnImageCaptured(CImageDataPointer& objImageDataPointer, void* pUserParam);
bool run();
};
\ No newline at end of file
......@@ -12,8 +12,8 @@ int main(int argc, char *argv[])
{
QApplication a(argc, argv);
materialscanner w;
lightsController lights = lightsController::lightsController();
cameraController camera = cameraController::cameraController();
lightsController lightsController = lightsController::lightsController();
cameraController cameraController = cameraController::cameraController();
//string address = "./image/9demo.bmp";
//cv::Mat src = cv::imread(address);
......
......@@ -128,6 +128,7 @@
<None Include="materialscanner.ico" />
<ResourceCompile Include="materialscanner.rc" />
<ClInclude Include="camera-controller.h" />
<ClInclude Include="camera.h" />
<ClInclude Include="lights-controller.h" />
<ClInclude Include="stdafx.h" />
<ClCompile Include="stdafx.cpp">
......
......@@ -69,5 +69,8 @@
<ClInclude Include="lights-controller.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="camera.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>
\ No newline at end of file
......@@ -2,9 +2,9 @@
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<QtLastBackgroundBuild>2022-04-13T12:53:33.4948721Z</QtLastBackgroundBuild>
<QtLastBackgroundBuild>2022-04-20T07:56:11.9902122Z</QtLastBackgroundBuild>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<QtLastBackgroundBuild>2022-04-13T12:53:34.1666211Z</QtLastBackgroundBuild>
<QtLastBackgroundBuild>2022-04-20T07:56:13.6088372Z</QtLastBackgroundBuild>
</PropertyGroup>
</Project>
\ No newline at end of file
 Reading Qt configuration (D:/Qt/6.2.4/msvc2019_64/bin/qmake)
moc materialscanner.h
stdafx.cpp
camera-controller.cpp
 Reading Qt configuration (C:/Qt/6.2.4/msvc2019_64/bin/qmake)
camera.cpp
lights-controller.cpp
materialscanner.cpp
main.cpp
D:\Dokumente\GitHub\MaterialscannerGUI\materialscanner-qt\materialscanner\camera.cpp(1,1): warning C4828: Die Datei enthält ein Zeichen, das bei Offset 0x764 beginnt. Dieses Zeichen ist im aktuellen Quellzeichensatz (Codepage 65001) unzulässig.
D:\Dokumente\GitHub\MaterialscannerGUI\materialscanner-qt\materialscanner\camera.cpp(1,1): warning C4828: Die Datei enthält ein Zeichen, das bei Offset 0xc19 beginnt. Dieses Zeichen ist im aktuellen Quellzeichensatz (Codepage 65001) unzulässig.
D:\Dokumente\GitHub\MaterialscannerGUI\materialscanner-qt\materialscanner\camera.cpp(1,1): warning C4828: Die Datei enthält ein Zeichen, das bei Offset 0xd34 beginnt. Dieses Zeichen ist im aktuellen Quellzeichensatz (Codepage 65001) unzulässig.
D:\Dokumente\GitHub\MaterialscannerGUI\materialscanner-qt\materialscanner\camera.cpp(1,1): warning C4828: Die Datei enthält ein Zeichen, das bei Offset 0xd45 beginnt. Dieses Zeichen ist im aktuellen Quellzeichensatz (Codepage 65001) unzulässig.
D:\Dokumente\GitHub\MaterialscannerGUI\materialscanner-qt\libs\mqtt\paho-cpp\include\mqtt\client.h(71,8): warning C4834: Der Rückgabewert einer Funktion mit dem "nodiscard"-Attribut wird verworfen. (Quelldatei wird kompiliert lights-controller.cpp)
D:\Dokumente\GitHub\MaterialscannerGUI\materialscanner-qt\libs\mqtt\paho-cpp\include\mqtt\client.h(74,8): warning C4834: Der Rückgabewert einer Funktion mit dem "nodiscard"-Attribut wird verworfen. (Quelldatei wird kompiliert lights-controller.cpp)
D:\Dokumente\GitHub\MaterialscannerGUI\materialscanner-qt\libs\mqtt\paho-cpp\include\mqtt\client.h(81,8): warning C4834: Der Rückgabewert einer Funktion mit dem "nodiscard"-Attribut wird verworfen. (Quelldatei wird kompiliert lights-controller.cpp)
D:\Dokumente\GitHub\MaterialscannerGUI\materialscanner-qt\materialscanner\camera.cpp(1,1): warning C4828: Die Datei enthält ein Zeichen, das bei Offset 0x764 beginnt. Dieses Zeichen ist im aktuellen Quellzeichensatz (Codepage 65001) unzulässig. (Quelldatei wird kompiliert camera-controller.cpp)
D:\Dokumente\GitHub\MaterialscannerGUI\materialscanner-qt\materialscanner\camera.cpp(1,1): warning C4828: Die Datei enthält ein Zeichen, das bei Offset 0xc19 beginnt. Dieses Zeichen ist im aktuellen Quellzeichensatz (Codepage 65001) unzulässig. (Quelldatei wird kompiliert camera-controller.cpp)
D:\Dokumente\GitHub\MaterialscannerGUI\materialscanner-qt\materialscanner\camera.cpp(1,1): warning C4828: Die Datei enthält ein Zeichen, das bei Offset 0xd34 beginnt. Dieses Zeichen ist im aktuellen Quellzeichensatz (Codepage 65001) unzulässig. (Quelldatei wird kompiliert camera-controller.cpp)
D:\Dokumente\GitHub\MaterialscannerGUI\materialscanner-qt\materialscanner\camera.cpp(1,1): warning C4828: Die Datei enthält ein Zeichen, das bei Offset 0xd45 beginnt. Dieses Zeichen ist im aktuellen Quellzeichensatz (Codepage 65001) unzulässig. (Quelldatei wird kompiliert camera-controller.cpp)
D:\Dokumente\GitHub\MaterialscannerGUI\materialscanner-qt\libs\mqtt\paho-cpp\include\mqtt\client.h(71,8): warning C4834: Der Rückgabewert einer Funktion mit dem "nodiscard"-Attribut wird verworfen. (Quelldatei wird kompiliert main.cpp)
D:\Dokumente\GitHub\MaterialscannerGUI\materialscanner-qt\libs\mqtt\paho-cpp\include\mqtt\client.h(74,8): warning C4834: Der Rückgabewert einer Funktion mit dem "nodiscard"-Attribut wird verworfen. (Quelldatei wird kompiliert main.cpp)
D:\Dokumente\GitHub\MaterialscannerGUI\materialscanner-qt\libs\mqtt\paho-cpp\include\mqtt\client.h(81,8): warning C4834: Der Rückgabewert einer Funktion mit dem "nodiscard"-Attribut wird verworfen. (Quelldatei wird kompiliert main.cpp)
qrc_materialscanner.cpp
moc_materialscanner.cpp
materialscanner.vcxproj -> D:\Dokumente\GitHub\MaterialscannerGUI\materialscanner-qt\x64\Debug\materialscanner.exe
C:\dev\materialscanner\materialscanner-qt\materialscanner\camera.cpp(1,1): warning C4828: The file contains a character starting at offset 0x807 that is illegal in the current source character set (codepage 65001).
C:\dev\materialscanner\materialscanner-qt\materialscanner\camera.cpp(1,1): warning C4828: The file contains a character starting at offset 0x1320 that is illegal in the current source character set (codepage 65001).
C:\dev\materialscanner\materialscanner-qt\materialscanner\camera.cpp(1,1): warning C4828: The file contains a character starting at offset 0x143e that is illegal in the current source character set (codepage 65001).
C:\dev\materialscanner\materialscanner-qt\materialscanner\camera.cpp(1,1): warning C4828: The file contains a character starting at offset 0x144f that is illegal in the current source character set (codepage 65001).
materialscanner.vcxproj -> C:\dev\materialscanner\materialscanner-qt\x64\Debug\materialscanner.exe
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
#TargetFrameworkVersion=v4.0:PlatformToolSet=v142:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0
Debug|x64|D:\Dokumente\GitHub\MaterialscannerGUI\materialscanner-qt\|
PlatformToolSet=v142:VCToolArchitecture=Native32Bit:VCToolsVersion=14.29.30133:VCServicingVersionCrtHeaders=14.29.30136:TargetPlatformVersion=10.0.19041.0:
Debug|x64|C:\dev\materialscanner\materialscanner-qt\|
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment