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 "camera-controller.h"
#include<qdebug.h> #include<qdebug.h>
#include "camera.cpp" #include "camera.h"
using namespace std; using namespace std;
...@@ -30,7 +30,7 @@ bool cameraController::initCamera() ...@@ -30,7 +30,7 @@ bool cameraController::initCamera()
try { try {
cout << "Init camera..." << endl; 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(); cameraInstance.run();
} }
catch (CGalaxyException& e) catch (CGalaxyException& e)
......
...@@ -2,15 +2,21 @@ ...@@ -2,15 +2,21 @@
#include<QWidget> #include<QWidget>
#include<QImage> #include<QImage>
#include<QObject> #include<QObject>
#include "camera.h"
//#include<CSampleCaptureEventHandler.h> //#include<CSampleCaptureEventHandler.h>
using namespace std; using namespace std;
class camera : public ICaptureEventHandler camera::camera() {
{
public: }
void DoOnImageCaptured(CImageDataPointer& objImageDataPointer, void* pUserParam) // Callback function processing
camera::~camera() {
}
void camera::DoOnImageCaptured(CImageDataPointer& objImageDataPointer, void* pUserParam) // Callback function processing
{ {
cout << "Bild erhalten" << endl; cout << "Bild erhalten" << endl;
cout << "ImageInfo: " << objImageDataPointer->GetStatus() << endl; cout << "ImageInfo: " << objImageDataPointer->GetStatus() << endl;
...@@ -21,7 +27,7 @@ public: ...@@ -21,7 +27,7 @@ public:
bool run() bool camera::run()
{ {
cout << "Run code reached..." << endl; cout << "Run code reached..." << endl;
// Declare event callback object pointer // Declare event callback object pointer
...@@ -47,42 +53,97 @@ public: ...@@ -47,42 +53,97 @@ public:
} }
// Abre el primer dispositivo y la primera secuencia debajo del dispositivo // Abre el primer dispositivo y la primera secuencia debajo del dispositivo
CGXDevicePointer ObjDevicePtr = CGXDevicePointer objDevicePtr;
IGXFactory::GetInstance().OpenDeviceBySN(vectorDeviceInfo[0].GetSN(), GX_ACCESS_EXCLUSIVE);
CGXStreamPointer ObjStreamPtr = ObjDevicePtr->OpenStream(0); 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 // Abrufen des Remotegerteattributtreibers
CGXFeatureControlPointer ObjFeatureControlPtr = ObjDevicePtr->GetRemoteFeatureControl(); CGXFeatureControlPointer ObjFeatureControlPtr = objDevicePtr->GetRemoteFeatureControl();
/*
ObjFeatureControlPtr->GetEnumFeature("TriggerMode")->SetValue("On"); ObjFeatureControlPtr->GetEnumFeature("TriggerMode")->SetValue("On");
ObjFeatureControlPtr->GetEnumFeature("TriggerSource")->SetValue("Line0"); ObjFeatureControlPtr->GetEnumFeature("TriggerSource")->SetValue("Line0");
ObjFeatureControlPtr->GetEnumFeature("TriggerActivation")->SetValue("RisingEdge"); ObjFeatureControlPtr->GetEnumFeature("TriggerActivation")->SetValue("RisingEdge");
ObjFeatureControlPtr->GetFloatFeature("TriggerDelay")->SetValue(500000); ObjFeatureControlPtr->GetFloatFeature("TriggerDelay")->SetValue(500000);
ObjFeatureControlPtr->GetFloatFeature("TriggerFilterRaisingEdge")->SetValue(5000); 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 // Callback Collection registrieren
pCaptureEventHandler = new camera(); //pCaptureEventHandler = new camera();
ObjStreamPtr->RegisterCaptureCallback(pCaptureEventHandler, NULL); //ObjStreamPtr->RegisterCaptureCallback(pCaptureEventHandler, NULL);
// Senden von Miningbefehlen // Senden von Miningbefehlen
ObjStreamPtr->StartGrab(); objStreamPtr->StartGrab();
ObjFeatureControlPtr->GetCommandFeature("AcquisitionStart")->Execute(); ObjFeatureControlPtr->GetCommandFeature("AcquisitionStart")->Execute();
cout << "Sleep started!" << endl; CImageDataPointer objImageDataPtr;
Sleep(10000);
cout << "Sleep ended!" << endl; 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" //Befehl "Miningstopp senden"
ObjFeatureControlPtr->GetCommandFeature("AcquisitionStop")->Execute(); ObjFeatureControlPtr->GetCommandFeature("AcquisitionStop")->Execute();
ObjFeatureControlPtr->GetEnumFeature("TriggerMode")->SetValue("Off"); ObjFeatureControlPtr->GetEnumFeature("TriggerMode")->SetValue("Off");
ObjStreamPtr->StopGrab(); objStreamPtr->StopGrab();
//Rckruf beim Abmelden der Sammlung //Rckruf beim Abmelden der Sammlung
ObjStreamPtr->UnregisterCaptureCallback(); objStreamPtr->UnregisterCaptureCallback();
//Ressourcen freisetzen //Ressourcen freisetzen
ObjStreamPtr->Close(); objStreamPtr->Close();
ObjDevicePtr->Close(); }
objDevicePtr->Close();
//Deinitialisieren der Bibliothek //Deinitialisieren der Bibliothek
IGXFactory::GetInstance().Uninit(); IGXFactory::GetInstance().Uninit();
...@@ -96,5 +157,3 @@ public: ...@@ -96,5 +157,3 @@ public:
return true; 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[]) ...@@ -12,8 +12,8 @@ int main(int argc, char *argv[])
{ {
QApplication a(argc, argv); QApplication a(argc, argv);
materialscanner w; materialscanner w;
lightsController lights = lightsController::lightsController(); lightsController lightsController = lightsController::lightsController();
cameraController camera = cameraController::cameraController(); cameraController cameraController = cameraController::cameraController();
//string address = "./image/9demo.bmp"; //string address = "./image/9demo.bmp";
//cv::Mat src = cv::imread(address); //cv::Mat src = cv::imread(address);
......
...@@ -128,6 +128,7 @@ ...@@ -128,6 +128,7 @@
<None Include="materialscanner.ico" /> <None Include="materialscanner.ico" />
<ResourceCompile Include="materialscanner.rc" /> <ResourceCompile Include="materialscanner.rc" />
<ClInclude Include="camera-controller.h" /> <ClInclude Include="camera-controller.h" />
<ClInclude Include="camera.h" />
<ClInclude Include="lights-controller.h" /> <ClInclude Include="lights-controller.h" />
<ClInclude Include="stdafx.h" /> <ClInclude Include="stdafx.h" />
<ClCompile Include="stdafx.cpp"> <ClCompile Include="stdafx.cpp">
......
...@@ -69,5 +69,8 @@ ...@@ -69,5 +69,8 @@
<ClInclude Include="lights-controller.h"> <ClInclude Include="lights-controller.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="camera.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
</Project> </Project>
\ No newline at end of file
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup /> <PropertyGroup />
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <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>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <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> </PropertyGroup>
</Project> </Project>
\ No newline at end of file
 Reading Qt configuration (D:/Qt/6.2.4/msvc2019_64/bin/qmake)  Reading Qt configuration (C:/Qt/6.2.4/msvc2019_64/bin/qmake)
moc materialscanner.h
stdafx.cpp
camera-controller.cpp
camera.cpp camera.cpp
lights-controller.cpp 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).
materialscanner.cpp 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).
main.cpp 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).
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. 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).
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. materialscanner.vcxproj -> C:\dev\materialscanner\materialscanner-qt\x64\Debug\materialscanner.exe
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
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 PlatformToolSet=v142:VCToolArchitecture=Native32Bit:VCToolsVersion=14.29.30133:VCServicingVersionCrtHeaders=14.29.30136:TargetPlatformVersion=10.0.19041.0:
Debug|x64|D:\Dokumente\GitHub\MaterialscannerGUI\materialscanner-qt\| 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