博文
扫盲贴]1979年对越自卫反击战的真相(2006-02-19 20:35:00)
摘要:扫盲贴]1979年对越自卫反击战的真相
今天是对越自卫反击战27年纪念日,那场战争争议颇多,但许多人恰恰忘记了那些为国死难的英烈!为纪念烈士,为不让6000军魂在小人笔下如同草芥,林冲兄弟特发此老贴,记住一句老话“天下虽安,忘战必忧!”
林冲兄弟就网上那场战争的一些具有普遍性的说法发表自己的意见。
一、关于越南军队多为杂牌军和游击队的看法
1979年对越作战双方兵力对比和越军质量问题是网友们争论的焦点。有人认为越军精锐部队都调离了柬埔寨,与我军作战的只是越南杂牌部队和地方游击队,我军打成这样实在是丢脸。
与这种说法恰恰相反,越军在与我军的较量中是动了看家的老本的。越军四大全苏式装备王牌师(316A师,3师,346师,27师)中有三个投放在与我军的作战中,结果一个被全歼,两个遭重创。这个道理太浅显易懂了,既然越南认为中国是他们最大的敌人,他们又怎么会把杂牌军投放在中越边境吗?这不是找死吗?关于越南侵略柬埔寨的军队数字,据柬埔寨方面的报道说是十万多人。而越北地区的防御部队,根据我军战前得到的情报是十五万人。事实上,单从他们有编制的与我军交手的正规部队看,就已经有十万人之多,还不包括其他地方武装和民兵。
相反,我军在此次战斗里的投入远不如越南,与越南倾国之力相比,我军只是动了一个手指头,既没有进行全国总动员也没有调集最精锐的王牌部队,当时,我军精锐主力多在北方防备苏军,那里集中了全军70%的装甲部队。此次战斗主要以广州军区、昆明军区部队和广西云南两地的边防部队为主,加派了兄弟军区的一些战斗骨干,越境作战的部队总数不过是20多万人,这与我军当时450万的常备军相比,显然只占了很少一部分。
下面看看交战双方具体的兵力部署,许多谣言机会不攻自破!越军的作战思想及其兵力部署情况
(1) 越军的战略—— “一线取胜 边境取胜"(并非所谓的诱敌深入)
1978年7月,越南把越北的第1军区,划分为两个军区。第1军区与我广西省接壤,第2军区与我云南省接壤,主要担负对我作战的指挥。在这两个军区内又分别增调2~3个野战师作为骨干力量。在与我广西、云南接壤的边界越方一侧,加紧进行作战准备。进行与华为敌的政治教......
VB中串口通讯的实现(2006-02-19 13:35:00)
摘要:
VB中串口通讯的实现
福建 李铭 陈春美
一、概述
串口通讯作为一种古老而又灵活的通讯方式,被广泛地应用于PC间的通讯以及PC和单片机之间的通讯之中。 提到串口通讯的编程,人们往往立刻想到C、汇编等对系统底层操作支持较好的编程语言以及大串繁琐的代码。
实际上,只要我们借助相关ActiveX控件的帮助,即使是在底层操作一向不被人看好的VB中,一样能够实现串口通 讯,甚至其实现方法和C、汇编相比,要更加快捷方便。下面,笔者就介绍一下在VB中实现串口通讯的方法。
在Visual Basic中有一个名为Microsoft Communication Control(简称MSComm)的通讯控件。我们只要通 过对此控件的属性和事件进行相应编程操作,就可以轻松地实现串口通讯。下面,笔者就简要地介绍一下
MSComm控件的使用方法。
二、MSComm控件的主要属性、事件
1、MSComm的属性
由于MSComm控件属性很多,在此笔者仅介绍与实现串口通讯密切相关的核心属性。
Commport:设置通讯所占用的串口号。如设成1(默认值),表示对Com1进行操作。
Setting:对串口通讯的相关参数。包括串口通讯的比特率,奇偶校验,数据位长度、停止位等。其默认值 是“9600,N,8,1”,表示串口比特率是9600bit/s,不作奇偶校验,8位数据位,1个停止位。
Portopen:设置串口状态,值为True时打开串口,值为False时关闭串口。
&......
短信系统,以及多用户留言本数据库设计方案剖析(2006-02-18 19:36:00)
摘要:
短信系统,以及多用户留言本数据库设计方案剖析
众所周知,设计一个优秀站点或计算机应用系统,必须有强大,有效的数据库的支撑.
数据库的设计一般要符合三大范式,即 :第一范式(1NF):数据库表中的字段都是单一属性的,不可再分.第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。所谓传递函数依赖,指的是如果存在"A → B → C"的决定关系,则C传递函数依赖于A。因此,满足第三范式的数据库表应该不存在如下依赖关系: 关键字段 → 非关键字段x → 非关键字段y [见上面一篇]http://blog.programfan.com/article.asp?id=10192
分析:一个短信系统包含:用户信息,好友信息,和短信信息.
1.用户信息包含:用户ID,用户名称,用户其他信息....
2.好友信息包含:好友ID,好友名称,其他信息....
3.短信<留言信息>包含:短信ID,短信发送者,短信接收者,短信标题,短信内容,发送时间,是否已读.....
回复ID,发送者,接收者,标题,内容,回复时间,是否已读......
二.尝试:只建立一个表.包含如上信息.数据表中信息无包含关系,符合第一范式[1NF].
&nbs......
数据库设计范式解析(2006-02-18 19:31:00)
摘要:
数据库设计范式解析
引言
数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。
设计范式是不是很难懂呢?非也,大学教材上给我们一堆数学公式我们当然看不懂,也记不住。所以我们很多人就根本不按照范式来设计数据库。
实质上,设计范式用很形象、很简洁的话语就能说清楚,道明白。本文将对范式进行通俗地说明,并以笔者曾经设计的一个简单论坛的数据库为例来讲解怎样将这些范式应用于实际工程。
范式说明
第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。
例如,如下的数据库表是符合第一范式的:
字段1
字段2
字段3
字段4
而这样的数据库表是不符合第一范式的:
字段1
字段2
字段3
字段4
字段3.1
字段3.2
很显然,在当前的任何关系数据库管理系统(DBMS)中,傻瓜也不可能做出不符合第一范式的数据库,因为这些DBMS不允许你把数据库表的一列再分成二列或多列。因此,你想在现有的DBMS中设计出不符合第一范式的数据库都是不可能的。
第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。
假定选课关系表为SelectCourse(学号, 姓名, 年龄, 课程名称, 成绩, 学分),关键字为组合关键字(学号, 课程名称),因为存在如下决定关系:
(学号, 课程名称) ......
在PC上通过手机发送短消息(2006-02-17 22:37:00)
摘要:写完<<在PC上通过手机发送短消息>>(http://www.csdn.net/Develop/article/
17/17690.shtm)后,就打算接着写中文短信息的发送的,可是毕业论文时间实在太紧,一
直耽搁下来了,这几天陆续有几个网友给我发邮件,关注这个话题的网友也比较多,而且
CSDN邮件期刊也将我的那一篇文章收录进来了,我感到十分的欣慰,同时也觉得应该尽快
完成我未完成的工作,要不然太对不起大家了.
使用Text模式收发短信代码简单,实现起来十分容易,但是最大的缺点是不能收发中文短信,
实在是有点美中不足.不过Pdu模式完全可以解决这个问题,Pdu模式不仅支持中文短信,也能
发送英文短信,堪称完美无缺.Pdu模式收发短信可以使用三种编码: 7-bit、8-bit和UCS2编码.
7-bit编码用于发送普通的ASCII字符,8-bit编码通常用于发送数据消息,UCS2编码用于发送Uni
code字符。我们要实现中文短信的发送,所以选择UCS2,即中文Unicode码.
首先介绍一下VB中的两个函数:ChrW()和AscW().对于Chr()和Asc()函数大家一定很熟悉,对于
ChrW()和AscW()可能会比较生疏一点. ChrW 函数返回包含 Unicode 的 String,若在不支持
Unicode 的平台上,则其功能与 Chr 函数相同; AscW 函数返回 Unicode 字符代码,若平台
不支持 Unicode,则与 Asc 函数功能相同。对于这两个函数我们各举一个例子说明:
?ascw("短")
30701
?chrw(26482)
杲
可见这两个函数可以实现中文和Unicode码之间的转换,对于我们编码解码十分方
便.我们得到中文的Unicode码之后,就可以编制Pdu串了.
我们再了解一下Pdu串的构成,我们看这样一个Pdu串(我调试程序时采用): 0891683110301405F011000D91683159717456F4000800165982679C6536523077ED4FE1002
C8BF756DE590D002E.我们将其分解为:
08 ......
wavecom编程,发送至短信特服号(SP特服号)(2006-02-17 21:35:00)
摘要:wavecom编程,发送至短信特服号(SP特服号)
document.title="wavecom编程,发送至短信特服号(SP特服号) - "+document.title
/*前段时间,因为工作需要,使用wavecom模块进行短信收发的编程,于是搜索了一大堆关于AT指令集及短信PDU编码的类库资源,但是发现好像没有关于使用wavecom发送短信给短信特服号的PDU编码示例,于是我将“武志文”老师的程序稍微改了一点,经过测试,可以成功发送给短信特服号(SP特服号),先将PDU编码程序文件发布出来,希望能够给大家带来一点点的便利。呵呵,大家注意最后2个fun。
smsDecodedsmsSP、smsNumberSP
*/
/////////////////////////////////////
///程 序 员:武志文(蚕蛹)
/// sillnet163.net
///文 件:PDUdecoding.cs
///概 要:针对国内短信编码(USC2)
///组成结构:包含四个函数:
/// smsDecodedCenterNumber(string srvCenterNumber) 短信中心号编码
/// smsPDUEncoded(string srvContent) 短......
手机短信发送(2006-02-17 21:25:00)
摘要:
手机短信发送
类型:基础
【文章摘要】
² 中文转换成Unicode码函数 因为手机短消息的发送是以PDU串的形式发送出去的,中文字符以Unicode码来表示,所以在发送中文短消息之前必须首先将中文字符转换为Unicode码,下面的函数将实现这个功能。这个函数主要应用到VB自带的一个格式转换函数:ChrW()将中文转换为Unicode码。 Public Function chg(rmsg As ……
【文章正文】
² 中文转换成Unicode码函数
因为手机短消息的发送是以PDU串的形式发送出去的,中文字符以Unicode码来表示,所以在发送中文短消息之前必须首先将中文字符转换为Unicode码,下面的函数将实现这个功能。这个函数主要应用到VB自带的一个格式转换函数:ChrW()将中文转换为Unicode码。
Public Function chg(rmsg As String) As String
Dim tep As String
Dim temp As String
Dim i As Integer
Dim b As Integer
tep = rmsg
i = Len(tep)
b = i / 4
If i = b * 4 Then
b = b - 1
tep = Left(tep, b * 4)
Else
tep = Left(tep, b * 4)
End If
chg ......
在PC上通过手机发送短消息(2006-02-17 21:22:00)
摘要:可见这两个函数可以实现中文和unicode码之间的转换,对于我们编码解码十分方便.我们得到中文的unicode码之后,就可以编制pdu串了.
我们再了解一下pdu串的构成,我们看这样一个pdu串(我调试程序时采用): 0891683110301405f011000d91683159717456f4000800165982679c6536523077ed4fe1
002c8bf756de590d002e.我们将其分解为:
08 smsc地址信息的长度(91683110301405f0共八位字节)
91 smsc地址格式(ton/npi)
683110301405f0 smsc地址(8613010341500南京的短信服务中心号码)
11 基本参数(tp-mti/vfp)( 发送,接收为84)
00 mr message reference
0d 目标sim卡号码长度(683159717456f4按阿拉伯数字个数计)
91 同上
683159717456f4 对方手机sim卡号(8613057575064)
00 普通gsm类型,点到点方式
08 ucs2编码
00 有效期
16 用户信息长度(5982679c6536523077ed4fe1002c8bf756de590d002e的长度共22为字节)
5982679c6536523077ed4fe1002c8bf756de590d002e(“如果收到短信,请回复.”unicode码)
pdu码的构成我们已经了解后,我们就可以开始编码了,上面的红色部分就是我们要编码实现的.
首先看smsc地址: 683110301405f0与8613010341500f(smsc最后一位补f构成14位),我们可以发现只需将奇偶位对调即可.同样道理: 683159717456f4与8613057575064也是一样的处理.
对于用户信息长度,我们可以通过vb里的len函数得到,例如”你好”,我们用len(“你好”)得到2,那么2*2=4即为用户信息长度04(这里要转换为16进制,并且是两位).对于unicode码,我们可以通过ascw()函数一个一个汉字取出其unicode码即可得到.
下面给出短信发......
通过RS232发送和接收短信(2006-02-17 21:18:00)
摘要:
通过RS232发送和接收短信
通常,发送和接收短信的终端都是通过串行接口连接电脑,这类设备用得比较多的是GSM Modem和手机。这类设备通常都支持PDU模式,但仍有少数设备只支持Text模式。
设备硬件连接好以后可以通过发送AT指令测试设备是否连接正确能否正常通讯。在这里我使用Windows自带的“超级终端”工具进行通讯。此工具可以在程序——附件——通讯里面找到,如果没有请确认是否安装了此组件。或者在运行里面输入“hypertrm”也可以快速启动“超级终端”。
以下所有范例均以Siemens M55手机作为终端,有可能跟你设备返回的不同。具体参数清参阅设备相关AT指令集。本手机AT指令集在我主页上有下载。
准备工作:
1、 测试连接:“AT8 ”测试终端是否连接正确。成功后返回“OK”。
2、 设置回显:(此步骤为了测试方便)ATE18
3、 查阅及设置字符集:
AT+CSCS=?8
+CSCS: ("GSM","UCS2")
说明该终端支持GSM与UCS2两种字符集。一般对于中文环境设置为UCS2
AT+CSCS="UCS2"8
4、 取得短信中心号码:
AT+CSCA? 8
+CSCA: "+8613800280500",145
5、 查询并设置SMS格式:
查询:AT+CMGF= 8
返回:+CMGF: (0)
0代表PDU模式。你的设备可能有其他的选项,请参考设备的AT指令集。
设置:AT+CMGF=08
6、 查询并设置短信储存位置:
查询:AT+CPMS=?8
返回:+CPMS: ("MT","SM","ME"),("MT","SM","ME"),("MT","SM","ME")
其中MT表示设备所有可用储存位置。SM代表SIM卡,ME代表机身。
一般设置为:AT+CPMS= "MT","MT","MT"8
查......
经纬星航GSM模块编程开发PDU码解析(2006-02-17 21:17:00)
摘要:经纬星航GSM模块编程开发PDU码解析
摘要:介绍计算机上实现短消息收发的模式,描述PDU 模式,包括PDU 模式下的UCS2 编码、解码原理,以及发送与接收PDU 串的编制方式, VB 中的MSCOMM 控件,实现短消息收发的核心程序。
关键字:短消息收发、PDU 模式、UCS2 编解码、UNICODE 码、AT 指令、MSCOMM 控件 GSM模块 短信模块,单片机,PLC,MC51,MC51单片机,430,51单片机,GSM,CDMA,GPRS,短信终端,GSM短信,编程,GSM调制解调器,短信控件,短信编程,源码,下载,GSM短信编程,短信猫,短信猫编程,GSM编程,短消息,模块,终端,设备,短信,短信群发。编程示例,示例代码,示例,代码,VC,VC++,DELPHI,JAVA,PB,VB等
一、短消息收发的实现模式
计算机串口上连接GSM MODEM,用它向手机发送短消息,要求对AT 指令集和串口编程比较熟悉。这种方法收发短消息又分三种模式:BLOCK 模式、TEXT 模式和PDU 模式。BLOCK 模式现在用的很少了; TEXT 模式则只能发送ASCII 码,它不能发送中文的UNICODE码——确切地讲,从技术上来说是可以用于发送中文短消息的,但是国内的手机基本上不支持;而PDU 模式开发起来则较为复杂,它需要编写专门的函数来将文本转换为PDU 格式,但PDU 模式被所有手机支持,可以使用任何字符集,它也是手机默认的编码方式。笔者在开发中正是选用的PDU 模式。
二、PDU 模式
用PDU 模式收发短消息可以使用三种编码: 7-bit 编码、8-bit 编码和UCS2 编码。7-bit
编码用于发送普通的ASCII 字符;8-bit 编码通常用于发送数据消息,如图片或铃声等;UCS2
编码用于发送Unicode 字符。由于笔者在系统中要实现中文短消息的发送,所以选择用UCS2
编码,即中文Unicode 码。
(一)UCS2 编码原理
所谓UCS2 编码,是将单个的字符(1-2 个字节)按ISO/IEC10646 的规定,转变为16 位
的Unicode 宽字符。即将单个的字符转换为由四位的‘0’-‘9’、‘A’-‘F’的数字和字
母组成的字符串。待发送的消息以UCS2 码的形......