我只是回顾一下我写的一些代码,用于在CF2.0上用C#中的串口进行通信.我没有使用DataReceived事件,因为它不可靠.MSDN声明:
对于收到的每个字节,都不会引发DataReceived事件.使用BytesToRead属性确定要在缓冲区中读取的数据量.
我用read()轮询端口,并有一个委托,在读取数据时处理数据.我还读过"投票不好"的地方(没有给出解释).
为什么民意调查可能不好?除了通常的线程注意事项 - 我有一个单独的线程(后台线程)轮询端口,线程在读取数据后退出,所有测试并运行良好.
我正在从串口读取数据.数据来自规模.我现在正在使用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) 这段代码
$("#loading").ajaxStart(function() {
alert("start");
$(this).show();
});
Run Code Online (Sandbox Code Playgroud)
在我的加价
<div style="text-align:center;"><img id="loading" src="../images/common/loading.gif" alt="" /></div>
Run Code Online (Sandbox Code Playgroud)
这是完整的ajax请求:
$.ajax({
type: "POST",
url: "http://localhost/WebServices/Service.asmx/GetResults",
data: jsonText,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(response) {
var results = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
PopulateTree(results);
},
error: function(xhr, status, error) {
var msg = JSON.parse(xhr.responseText);
alert(msg.Message);
}
});
$("#loading").ajaxStart(function() {
alert("start");
$(this).show();
});
$("#loading").ajaxStop(function() {
alert("stop");
$(this).hide();
$("#st-tree-container").show();
});
Run Code Online (Sandbox Code Playgroud)
即使gif显示为旋转,也不会触发警报"开始".AjaxStop按预期触发.有什么想法吗?
有这样的事吗?
我正在寻找的是一个控件,它将是客户端,具有GridView的编辑,取消行功能.
我希望用它来收集用户的数据,然后在用户输入数据后保存在服务器上.
编辑:
感谢所有的建议.在我深入研究并花时间学习这些框架之前,我想问你们所有人.
所有人似乎都使用ASP.net MVC,并提到这些工具包很好用.但是,我使用ASP.net网络表单.这些框架是否与ASP.net的旧版本相得益彰?
我正在学习asp.net mvc,并经历了一个很好的教程,证明了它.该教程还使用了Entity Framework.
我们有自己的数据访问类,我必须使用它.关于我们需要做什么来弥合我们的类和MVC框架之间的差距,我有点困惑.例如,在教程中,在MovieController.cs文件中,有一个Edit方法,如下所示:
[HttpPost]
public ActionResult Edit(Movie movie)
{
if (ModelState.IsValid)
{
db.Entry(movie).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(movie);
}
Run Code Online (Sandbox Code Playgroud)
如果我不使用Entity框架,它会是什么样子?我是否仍然需要使用ModelState.IsValid并像完成一样保存状态
db.Entry(movie).State = EntityState.Modified;
Run Code Online (Sandbox Code Playgroud)
请指教.一个明确的使用asp.net mvc而不使用Entity框架的例子会很棒.
我需要知道的是,状态在这里扮演什么角色,是否强制使用,或者它只是实体框架运作的一部分.
我会把它重写为:
[HttpPost]
public ActionResult Edit(Movie movie)
{
myDBObject.SaveChanges();
return RedirectToAction("Index");
}
Run Code Online (Sandbox Code Playgroud)
myDBObject是我的自定义数据库访问对象.
这可能吗?
例如,如果我有
List<Item> myList = new List<Item>;
//added 100 of Items to myList
//then I want to grab items at indices 50 - 60
List<Item> myNewList = myList.?
Run Code Online (Sandbox Code Playgroud)
如何在没有循环浏览myList的情况下这样做?谢谢.
我已经尝试使用Readline()并且数据被删除,我尝试使用Read()但我不知道如何使用它的错误验证方法,因为我可能会一个接一个地获得几个数据包而我无法知道将会有另一个数据包进入.在数据包BytesToRead之间是0,所以我不能使用它.当读取数据到缓冲区时你有一个定时器或让线程进入休眠状态以允许所有数据包到达?
我搞不清楚了.不知道下一步该尝试什么.
我应该提一下,我不能保证串口的字符串将以\n或\ r或\ r \n结束.当用户按下PRINT时,我只需要一种简单的方法来读取将来自秤的所有数据包.
有人在这里回答了我喜欢的想法 - 等待所有数据包的一定时间,但他们删除了他们的答案.你有可能重新发布它吗?
JS代码:
$.ajax({
type: 'POST',
url: 'http://localhost/MyServiceDir/Service.asmx/Foo',
contentType: 'application/json; charset=utf-8',
data: jsonData,
success: function (msg) {
alert("good");
},
error: function (xhr, status) {
switch (status) {
case 404:
alert('File not found');
break;
case 500:
alert('Server error');
break;
case 0:
alert('Request aborted');
break;
default:
alert('Unknown error ' + status);
}
}
});
Run Code Online (Sandbox Code Playgroud)
我收到"未知错误错误".我如何深入了解这一点?我想知道错误究竟是什么.谢谢!
在asp.net mvc结构中处理错误和捕获异常的可接受方法是什么?普遍的共识是异常泡沫化.那么什么层(视图或控制器)你会处理异常(捕获/显示用户友好的文本等).我的预感是它是在控制器中完成的?编辑: 我想避免在每个控制器操作中重复相同的错误处理代码 ..因此我正在寻找一个简洁的示例,说明如何实现错误处理而不重复相同的代码.
我是ASP.Net MVC的初学者.在阅读了许多教程并消化其概念之后,我还没有看到一种方法可以清楚地说明业务逻辑的去向.
我的应用程序将大量使用jQuery AJAX用法(它将调用Controller的Actions用于各种目的,例如依赖交互,验证).我肯定会使用ViewModel概念,但我仍然不清楚业务逻辑应该驻留在哪里.我不想放入控制器或模型.我应该把它放在一个单独的服务层吗?
c# ×5
asp.net-mvc ×3
jquery ×3
serial-port ×3
ajax ×2
asp.net ×1
gridview ×1
list ×1
modelstate ×1
windows-ce ×1