- 浏览: 36117 次
最新评论
文章列表
VB中创建的DLL只是COM组件,无法作为输出函数的DLL,其实这只是个错误的说法。其实MS非常狡猾,如果你是个VB疯狂发烧友的话,应该早就狂试出这种可以创建输出函数的DLL的方法。
VB编译文件实际上采取了两次编译的方法,首先是调用C2.exe产生*.OBJ文件,然后调用Link.EXE连接。如果在LINK的时候添加EXPORT选项,实际上是可以输出函数的。但是,在VB的工程选项中将这些屏蔽了。而且过分的是:VB在Build完成后会将OBJ文件删除,这样就无法手动通过Link来创建我们需要的DLL了。不过我找到一个比较龌鹾的变通的方法,就是先创建一个Exe工程,在Form_Load事件里 ...
因为手机短消息的发送是以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 T ...
pdu 编码主要包括两个主要的部分,一是 pdu 串的整体数据格式,分别因为发送信息串和接收信息串而有区别,二是 pdu 中文本部分的编码,分别因为字符集而不同。
我们也可以这样来理解这个 pdu 编码的格式, sms 相当于一个协议栈,最简单的协议栈:
根据 gsm03.40 规范, sms 协议包括以下几层:
1、 SM-AL :应用层。这个部分就是数据部分。
2、 SM-TL :传输层。我们可以清楚的看到这里描述了主要的短信内容,包括发送号码,接收号码,信息类型,编码,数据报长度等等,这也是我们编程主要要面对的问题。
3、 SM-RL :中继层。这个指的是短信在网关之间中继需要的协议。
4 ...
因为SIM卡只有1万到10万次的读写次数和10-15条短消息的存储空间,还涉及到SIM卡上短消息读写需要一定的时间才能完成。这些因素影响了许多应 用,这些应用需要通过GSM网络进行大量的数据交换,为保证流程的顺利进行,SIM卡要完成大量的读、写和删除操作,SIM卡的寿命周期很快就会达到,此 外,SIM卡完成这些工作所耗费的时间比外界要求的要多。为解决这些问题,有必要在终端上作一些软件设置,使短消息不通过SIM卡进行读写操作。
以下的描述介绍了如何采用这种方法在Falcom A2系列和数据终端MT4002之间不通过SIM卡交换数据,这种方法也可用与2个MT4002之间。
a) 串口上的从终端来的R ...
实际上,在DELPHI中调用WIN32 API函数与在C或C++中调用WIN32 API函数没有大的区别。DELPHI中将C或C++中引用 的WINDOWS.H头文件改写为WINDOWS.PAS单元,使WINDOWS API函数的定义符合PASCAL语法。而其他的头文件在DELPHI中也都有相应的.PAS单元一一对应,所以在DELPHI中调用API函数时,只须将相应的API函数单元加入到USES语句的单元之中,便可直接调用相应的函数了。
下面我们来看一个简单的例子,程序的作用是改变桌面墙纸:
unitUnit1;
interface
{Windows.PAS是 ...
1. 使用“CNMI” 与“CSMP”指令设置不通过SIM卡进行数据传输因为SIM卡只有1万到10万次读写次数和10-18条的存储空间,还涉及到SIM卡上短消息读写需要一定的时间才能完成。这些因素影响了许多应用,这些应用需要通过GSM网络进行大量的数据交换,为了保证流程的顺利进行,SIM卡要完成大量的读、写以及删除的操作,SIM卡的寿命周期很快就回达到,此外,SIM卡完成这些工作所耗费的时间比外界需求要多。为解决这些问题,有必要在终端上进性一些软件设置,是短消息不通过SIM进行读写操作。以下是如何对金笛串口GSMMODEM进行设置以完成不通过SIM卡而进行数据传输:
A).串口上的从终端来的R ...
短消息类(class)的概念:根据指定储存的位置,短消息分为class 0 – 3四个类。也可以不指定类(no class),由ME按默认设置进行处理,存储到内存或者SIM卡中。在TPDU的TP-DCS字节中,当bit7-bit4为00x1, 01x1, 1111时,bit1-bit0指出消息所属类:
00 – class 0:只显示,不储存
01 – class 1:储存在ME内存中
02 – class 2:储存在SIM卡中
03 – class 3:直接传输到TE
GSMModem一般都支持一条“AT+CNMI”指令,可用于设定当有某类短消息到达时,如何处置它:只储存在指定的内存 ...
1、发英文短信
发送英文数字短消息“123ABC”,使用其相应ASCII 码发送。
AT+CMGF=1
AT+WSCL=1,2 // 设置为发英文短信OK
AT+CMGS="159********" // 区别于GSM 模块,CDMA 模块发短信号码必须要加引号
123ABC<ctrl-Z> // 输入内容,然后Ctrl+Z发送
+CMGS:1
OK
返回代码:
+CMGS:N 表示成功发出,N 为序号。
2. 发中文短信
CDMA发中文短消息不是采用PDU 格式,而是直接发送其Unicode代码,发送中文短消息“您好”其相应Unico ...
1. 将无线Modem接到Pc机的串口1(/dev/ttyS0)上。
2. 首先使用minicom(强烈建议在linux的图形用户界面下新建一个Terminal,然后运行minicom),将速率设置成为57600、8N1,Hardware Flow Control.
3. 运行AT,看是否会返回OK。如果没有返回则表明串口设置有问题,或者LenZ Modem的串口速率设置有问题;
4. 输入AT+CSQ?看信号质量如何,如果结果类似+CSQ:22,99(逗号前的数字在12~31之间)为正常。
5. 输入AT+CGDCONT=1,”IP”,”cmnet” ,看是否会返回OK。这条命令的作用 ...
/*--------------------------------------------------------------*/
//UCS2编码
// 输入: pSrc - 源字符串指针
//nSrcLength - 源字符串长度
// 输出: pDst - 目标编码串指针
// 返回: 目标编码串长度
/*----------------------------------------------------------------*/
intgsmEncodeUcs2(const char* pSrc, unsigned char* pDst, int nSrcLengt ...
AT+CSMP设置短消息文本参数
AT+CSMP设置短消息文本参数(text模式下)
设置:AT+CSMP=<fo>,<vp/scts>,<pid>,<dcs>
响应:+CSMP:<fo>,<vp/scts>,<pid>,<dcs>
AT+CSMP
1.<fo>按照不同的位进行介绍
bit5 4 3 2 1 0
---------------------------------------------------------
value0 1 0 0 ...
流量统计方法:
一、登陆网络,建立TCP链路
PPP握手阶段大约要来回12~16个PPP握手包,每个包为30字节。30*16=480字节。
TCP连接阶段:40×3=120字节
注册:61+40=100字节
总共统计一下,共约须700字节。统计的流量就是700*8=5600bit
注:按理说这第一阶段产生的流量是不能计费的,但移动照算不误,所以即使中心不开,但是DTU仍然必须进行TCP连接的尝试,这就要产生流量同样要被收费。
二、TCP链路建立,数据传输
ppp封装+IP封装+TCP封装+数据
例如DTU发送心跳只有FE,它产生的流量就如下:
TCP+IP包头40个字节,数据 ...
一、英文短信
发:AT
收:OK
发:AT+CMGF=1
收:OK
发:AT+CMGS=13602433649
收:>
发:data→ //test 为发送内容,→为发送符(ctrl+z,十六进制0x1A)
收:+CMGS: 54OK
二、中文PDU短信
本文以一个实例来解说AT指令发送PDU短信的全过程, ...
术语:
MS:Mobile Station
SC:Service Centre (used for SMS)
SMS:Short Message Service
SMSC:Short Message Service - Service Centre
SR:Status Report Message storage
SMS作为一种信息载体,不仅仅可以用来传输文本信息,还有很多别的用法,例如使用8位元传输push、铃声、乃至图片,甚至可以于其上构建专属TCP/IP及WAP协议栈(事实上很少有人这么去做)。按照ETSI GSM 03.40规范规定,SMS具有下面几种类型:
...
CMPP协议中,CMPP_SUBMIT_MESSAGE中有两个字段pk_total和pk_numer,恰看起来,这就是发送超长短信的设置参数,其实不然,这两个参数的设置,应该是没有用处。
发送超长短信,需要做两件事情:设置TP_udhi的值设置为1,在消息正文中增加协议头。协议后可以两种格式,分别是长度为6和长度为7的协议头。格式如下:
6位协议头格式:05 00 03 XX MM NN
byte 1: 05, 表示剩余协议头的长度
byte 2: 00, 这个值在GSM 03.40规范9.2.3.24.1中规定,表示随后的这批超长短信的标识位长度为1(格式中的XX值)。
byt ...