扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
public string GetAllData(bool Verbose = true)
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的新绛网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
{
ListViewItem lvi = default(ListViewItem);
try {
ports.Serial.settings.SetStandard(MyPort, 9600, 0);
ports.Serial.settings.useDTR = 1;
ports.Serial.settings.useRTS = 1;
if ((ports.Serial.Open() == false)) {
return "Failed To Open Port";
}
if (Verbose) {
lvi = status.setMessage("WeatherDuck", "Data Sample", "Begin", true);
lvi.ForeColor = System.Drawing.Color.Blue;
}
System.Threading.Thread.Sleep(por_delay);
ports.Serial.FlushRcv();
ports.Serial.SendString("T");
System.Threading.Thread.Sleep(read_delay);
string Temperature = ports.Serial.ReadString();
if ((Temperature.Length == 0))
return "Failed To Read Temperature";
char[] split = ",".ToCharArray();
string[] temp = Temperature.Split(split, 2);
_tempC = temp[0];
_tempF = temp[1];
if (Verbose)
lvi.SubItems(2).Text = "Done Temperature";
ports.Serial.SendString("H");
System.Threading.Thread.Sleep(read_delay);
_humidity = ports.Serial.ReadString();
if ((_humidity.Length == 0))
return "Failed To Read Humidity";
if (Verbose)
lvi.SubItems(2).Text = "Done Humidity";
ports.Serial.SendString("L");
System.Threading.Thread.Sleep(read_delay);
_lightlevel = ports.Serial.ReadString();
if ((_lightlevel.Length == 0))
return "Failed To Read LightLevel";
if (Verbose)
lvi.SubItems(2).Text = "Done Light Level";
ports.Serial.SendString("F");
System.Threading.Thread.Sleep(read_delay);
_airflow = ports.Serial.ReadString();
if ((_airflow.Length == 0))
return "Failed To Read Air Flow";
if (Verbose)
lvi.SubItems(2).Text = "Done Air Flow";
int i = 0;
while ((true)) {
i = i + 1;
if ((i = sound_delay))
break; // TODO: might not be correct. Was : Exit While
System.Threading.Thread.Sleep(500);
if (Verbose)
lvi.SubItems(2).Text = "Sampling Sound Level: " + i.ToString();
}
ports.Serial.SendString("S");
System.Threading.Thread.Sleep(read_delay);
_soundlevel = ports.Serial.ReadString();
ports.Serial.SendString("S");
System.Threading.Thread.Sleep(read_delay);
_soundlevel = ports.Serial.ReadString();
if ((_soundlevel.Length == 0))
return "Failed To Read Sound Level";
return "Success";
} catch (Exception bug) {
if (Verbose)
status.setMessage("WeatherDuck", bug.Message, "Error", false);
return "Exception During Get Data: " + bug.Message;
} finally {
ports.Serial.Close();
if (Verbose) {
lvi = status.setMessage("WeatherDuck", "Data Sample", "Done", true);
lvi.ForeColor = System.Drawing.Color.Blue;
lvi = status.setMessage("WeatherDuck", "Port Status", "Closed", true);
lvi.ForeColor = System.Drawing.Color.Blue;
}
}
}
根据个人的经历谈谈个人感想
我一开始学的是VB,但学会后,也就是楼主你的样子,后来学C,觉得C太垃圾了,这可能和VB的简单形成对比,C语言学会后就再也没用,后来直接由VB升级到VB.NET,的确,如同楼主所说,.NET是比较简单,但是有个后遗症,是现在我都烦的,就是编译的软件必须要在有.NET的电脑上运行,XP是不带.NET的,而且,版本还的相对,如果用.NET4.0编的,在4.0以下版本电脑上运行很可能就出错,并且,如果你要打包的话也可以,就是把软件打包成安装包,然后附带.NET环境,但缺点就出来了,.NET3.5完整安装包235M,因为它包括了以下所有版本,还好.NET4.0只有50M左右,因为它不包括以下版本,但总之,.NET就是简单了编程,但复杂了使用,软件得打包,不像VB,编好后直接打开EXE就可以了。所以就麻烦了,举些例子,以前用VBA编OFFICE的宏,打开OFFICE就可以编,编好后就存为XLSM就可以了,现在用.NET就成了VSTO了,编好后,不和文档在一起,是分开的DLL,如果要运行,条件为,1,.NET环境,2,OFFICE,3,VSTO相比以前只需要OFFICE复杂了N倍,而且编辑时也需要VS(动不动就几G)才行,相比以前只要有OFFICE就可以区别也很大,同样,CAD的嵌入开发也是一样的。
所以总体来说,越底层的语言越底层的API越好用,越通用,越高级的越不通用,所以现在我开发软件我都烦了,要是一个小软件几百K~M,再附带个.NET就好几百兆,用的时候还得安装才能用,又不是什么大软件有必要这么做么,还有.NET不是万能的,有些地方也得用API,而且.NET其实也挺复杂,难的地方不比API简单,其实就感觉是封装好了的API而已。
至于数据库,的确.NET连接比较简单
至于学C?那就不用了,因为.NET的支持 C#,C++,VB,J#,只要会其中一种就可以了(而且你只要会其中一门,是能看懂另一门的,比如我虽然编辑C#可能要出错,但C#代码我是几乎全部能看懂的,网上查资料也能看懂其他语言的),大部分是学C的升级用C#.NET,VB的升级成VB.NET,你没必要把它当成另一中语言来学,语法是基本一样的。只是从一开是学C的比较多,就成了C#的比较多而已了,至于语言,我不想做语言攻击,其实都是有用的,就是看自己习惯不,比如我就不习惯C。
我也不想说VB好还是VB.NET好,其实是看你用途,我只是至今没发现什么网上的软件是.NET编辑的,一些软件比如CAD,OFFICE安装时安装了.NET,其实都不是它们是基于.NET编辑的,而是为了支持.NET的嵌入式开发,你所看到的软件,比如QQ,迅雷,你看他们带.NET了吗?要是.NET好,他们干嘛不用,答案是因为不方便,因为XP系统一般是没有.NET的,连WIN7内嵌的.NET都不支持最新的.NET,也就是你用什么版本编的就得安装相应版本,那也要求对方电脑也得跟着升级,而API是不用升级着走的~
所以,你要编的软件在其他电脑上用,VB+API吧,如果你要个人电脑上用,VB.NET吧,如果你编小软件vb+api吧,如果你要大型软件就VB.NET吧,所以,你自己选吧。
希望给你的意见能对你有好处,现在深夜11点了,我也改睡了,拜拜!~
祝你学习愉快!
对了,还有点,比如CAD2007不支持.NET3.5以上的编程,而且.NET编好的EXE或者DLL是可以用专门的软件打开看你源代码的,也就是反编译,这对于加密(可以看你的加密方法)就很麻烦了(据说采用什么办法可以解决)。
你得先补基础。
最好去学校,找计算机系的学生,抄下专业专业课程和对应的课本(说不定顺便能讨些旧课本),卖齐这些课本(一般学校里面就有书店)慢慢学。
(以下课程不全)
至少需要读一遍的:计算机导论、程序设计基础、软件工程、编译原理
重点学习的:算法与数据结构、面向对象程序设计
还有VB.Net需要一定的基础,建议先从 C++ 或 VB(版本6.0)入门
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流