我正在从串口读取数据.数据来自规模.我现在正在使用Readline()并在删除后删除数据DiscardInBuffer().从串口读取数据的正确方法是什么?网上的例子很少,我觉得这就像是一些没有人想到的圣杯.
有什么帮助吗?
好像串口是一个反复无常的孩子.
C#,WinCE 5.0,HP瘦客户端,Compact framework 2.0
private void WeighSample()
{
this._processingDone = false;
this._workerThread = new Thread(CaptureWeight);
this._workerThread.IsBackground = true;
this._workerThread.Start();
} //end of WeighSample()
private void CaptureWeight()
{
globalCounter++;
string value = "";
while (!this._processingDone)
{
try
{
value = this._sp.ReadLine();
if (value != "")
{
if (value == "ES")
{
_sp.DiscardInBuffer();
value = "";
}
else
{
this.Invoke(this.OnDataAcquiredEvent, new object[] { value });
}
}
}
catch (TimeoutException)
{
//catch it but do …Run Code Online (Sandbox Code Playgroud) 实际上有一些关于人们试图为Windows CE构建Boost库的信息,但没有人报告成功,甚至没有给出这样做所需的步骤.有了这两个最新版本(1.46和1.47),发行说明中提到他们的一个测试编译器是"Visual C++,Windows Mobile 5,STLport:9.0",这似乎意味着已经取得了成功(作为旁注)给出的编译器很有意思,因为我能够下载的最新STLPort是5.2.1.我错过了什么?).
我发现的帖子似乎围绕着这里包含的文件:http://www.boost.org/development/tests/trunk/VeecoFTC.html.问题是,老实说,我不知道如何使用它.我能够为Windows CE构建STLPort,但是按照Boost入门指南(http://www.boost.org/doc/libs/1_47_0/more/getting_started/windows.html),我陷入了Boost.Build阶段.此时我是否需要配置为CE编译?我只是不知道采取什么步骤,并希望得到一些指导.
这是我到目前为止所遵循的步骤:
在这一点上,假设我已经完成了正确的事情,我需要用类似的东西运行b2
b2 --build-dir=build-directory toolset=toolset-name --build-type=complete stage
Run Code Online (Sandbox Code Playgroud)
我假设我的构建目录是我用于Boost.Build的前缀,构建类型和阶段将保持给定,但我不知道要使用什么工具集名称.VeecoFTC文件有多个msvc和stlport条目.我删除了与"wm5"无关的两个条目,但是当我使用以下命令编译时
b2 --build-dir=C:\boost-build toolset=msvc --build-type=complete stage
Run Code Online (Sandbox Code Playgroud)
我得到一堆错误,如:
compile-c-c++ C:\boost-build\boost\bin.v2\libs\regex\build\msvc-9.0~wm5~stlport5.2\debug\threading-multi\has_icu_test.obj
The system cannot find the path specified.
Run Code Online (Sandbox Code Playgroud)
实际上,该文件不存在,但has_icu_test.obj.rsp存在.我错过了什么吗?我是否走在正确的轨道上?
更新:
由于我无法让Boost.Build工作并且在Boost.Build邮件列表上没有爱,我已经开始尝试使用Boost的CMake构建系统:http://gitorious.org/boost/cmake.我和CEgcc一起使用它(我比Linux更熟悉Linux),我遇到了以下错误:
boost/config/requires_threads.hpp:47:5: error: #error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)"
Run Code Online (Sandbox Code Playgroud)
-mthreads是C和CXX标志的一部分 - 问题是BOOST_PLATFORM_CONFIG不是由boost/config/select_platform_config.hpp定义的.应该为Windows CE定义什么?我认为它应该是boost/config/platform/win32.hpp(然后定义BOOST_HAS_WINTHREADS,这将解决上述错误).当select_platform_config.hpp似乎无法处理Windows CE案例时,发行说明如何声称这可行?如果BOOST_PLATFORM_CONFIG确实需要是boost/config/platform/win32.hpp,那么我需要定义_WIN32,WIN32或WIN32.我的第一反应是这些都不应该用于编译CE.此外,VeecoFTC文件不包含任何这些.它是如何工作的?
我对移动平台知之甚少,不过我有兴趣为它们编程.
请问比较J2ME VS Android VS iPhone VS Symbian VS Windows CE.
我想知道:
就个人而言,我想编写开源代码,但欢迎提出任何建议.我对Java有初步的了解.我还想知道,如果还有什么可以推荐的话.
如何使用GC.KeepAlive()和用途?
我使用Socket将文件从终端(Windows-CE)传输到服务器.需要传输的时间是8分钟.在Windows-CE关闭后5分钟(如果没有按下触摸屏)
如果我使用GC.KeepAlive()这个,这是我的问题吗?
我们正在使用c ++开发在嵌入式系统上运行在Windows CE 4中的应用程序.
我们的一个限制是应用程序使用的所有内存只能在启动期间分配.我们写了很多只使用预分配内存而不是分配新内存的容器和算法.
您是否认为我们可以在这些条件下使用boost库而不是我们自己的容器?
欢迎任何评论和/或建议!
非常感谢,
尼克
我在SO上查看了一些其他问题,并且不清楚c是否构建在WINAPI之上,之下或旁边.例如,有人可以用纯c写一些能够打开窗口的东西,还是需要使用windows api?
我注意到打开文件(fopen)的c(库?)版本与windows API版本(CreateFile)之间的相似之处让我想知道是否只是另一个的包装器.有人知道吗?
如果Windows正在运行; 是一个程序员被迫使用windows api编程来运行它或者程序员根本不使用windows api并直接访问硬件(即Windows操作系统是否保护对硬件的访问)?
哪个在windows ce的不同版本的windows之间更容易移植.我发现的文档(现在已经改变了)曾经说过CreateFile只能回到windows ce的2.0版本(这里:http://msdn.microsoft.com/en-us/library/ms959950.aspx - 请注意注意事项在最底部的链接上显示支持的版本信息已更改).那么应该用于windows ce版本1的是什么?换句话说,使用c函数编程或标记为WINAPI的函数更可能适用于所有版本的Windows CE?
我在一本关于编程windows ce的书中读到以下内容并且它使我感到困惑,因此在理解以下内容时可以更好地理解上述所有问题:
Windows CE支持在Windows NT和Windows 98上找到的大多数相同的文件I/O函数.支持相同的Win32 API调用,如CreateFile,ReadFile,WriteFile和CloseFile.但是,Windows CE程序员必须意识到一些差异.首先,Windows CE不支持标准C文件I/O函数,如fopen,fread和fprintf.同样,不支持旧的Win16标准,_lread,_lwrite和_llseek.这不是一个很大的问题,因为所有这些功能都可以通过用少量代码包装Windows CE文件函数来轻松实现.
我对包装的理解是你必须有一些东西可以包装,考虑到win16和c库不可用它是否说明包装CreateFile函数来制作你自己的c-like版本的fopen?(我所知道的唯一另一件事是装配,如果这是他建议包装的话,就不会以这种随意的方式写出来.)
鉴于上述情况,c语言(语法,数据结构,流控制),c函数库(例如fopen)和windows api(例如CreateFile)之间的依赖关系是什么?
我Windows-Mobile and Windows-CE使用SqlCE和我不知道做什么更好.
要在程序打开时打开连接,运行任何查询...更新...删除数据库并在程序关闭后关闭连接?
或者打开连接运行任何查询的..更新...删除数据库并立即关闭连接?
我正在使用Windows CE 5.0的设备上开发应用程序.我需要更改操作系统,例如语言安装&...,似乎我需要一个名为Microsoft Platform Builder的IDE.但我怎么能得到它?有免费下载的免费版本吗?我用Google搜索网络,但什么也没得到!

我已经尽一切可能摆脱我认为在Win CE 6.0设备上运行的CF.NET 3.5中的HttpRequest或HttpResponse类的内存泄漏.我正在使用它们与IP摄像头进行通信.
以下是我正在使用的当前代码.代码在线程上的自定义控件中运行,其优先级设置为低于正常值,backgroundworker设置为true.在我的一个表单上有两个这样的控件对象.
我说当前是因为我尝试了异步请求和下面代码的其他排列而没有减少内存消耗:
protected void CamRefreshThread()
{
while (true)
{
if (false != CamEnabled)
{
HttpWebRequest HttpReq = null;
try
{
lock (LockObject)
{
// create request
HttpReq = (HttpWebRequest)WebRequest.Create("http://" + this.Ipv4Address + "/axis-cgi/jpg/image.cgi");
HttpReq.Timeout = 5000;
HttpReq.ReadWriteTimeout = 5000;
HttpReq.Credentials = new NetworkCredential(this.CamUserName, this.CamPassword);
}
/* indicate waiting for reponse */
ResponseRxed = false;
// get response
using (HttpWebResponse HttpResp = (HttpWebResponse)HttpReq.GetResponse())
{
// get response streamImageFromStream
using (Stream ImgStream = HttpResp.GetResponseStream())
{
// get bitmap …Run Code Online (Sandbox Code Playgroud) 我有运行Win CE的ICOP VDX-6354板.我正试图从我的C#程序中控制电路板的蜂鸣器.我尝试了所有的playound等"coredll.dll"平台调用.到目前为止他们都没有工作.所以我最后一次机会是创建自己的DLL.
unsigned char inp(short addr)
{
unsigned char cValue;
_asm
{
mov dx, addr
in ax, dx
mov cValue, al
}
return cValue;
}
void outp(int addr, unsigned char val)
{
__asm
{
push edx
mov edx, DWORD PTR addr
mov al, BYTE PTR val
out dx, al
pop edx
}
}
bool MyBeep(DWORD dwFreq, DWORD dwDuration)
{
outp(0x43, 0xb6); // Set Buzzer
outp(0x42, (0x1234dc / dwFreq)); // Frequency LSB
outp(0x42, (0x1234dc / dwFreq) >> 8); // Frequency …Run Code Online (Sandbox Code Playgroud) windows-ce ×10
c# ×5
boost ×2
c++ ×2
android ×1
beep ×1
c ×1
dll ×1
embedded ×1
httprequest ×1
httpresponse ×1
iphone ×1
java-me ×1
serial-port ×1
sockets ×1
symbian ×1
winapi ×1