Articles of 处理

运行Processing SimpleOpenNi深度图像示例后,Xbox 360的Kinect冻结并断开与USB的连接

请帮忙 我一直在试图设置kinect XBOX 360在Ubuntu上运行,以开始开发一个应用程序来控制一个类人机器人。 在过去的四天中,我一直在search,下载,安装和尝试几十个库和驱动程序,以获得在Ubuntu上的工作。 一开始没有任何工作,我只能用“Camorama”和“guvcview”读取RGB相机,不pipe我试图运行什么库或驱动程序。最后,我安装了一个新的Ubuntu副本,并使用libfreenect库突触(我有点新手),我也安装了下列软件包 https://code.google.com/p/simple-openni/downloads/detail?name=OpenNI_NITE_Installer-Linux64-0.27.zip&can=4&q= 以及Processing 2.0和SimpleOpenNi-0.27 我开始处理 – >例子 – > OpenNi – > DepthImage&RUN,并且kinect开始3到10秒,同时将图像连同RGB图像一起给出,并且有一些时候出来,然后帧冻结,当我尝试列出USB设备($ lsusb)没有列出Kinect相机或audio设备,因此Kinect必须从适配器和USB拔下,然后重新插入,运行草图后问题仍然存在。 尝试解决scheme: 1-删除和黑名单gspca内核模块 2-禁用USB自动挂起 但问题仍然存在… 我正在使用Kinect的XBOX 360与(12V – 1.08A)USB交stream电源适配器http://www.walmart.com/ip/INSTEN-USB-AC-Power-Adapter-For-Microsoft-Xbox-360-Kinect多个传感器/ 28882271 我的笔记本电脑是:戴尔Inspiron1525英特尔Core2Duo RAM 2GB 运行Ubuntu 14.04.2 LTS ,, Release:14.04,Codename:trusty 任何人都可以帮助我!

分段error handling

我有一个应用程序,我用它来捕捉任何分段错误或ctrl-c。 使用下面的代码,我能够捕捉到分段错误,但处理程序被一次又一次地调用。 我怎样才能阻止他们。 为了您的信息,我不想退出我的应用程序。 我只需要注意释放所有损坏的缓冲区。 可能吗? void SignalInit(void ) { struct sigaction sigIntHandler; sigIntHandler.sa_handler = mysighandler; sigemptyset(&sigIntHandler.sa_mask); sigIntHandler.sa_flags = 0; sigaction(SIGINT, &sigIntHandler, NULL); sigaction(SIGSEGV, &sigIntHandler, NULL); } 和处理程序是这样的。 void mysighandler() { MyfreeBuffers(); /*related to my applciation*/ } 在这里为分段错误信号,处理程序被调用多次,正如显而易见MyfreeBuffers()给我释放已释放内存的错误。 我只想释放一次,但仍然不想退出应用程序。 请帮忙。

以编程方式计算Windows上的进程的开始时间

我正在使用Visual Studio在Windows上编写c / c ++代码。 我想知道如何有效地计算我的过程的开始时间。 我可以使用gettimeofday()吗? 我发现从谷歌以下代码,但我不明白它在做什么: int gettimeofday(struct timeval *tv, struct timezone *tz) { FILETIME ft; unsigned __int64 tmpres = 0; static int tzflag; if (NULL != tv) { GetSystemTimeAsFileTime(&ft); //I'm lost at this point tmpres |= ft.dwHighDateTime; tmpres <<= 32; tmpres |= ft.dwLowDateTime; /*converting file time to unix epoch*/ tmpres /= 10; […]

以用户身份运行我的程序

Windows 7,Vista,Server 2008,UAC已激活 程序必须用pipe理员权限进行说明才能进行一些安装操作。 之后,我希望我的程序继续使用非pipe理员权限。 我怎样才能重新启动它没有pipe理权限? PS 我的程序重新安装。 我不想分发任何额外的程序。 所以我的步骤是: 在临时目录中下载新版本 在pipe理员权限下重新启动 重命名旧的exe文件,并从临时目录复制新的exe文件 在非pipe理员权限下重新启动

File Watcher – 获取在Windows中创build文件的进程名称?

有没有一种很好的方法来获取在Windows中创build文件的进程名称? 我有一个Windows 2000 Server上的目录 C:\ WINNT \ Temp用名为: 70618199 21834082 他们总是121,201 KB的大小。 以编程方式我可以“捕获”在这个位置丢弃文件的程序名称或服务名称? 更多信息: 我对此做了更多的研究。 我重命名文件TIFF,并能够打开它。 该机器通过定制的ASP.NET应用程序作为文档search工具。 机器在E:\驱动器上包含大约50,000个TIFF文档。 此机器也运行SQL Server 2000 w /全文索引打开。 全文索引绝不会触及TIFF – 但不应该因为这是SQL对吗? 但是,FTS确实需要启用索引服务。 奇怪的事情这个TIFF似乎是最大的东西服务的Web服务器。 IIS或索引服务是否使用C:\ WINNT \ Temp进行某种caching? 思考? 解决scheme(也许?)这似乎是Microsoft索引服务。 当我closures它时,这些文件都不会在WINNT \ Temp中创build。 它似乎抓住它find的最大的文件并将其复制到WINNT \ Temp。 这很奇怪 当您处理100MB + TIFF文件时,这可能会导致磁盘空间不足。 很烦人。 猜猜我将closures索引服务的“Web”分支。

是依靠一个Windows手柄的types是一个指针好吗?

Windows的句柄有时很烦人,记得清理后(使用创build的笔和刷子做GDI就是一个很好的例子)。 RAII解决scheme非常棒,但是为每个不同types的手柄制作一个完整的(规则五)RAII类真的很棒吗? 当然不是! 我能看到的最好的是一个完整的genericsRAII类,其他类只是定义了在清理句柄时要做什么以及其他句柄特定的方面。 例如,一个非常简单的模块类可以这样定义(只是一个例子): struct Module { Module() : handle_{nullptr} {} Module(HMODULE hm) : handle_{hm, [](HMODULE h){FreeLibrary(h);}} {} operator HMODULE() const {return handle_.get();} private: Handle<HMODULE> handle_; }; 这一切都很好,没有破坏者或任何东西是必要的。 当然,虽然能够编写Handle类不需要析构函数,但也是很好的。 为什么不使用现有的RAII技术? 一个想法是使用一个智能指针到一个void ,但这是行不通的。 以下是在正常情况下实际声明句柄的方式: #define DECLARE_HANDLE(n) typedef struct n##__{int i;}*n DECLARE_HANDLE(HACCEL); DECLARE_HANDLE(HBITMAP); DECLARE_HANDLE(HBRUSH); … 它实际上区分句柄types,这是好的,但它使使用一个智能指针不可能void 。 如果相反,由于句柄是定义,指针,types可以被提取? 我的问题是,以下是否是一个安全的假设。 它使用桌面的句柄,必须closures。 除了共享指针和唯一指针之间的区别(例如, FreeLibrary有自己的引用计数语义),假定句柄是一个指针,并指向任何指向好的指针,或者我不应该使用智能指针并使Handle实现RAII方面本身? #include <memory> #include <type_traits> […]

boost ::线程导致小事件处理泄漏?

我正在debugging这个数据库项目。 它为更高级别的应用程序封装了对SQLite的访问。 它被devise为asynchronous运行,也就是说,它有像ExecuteRequestAsync()和IsRequestReady()这样的方法。 当ExecuteRequestAsync被调用时,它产生一个boost :: thread来完成这个工作并立即返回该函数。 当高层应用程序决定不再需要运行请求的结果时,它可以调用DumpRequest()来取消它。 由于很难正常取消数据库请求,DumpRequest的实现只是维护一个“清理监视线程”,等待“已完成的请求”并将其删除。 所有的boost :: threads都是通过boost :: shared_ptr来pipe理的,比如: boost::shared_ptr<boost::thread> my_thread = new boost::thread(boost::bind(&DBCon::RunRequest, &this_dbcon)); 而当它不再需要(取消): vector<boost::shared_ptr<boost::thread> > threads_tobe_removed; // some iteration threads_tobe_removed[i].get()->join(); threads_tobe_removed.erase(threads_tobe_removed.begin()+i); 我创build了这个unit testing项目来testing执行和转储请求的机制。 它运行请求并随机取消正在运行的请求,并重复数千遍。 机制certificate是可以的。 一切按预期工作。 但是,通过sysinternal的Process Explorer观察unit testing项目,发现存在句柄泄漏问题。 每过500英里,句柄数就增加1,永远不会返回。 这是正在增加的“事件”types句柄。 文件和线程句柄没有增加(当然,随着线程的产生,句柄的数量也在增加,但是每隔一百次就有一个Sleep(10000)调用等待它们被清理,以便可以观察句柄计数)。 我没有自己pipe理事件处理。 它们是在创build线程时由boost :: thread创build的。 我只保证优雅地closures线程,我不知道事件是用于什么。 我想知道有没有人遇到类似的问题? 什么可能是这个泄漏的原因? Process Explorer中的这个数字是否足够可靠,称之为句柄泄漏? 有什么方法可以追踪和修复吗? 我使用Visual C ++在Windows Vista上使用静态链接boost 1.40。

如何在Windows中监视进程/程序的执行?

我们正在尝试开发一个小型的应用程序,它可以监视在Windows机器上执行的程序/进程。 如果程序/进程不应该运行,它应该被阻止。 它的作用类似于防病毒。 这是基本的想法。 我想知道如何挂钩进入操作系统,以获得有关试图在机器上运行的每一个程序/进程的通知。

如何获得属于某个进程的打开句柄的计数?

您可以使用程序Process Explorer来查看运行应用程序的手柄数量。 有没有用Delphi代码来获取这个数字的方法? 我有兴趣跟踪应用程序本身的号码; 没有findProcess Explorer正在执行的其他应用程序使用的句柄数。 我的意图是让应用程序跟踪/检测可能的资源泄漏。

python:相当于SIGALRM的窗口

我有这个装饰: def timed_out(timeout): def decorate(f): if not hasattr(signal, "SIGALRM"): return f def handler(signum, frame): raise TimedOutExc() @functools.wraps(f) def new_f(*args, **kwargs): old = signal.signal(signal.SIGALRM, handler) signal.alarm(timeout) try: result = f(*args, **kwargs) finally: signal.signal(signal.SIGALRM, old) signal.alarm(0) return result new_f.func_name = f.func_name return new_f return decorate 代码只能在Linux上做任何事情,但是,在Windows上,没有SIGALRM 。 让这个代码在Windows中工作最简单的方法是什么?