Visual studio 2010 c++ communicate with zigbee
Visual studio 2010 c++ communicate with zigbee
我目前正在尝试处理图像并检测圆圈,并通过zigbee向地面基地发送一些协议。我研究了一下,试了试我发现的,但没有一个有效。
下面是我试过的代码:
#ifdef __BORLANDC__
#pragma hdrstop // borland specific
#include <condefs.h>
#pragma argsused
USEUNIT("Tserial.cpp");
#endif
#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <c:OpenCV243includeopencvcv.h>
#include <c:OpenCV243includeopencvhighgui.h>
#include <math.h>
#include "Tserial.h"
#include <iostream>
using namespace std;
using namespace cv;
int zigbee_command;
Tserial *zigbee_com;
unsigned char protocol = 0;
int main( int argc, char **argv )
{
CvCapture *capture = 0;
IplImage *img = 0;
int key = 0;
int px;
int py;
CvFont font;
cvInitFont(&font, CV_FONT_HERSHEY_PLAIN,1.0,1.0,0,1,CV_AA);
#pragma region find_camera
capture = cvCaptureFromCAM( 0 );
#pragma endregion
#pragma region detect_image
if ( !capture ) {
fprintf( stderr, "Cannot open initialize webcam!n" );
return 1;
}
#pragma endregion
cvNamedWindow( "result", CV_WINDOW_AUTOSIZE );
#pragma region serial
// // serial to zigbee setup
zigbee_com = new Tserial();
if (zigbee_com!=0) {
zigbee_com->connect("COM5", 9600, spNONE); }
//// serial to zigbee setup
#pragma endregion
img = cvQueryFrame( capture );
if (!img)
exit(1);
IplImage* gray = cvCreateImage( cvGetSize(img), 8, 1 );
CvMemStorage* storage = cvCreateMemStorage(0);
while( key != 'q' ) {
img = cvQueryFrame( capture );
if( !img ) break;
cvCvtColor( img, gray, CV_BGR2GRAY );
cvSmooth( gray, gray, CV_GAUSSIAN, 9, 9 );
CvSeq* circles = cvHoughCircles( gray, storage, CV_HOUGH_GRADIENT, 2, gray->height/4, 200, 100, 20, 100 );
int i;
for( i = 0; i < circles->total; i++ )
{
float* p = (float*)cvGetSeqElem( circles, i );
cvCircle( img, cvPoint(cvRound(p[0]),cvRound(p[1])), cvRound(p[2]), CV_RGB(0,0,255), 2, 8, 0 );
cvLine (img, cvPoint(cvRound(p[0]+40),cvRound(p[1])), cvPoint(cvRound(p[0]),cvRound(p[1])), CV_RGB(0,255,0), 1, CV_AA,0);
cvLine (img, cvPoint(cvRound(p[0]),cvRound(p[1]+40)), cvPoint(cvRound(p[0]),cvRound(p[1])), CV_RGB(0,255,0), 1, CV_AA,0);
cvLine (img, cvPoint(cvRound(p[0]-40),cvRound(p[1])), cvPoint(cvRound(p[0]),cvRound(p[1])), CV_RGB(0,255,0), 1, CV_AA,0);
cvLine (img, cvPoint(cvRound(p[0]),cvRound(p[1]-40)), cvPoint(cvRound(p[0]),cvRound(p[1])), CV_RGB(0,255,0), 1, CV_AA,0);
px=cvRound(p[0]);
py=cvRound(p[1]);
if((px < 330 && px > 320) && (py > 230 && py < 250))
{
cvPutText(img, "CENTER",cvPoint(cvRound(p[0]+45),cvRound(p[1]+45)), &font, CV_RGB(0,0,255));
protocol = 'okie';
zigbee_com->sendChar(protocol);
}
// displays coordinates of circle's center
cout <<"(x,y) -> ("<<px<<","<<py<<")"<<endl;
}
cvShowImage( "result", img );
key = cvWaitKey( 1 );
}
cvDestroyWindow( "result" );
cvReleaseCapture( &capture );
return 0;
}
串行源来自:http://www.tetraedre.com/advanced/serial/
错误:
1祝辞DetectCircle。LNK2019:未解析的外部符号public: void __cdecl Tserial::sendChar(char)"(?sendChar@Tserial@@QEAAXD@Z)在函数main
中引用1祝辞DetectCircle。LNK2019:未解析的外部符号public: int __cdecl Tserial::connect(char *,int,enum serial_parity)"(?connect@Tserial@@QEAAHPEADHW4serial_parity@@@Z)中引用主要功能>
1祝辞DetectCircle。LNK2019:未解析的外部符号public: __cdecl Tserial::Tserial(void)"(? ? 0 tserial@@qeaa@xz)参考函数main 1>C:UsersStevenDocumentsVisual Studio2010Projectsmynewprojectx64Debugmynewproject.exe:致命错误LNK1120: 3个未解决的外部
这些是链接器错误,因为当实现该类的Tserial.cpp被复制到同一目录时,编译器不知道它们。你需要去project | add existing item并将它添加到那里,这样它就知道它是项目的一部分,并构建和链接它。
此外,您还有以下代码,试图将字符串存储为单个字符并发送它,这将不起作用:
unsigned char protocol = 0;
protocol = 'okie';
zigbee_com->sendChar(protocol);
根据sertest2.cpp中的示例,您可以使用以下命令发送字符串,其中4是要发送的数据的长度:
zigbee_com->sendArray("okie", 4);
相关文章:
- Problems with std::cin.fail()
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 这对"With a stackless coroutine, only the top-level routine may be suspended."意味着什么
- Boost.TEST with CLion: "Test framework quit unexpectedly"
- 避免碎片化的ClientHellos with OpenSSL (DTLS)
- Issues with Win32 ReadProcessMemory API
- Qt with WinAPI MouseProc
- [[maybe_unused]] with structured_binding?
- Issue with WriteProcessMemory
- OpenCV RTP-Stream with FFMPEG
- "Unable to start debugging. No process is associated with this object." - 在Visual Studio Code中使用GDB
- std::adjacent_difference with std::chrono time_point
- DLL Made with CMake 使程序崩溃
- QtCreator with C 库中的链接器问题
- SHBrowseForFolder with BIF_BROWSEFORCOMPUTER and SHGetPathFr
- specialized std::default_delete with QQmlComponent
- VS2019 - Sudo Remote Debugging on Linux with Cmake project
- Inference pytorch C++ with alexnet and cv::imread image
- Pybind11: init<> with lambda
- Visual studio 2010 c++ communicate with zigbee