04 2010 档案

摘要:CRC32太大了,CRC8觉得强度不够,折中选择CRC16校验. 线性编码理论。在发送端传送的K位二进制数据,以一定规则产生一个校验监督码(或者叫监督矩阵)r位,并负载信息后,构成一个新的二进制码序列共(K+R)位。最后发送出去。在接收端根据信息吗和CRC码禁言,是否出错。 CRC16监督式(美国标准):G(X)=X^16+X^15+X2+1CRC16监督式(欧洲标准):G(X)=X16+X12+X5+1一般多数采用CCITT推荐的欧标格式:10001000000100001 16位的CRC码产生的规则是先把要发送的信息元左移16位(乘以2^16),再除以监督式,最后得到的是CRC码。再把C. 阅读全文
posted @ 2010-04-23 13:56 deepwishly 阅读(991) 评论(0) 推荐(0)
摘要:/// </summary>/// CRCTAB 表 /// </summary> private static ushort[] crctab = new ushort[256]{ 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6, 0x93 阅读全文
posted @ 2010-04-23 13:46 deepwishly 阅读(551) 评论(0) 推荐(0)
摘要:说明:CRC循环冗余错误校验计算方法 CRC—16(循环冗余错误校验)生成CRC—16校验字节的步骤如下: (1)装入一个16位寄存器,所有数位均为1。 (2)该16位寄存器的高位字节与开始8位字节进行“异或”运算。运算结果放入这个16位寄存器。 (3)把这个16位寄存器向右移1位。 (4a)若向右(标记位)移出的数位是1,则生成多项式1010000000000001和这个寄存器进行“异或”运算。 (4b)若向右移出的数位是0,则返回(3)。 (5)重复(3)和(4),直至移出8位。 (6)另外8位与该16位寄存器进行“异或”运算。 (7)重复(3)—(6),直... 阅读全文
posted @ 2010-04-23 13:45 deepwishly 阅读(404) 评论(0) 推荐(0)
摘要:1、基本概念MS在 .NET FrameWork2.0中对串口通讯进行了封装,我们可以在.net2.0及以上版本开发时直接使用SerialPort类对串口进行读写操作。SerialPort类的属性主要包括:串口名称(PortName)波特率(BaudRate)数据位 DataBits停止位 StopBits奇偶校验 Parity握手协议 HandshakeSerialPort类的事件主要包括:DataReceived:用于异步接收串口数据SerialPort类的方法主要包括:Open();Close();Read();Write()等。相关内容可以参考MSDN或者博文http://www.cn 阅读全文
posted @ 2010-04-23 10:00 deepwishly 阅读(606) 评论(0) 推荐(0)
摘要:在进行串口编程时,经常会涉及到进制转换、计算协议校验码以及数据格式化的操作,本文整理了在实际项目中可能会用到的公共方法,分享给需要的朋友。一、以下包含了三部分的内容:1、进制转换:主要包括了串口通讯中比较常用的16进制、byte、压缩BCD码、long、ASCII、Float等之间的转换方法。ConvertHelper.cs 进制转换Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/*----------------------------- 阅读全文
posted @ 2010-04-23 09:56 deepwishly 阅读(338) 评论(0) 推荐(0)
摘要:十进制转二进制,整数部分按除2取余,小数部分按乘2取整.例:50/2 ........ 余025/2 ........ 余112/2 ........ 余06/2 ........ 余03/2 ........ 余1150的二进制就是 110010小数0.25*2 ........ 0.5 整数 00.5*2 ........ 1.0 整数 10.25的二进制数就是 0.01二进制转十进制10111 这是二进制数10111=1*2的4次方+0*2的3次方+1*2的2次方+1*2的1次方+1*2的0次方=16+0+4+2+1=23小数二进制 转十进制整数部分从低位至高位1,2,4,8,16,3. 阅读全文
posted @ 2010-04-23 09:27 deepwishly 阅读(1923) 评论(0) 推荐(0)
摘要://十进制转二进制Console.WriteLine(Convert.ToString(69, 2));//十进制转八进制Console.WriteLine(Convert.ToString(69, 8));//十进制转十六进制Console.WriteLine(Convert.ToString(69, 16));//二进制转十进制Console.WriteLine(Convert.ToInt32(”100111101″, 2));//八进制转十进制Console.WriteLine(Convert.ToInt32(”76″, 8));//十六进制转十进制Console.WriteLine(C 阅读全文
posted @ 2010-04-23 09:12 deepwishly 阅读(185) 评论(0) 推荐(0)
摘要://取得某月的最后一天 //方法一:使用算出該月多少天,年+月+加上多少天即得,舉例取今天這個月的最后一天 private void GetLastDateForMonth(DateTime DtStart, out DateTime DtEnd) { int Dtyear, DtMonth; DtStart = DateTime.Now; Dtyear = DtStart.Year; DtMonth = DtStart.Month; int MonthCount = DateTime.DaysInMonth(Dtyear, DtMonth);//計算該月有多少天 DtEnd = Conver 阅读全文
posted @ 2010-04-21 21:08 deepwishly 阅读(4544) 评论(0) 推荐(0)
摘要:SerialPort 类:表示串行端口资源。属于System.IO.Ports.SerialPort版本信息 .NET Framework受以下版本支持:3.5、3.0 SP1、3.0、2.0 SP1 和 2.0.NET Compact Framework受以下版本支持:3.5 和 2.0主要成员:构造函数:SerialPort()SerialPort(“端口名称”, 波特率, 奇偶校验位,数据位,停止位)以上参数可以在使用前初始化。属性:PortName 获取或设置通信端口,包括但不限于所有可用的 COM 端口。 BaudRate 获取或设置串行波特率。 StopBits 获取或设置每个字节 阅读全文
posted @ 2010-04-21 15:22 deepwishly 阅读(498) 评论(0) 推荐(0)
摘要:通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将教你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。 在使用本文中的例子之前,你必须注意以下的问题。大部分可能不是所有例子在不同的机器上执行的结果可能不一样,这完全由哪一天是一个星期的第一天这个设置决定。第一天(DATEFIRST)设定决定了你的系统使用哪一天作为一周的第一天。所有以下的例子都是以星期天作为一.. 阅读全文
posted @ 2010-04-20 10:05 deepwishly 阅读(929) 评论(0) 推荐(0)
摘要:sqlDependency提供了这样一种能力:当被监测的数据库中的数据发生变化时,SqlDependency会自动触发OnChange事件来通知应用程序,从而达到让系统自动更新数据(或缓存)的目的.快速上手可参见园友的下列文章http://www.csharpwin.com/dotnetspace/8536r2178.shtml .NET 2.0 SqlDependency快速上手指南http://www.csharpwin.com/dotnetspace/9563r4530.shtml采用SQLServer2005 Broker和SqlDependency类来提供数据更改通知(原创)这里参考 阅读全文
posted @ 2010-04-18 21:08 deepwishly 阅读(304) 评论(0) 推荐(0)
摘要:这个问题也不知道难倒了多少C#豪杰。比起MFC的界面刷新,在WINFORM中来实现多线程刷新真是很痛苦,故写此文。多线程刷新界面主要用到多线程,委托,线程安全、事件等一系列高难度的C#操作。关于委托和事件,这有一篇很易懂的文章:hi.baidu.com/anglecloudy/blog/item/a52253ee804d052f2df534ab.html===============================================先从一个简单的例子说起,是一个没有考虑线程安全的写法:先在一个FORM类里面定义一个委托和事件: protected delegate void U. 阅读全文
posted @ 2010-04-18 20:50 deepwishly 阅读(3530) 评论(0) 推荐(0)
摘要:在我们的数据库设计中,不可逃避的就是数据库表的主键,可能有很多朋友没有深入思考过,主键的设计对整个数据库的设计影响很大,因此我们不得不要重视起来。 主键的必要性: 有些朋友可能不提倡数据库表必须要主键,但在我的思考中,觉得每个表都应该具有主键,不管是单主键还是双主键,主键的存在就代表着表结构的完整性,表的记录必须得有唯一区分的字段,主键主要是用于其他表的外键关联,本记录的修改与删除,当我们没有主键时,这些操作会变的非常麻烦。 主键的无意义性: 我强调主键不应该具有实际的意义,这可能对于一些朋友来说不太认同,比如订单表吧,会有“订单编号”字段,而这个字段呢在业务实际中本身就是应该具有唯一性,具有 阅读全文
posted @ 2010-04-13 14:16 deepwishly 阅读(187) 评论(0) 推荐(0)
摘要:http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0605jiangt/一、数据库设计过程数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点、独立于各个DBMS产品的概念模式(信息世界模型),用E-R图来描述。在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。然后 阅读全文
posted @ 2010-04-13 13:16 deepwishly 阅读(209) 评论(0) 推荐(0)
摘要:数据库设计5步骤  1.确定entities及relationshipsa)设计宏观行为。你用此数据库来做什么?比如,希望管理雇员的信息。b)确定entities。对于一系列的行为,确定所管理信息所涉及到的主题范围。这将变成table。比如,雇用员工,指定具体部门,确定技能等级。c)确定relationships。看着行为,确定tables之间有何种关系。比如,在部门与雇员之间存在一种关系。给这种关系命名。d)细化行为。你从宏观行为开始,现在仔细检查这些行为,看有哪些行为能转为微观行为。比如,管理雇员的信息可细化为:● 增加新员工● 修改存在员工信息● 删除调走的员工e)确定业务规则。 阅读全文
posted @ 2010-04-13 10:52 deepwishly 阅读(206) 评论(0) 推荐(0)
摘要:数据库设计的过程(六个阶段) 1.需求分析阶段 准确了解与分析用户需求(包括数据与处理) 是整个设计过程的基础,是最困难、最耗费时间的一步 2.概念结构设计阶段 是整个数据库设计的关键 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型 3.逻辑结构设计阶段 将概念结构转换为某个DBMS所支持的数据模型 对其进行优化 4.数据库物理设计阶段 为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法) 5.数据库实施阶段 运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果 建立数据库,编制与... 阅读全文
posted @ 2010-04-13 10:36 deepwishly 阅读(479) 评论(0) 推荐(0)
摘要:前段时间看extjsasp控件,它有一个语言设置,就想着如何在程序中实现。研究了一下。有以下一些经验1、开发一个PageBase类 public class PageBase:Page { } 把InitializeCulture方法给override掉。在该方法实现如下: base.InitializeCulture(); if (Session["language"] != null) { Page.Culture = Session["language"].ToString(); Page.UICulture = Session["lan 阅读全文
posted @ 2010-04-13 09:40 deepwishly 阅读(141) 评论(0) 推荐(0)
摘要:在ASP.NET 2.0 中提供多语言转换和多样式主题转换功能,两种实现形式比较类似,所以放在一起说明一下。 1. Language switcher 多语言转换 在Quick Start Tutorial 中,介绍了如何存储和应用用户选择的语言。一般是用一个DropDownList展示支持的语言,供用户选择,通常是放在masterpage 里面,将用户选择的语言存储起来 这里用了ASP.NET 2.0的Profile,当然也可以存在cookie session 或者querystring里。在页面里重写InitializeCulture 方法,使用用户之前选择的语言。因为设置语言的操作 .. 阅读全文
posted @ 2010-04-13 09:37 deepwishly 阅读(255) 评论(0) 推荐(0)
摘要:在CS文件中获得对应页面中的下拉框DropDownList_sitebranch值可以有以下几种方法获得:siteInfo.FZJGID=DropDownList_sitebranch.SelectedItem.Value.Trim();siteInfo.FZJGID=Request.Form["DropDownList_sitebranch"].ToString();siteInfo.FZJGID=Request["DropDownList_sitebranch"].ToString();其中Request.Form是ASP.NET获取窗体变量的集合。 阅读全文
posted @ 2010-04-13 09:21 deepwishly 阅读(266) 评论(0) 推荐(0)
摘要:SQL2005:打开SQL2005的配置工具-->SQL Server 2005外围应用配置器-->服务和连接的外围应用配置器 -->Database Engine -->远程连接,选择本地连接和远程连接并选上同时使用Tcp/Ip和named pipes.SQL2008:打开SQL Server Management Studio-->在左边[对象资源管理器]中选择第一项(主数据库引擎)-->右键-->方面-->在方面的下拉列表中选择[外围应用配置器]-->将RemoteDacEnable置为True. 阅读全文
posted @ 2010-04-11 14:44 deepwishly 阅读(183) 评论(0) 推荐(0)