WaveCom短信猫短信发送类

wavecom短信猫发短信的前期配置 直接根据java开发包配置发现并不能用,经过自己的摸索终于可以用了,记录一下配置过程及所需要的jar包。 1、将给的jar包如下复制到jdk/jre/lib/ext目录下 2、将rxtxSerial.dll文件复制到jre/bin目录下 3、将javax.comm.properties和comm.jar复制到jre/lib目录下 4、ecli 阅读详情

来自:http://www.cnblogs.com/lkmmmj/archive/2009/09/20/1570489.html

using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using MSCommLib;
  6
  7 namespace ConsoleApplication4
  8 {
  9     class Program
10     {
11         static void Main(string[] args)
12         {
13             WaveComSMS ws = new WaveComSMS(1, 9600);
14             string cellphonenum = "13554103564";
15             string text = "hello,world!您好\r\n哈哈 我是马劲的短信猫~~";
16             if (ws.Send(cellphonenum, text))
17             {
18                 Console.WriteLine("发送成功!");
19                 Console.WriteLine("手机号:" + cellphonenum);
20                 Console.WriteLine("信息内容:\r\n" + text);
21             }
22             else
23             {
24                 Console.WriteLine("发送失败!");
25             }
26         }
27     }
28     /// <summary>
29     /// WaveComSMS短信发送类
30     /// </summary>
31     public class WaveComSMS
32     {
33         /// <summary>
34         /// COM口号码
35         /// </summary>
36         private int comPort=0;
37         /// <summary>
38         /// COM口速度
39         /// </summary>
40         private int comSpeed = 2400;
41         public WaveComSMS(int comPort, int comSpeed)
42         {
43             this.comPort = comPort;
44             this.comSpeed = comSpeed;
45         }
46         /// <summary>
47         /// 手机号转PDU
48         /// </summary>
49         /// <param name="str"></param>
50         /// <returns></returns>
51         private static string ConverPDU(string str)
52         {
53             int tl, ti;
54             string ltem, rtem, ttem;
55             ttem = "";
56             tl = str.Length;
57             if ((tl != 11) & (tl != 13))
58                 return "";
59             if (tl == 11)
60             {
61                 tl = tl + 2;
62                 str = "86" + str;
63             }
64             ti = 0;
65             while (ti < tl)
66             {
67                 ltem = str.Substring(ti, 1);
68                 if ((ti + 1) == tl)
69                     rtem = "F";
70                 else rtem = str.Substring(ti + 1, 1);
71                 ttem = ttem + rtem + ltem;
72                 ti = ti + 2;
73             }
74
75             return ttem;
76         }
77         /// <summary>
78         /// 短信内容转PDU
79         /// </summary>
80         /// <param name="str"></param>
81         /// <returns></returns>
82         private static string ConverUniCode(string str)
83         {
84             Encoding encodingUTF = System.Text.Encoding.BigEndianUnicode;
85             string s = null;
86             byte[] encodedBytes = encodingUTF.GetBytes(str);
87             for (int i = 0; i < encodedBytes.Length; i++)
88             {
89                 s += BitConverter.ToString(encodedBytes, i, 1);
90             }
91             return s;
92         }
93         /// <summary>
94         /// 发送短信
95         /// </summary>
96         /// <param name="mobilePhoneNumber">手机号码</param>
97         /// <param name="smsText">信息文本</param>
98         /// <returns></returns>
99         public bool Send(string mobilePhoneNumber, string smsText)
100         {
101             MSComm SMSComm = new MSCommLib.MSCommClass(); //微软的MSCOMM控件声明
102             string prex;
103             string pdu, pnum, pmsg, leng;
104
105             string strIn = "";
106             byte[] bytin;
107             object objin;
108
109             string outstr;
110
111
112             int len;
113             prex = "0011000DA1";
114             pnum = ConverPDU(mobilePhoneNumber);
115             pmsg = ConverUniCode(smsText);
116             len = pmsg.Length;
117             len = len / 2;
118             leng = len.ToString("X");
119             if (len < 16)
120             {
121                 leng = "0" + leng;
122             }
123             pdu = prex + pnum + "0008A7" + leng + pmsg;
124
125             len = (pdu.Length / 2) - 1;
126             try
127             {
128                 SMSComm.CommPort = Convert.ToInt16(this.comPort);
129                 if (SMSComm.PortOpen == true)
130                     SMSComm.PortOpen = false;
131
132                 SMSComm.Settings = this.comSpeed.ToString();
133                 SMSComm.Handshaking = MSCommLib.HandshakeConstants.comNone;
134                 SMSComm.InputLen = 0;
135                 SMSComm.InputMode = MSCommLib.InputModeConstants.comInputModeBinary;
136
137
138                 SMSComm.PortOpen = true;
139                 SMSComm.Output = "AT" + "\r\n";
140                 System.Threading.Thread.Sleep(1000);
141                 objin = SMSComm.Input;
142                 bytin = (byte[])objin;
143                 strIn = Encoding.ASCII.GetString(bytin);
144
145                 SMSComm.Output = "AT" + "\r\n";
146                 System.Threading.Thread.Sleep(1000);
147                 objin = SMSComm.Input;
148                 bytin = (byte[])objin;
149                 strIn = Encoding.ASCII.GetString(bytin);
150
151                 SMSComm.Output = "AT+CMGF=0" + "\r\n";
152                 System.Threading.Thread.Sleep(1000);
153                 objin = SMSComm.Input;
154                 bytin = (byte[])objin;
155                 strIn = Encoding.ASCII.GetString(bytin);
156
157                 SMSComm.Output = "AT+CNMI=2,1,0,1" + "\r\n";
158                 System.Threading.Thread.Sleep(1000);
159                 objin = SMSComm.Input;
160                 bytin = (byte[])objin;
161                 strIn = Encoding.ASCII.GetString(bytin);
162
163                 outstr = string.Format("AT+CMGS={0}\r", len);
164                 SMSComm.Output = outstr;
165                 System.Threading.Thread.Sleep(1000);
166                 objin = SMSComm.Input;
167                 bytin = (byte[])objin;
168                 strIn = Encoding.ASCII.GetString(bytin);
169                 SMSComm.InBufferCount = 0;
170                 SMSComm.OutBufferCount = 0;
171
172
173                 if ((strIn.Length > 0) && strIn.EndsWith("> "))
174                 {
175                     outstr = pdu.Trim() + "\x01a";
176                     SMSComm.Output = outstr.Trim();
177 System.Threading.Thread.Sleep(5000);
178                     objin = SMSComm.Input;
179                     bytin = (byte[])objin;
180                     strIn = Encoding.ASCII.GetString(bytin);
181                     SMSComm.PortOpen = false;
182                     return true;
183                 }
184                 SMSComm.PortOpen = false;
185                 return false;
186             }
187             catch
188             {
189                 SMSComm.PortOpen = false;
190                 return false;
191             }
192         }
193     }
194    
195 }
196

如何使用短信猫发送中文短信 使用短信猫收发短信,原理是通过串口通信发送AT指令.当你发送中文短信时,你会又喜悦又困惑,短信确实收到了,但是是乱码的.本文介绍如何正确发送中文短信. 阅读详情

相关推荐

Wavecom短信猫AT命令详解与短信收发实战

AT命令是控制通信设备的标准化指令集,广泛应用于GSM模块、调制解调器等硬件设备。其核心原理是通过串口发送文本指令实现设备控制,具有跨平台、易集成的技术特点。在工业物联网和企业信息化系统中,AT命令常用于短信猫控制、设备远程管理等场景。以Wavecom短信猫为例,通过AT+CMGF设置短信模式(文本/PDU)、AT+CMGS实现短信发送、AT+CNMI配置实时通知等操作,可构建稳定的短信通信系统。针对中文短信、长短信分片等需求,需掌握PDU模式下的UCS-2BE编码和TP-UDH分片技术。

weixin_29185493的博客 346

短信猫 centos 6.3 使用 smslib 3.5.2 发短信 java.lang.InstantiationException的解决办法,附带 可以运行的程序。

1  http://www.smslib.org/ 这是 smslib主页,提供smslib的下载 2  如果你在windows上开发请参考 http://blog.csdn.net/xyang81/article/details/7584970 这篇文章,写的不错,而且还有linux的,但是,我用他提供的方法,在centos 6.3 上实验不成功。报 Comm library exceptio

changdejie的专栏 2706

C++短信猫短信收发封装项目实战

短信猫是利用GSM模块实现短信收发功能的设备,其工作原理可以简单概括为以下几个步骤:GSM模块首先通过SIM卡认证连接到移动网络,接收网络信号;当需要发送短信时,通过AT指令集发送短信数据到模块,模块将数据编码后通过移动网络发送出去;当接收短信时,网络接收短信后由模块解码并通过串口或其他通信方式输出短信数据。GSM模块是短信猫的核心部件,它支持GSM移动通信标准,具备语音、短信及数据通信的功能。模块通过AT命令与计算机或嵌入式系统通信,实现各种指令的执行。

weixin_29476595的博客 867

WAVECOM 发送短信C#实现

项目有一个功能要求发送短信,因为后台是ASP.NET的,所以就用C#写了一下,嘿嘿..项目要求只能发,不要收的,所以以下代码也只有发的啦,不好意思啊,用的是MSCOMM的控件,短信猫是WAVECOM的,大家参考一下:  private string ConverPDU(string str) //手机号转PDU  {   int tl,ti;   string ltem,rtem,ttem; 

lxh00789的专栏 3729

java linux下短信猫开发必备(采用java comm v3+smslib3.5)

绝对原创好好东西。本人也是在网上找了n久都没找到到资源。搞了很久终于搞出来了。配置说明很重要。。某些资源网上也很难找的。。

Linux平台部署华腾宇通 金笛 Wavecom短信猫

该文档讲解了在linux平台上部署华腾宇通 金笛 Wavecom 短信猫的过程,及相关的配置、jar文件。

Wavecom 短信猫 发送短信设置

短信猫设置(命令为独占,当前命令没有返回写入其他命令提示ERROR) AT+CMGF 设置短信格式 AT+CMGF=0 设置短信为PDU格式 AT+CMGF=1 设置短信为text 格式(不能直接发送汉字,默认模式)   短信类型 Text模式              PDU模式 (必须大写) REC UNREAD           0            收到的未读短信

liu121068的专栏 1938

PSM倾向匹配详细步骤和程序

目录1.安装psmatch2统计包。2.数据准备3.数据分析及命令解读4.结果解读4.1模型拟合结果,此处无太多实际意义。4.2试验组可匹配的观测概览,按照命令中设定的匹配规则,试验组有8例患者未能匹配到合适对照。4.3结果解读的重点应该是对stata新生成的中间变量的解读。4.4均衡性检验结果4.5匹配结果的图示化5.Stata命令汇总最后留下两个问题给大家思考:题目 试验设计中,匹配的目的在于确保干预效应估计是建立在可比个体之间的不同结果的基础上。最简单的匹配方式是将干预组和对照组中协变量值相同的两个个

平平淡淡,戒急用忍,一生学闭嘴。 5万+

c#实现wavecom短信猫发送长短信

长短信是有规约的,协议头部分如果是0x40以下,则说明是普通短信,如果是0x40以上,则是长短信,然后在短信内容部分,有六个字节分别定义短信唯一标识以及该短信是第几条,所以长短信发送时每条实际为67个汉字。手机接收到之后,都会按照标准规约自动组合为一条短信,而不是显示多条。 我做了一个AT指令操作wavecom短信猫的类,可以接收和发送超长短信,并且接收到的短信会直接通知电脑。 超长短信:短信

kong1940742529的博客 1667

ADS2023实战:2.4GHz超外差接收机从设计到链路预算全流程解析

本文以ADS 2023软件为平台,详细解析了2.4GHz超外差接收机从核心指标定义、架构原理到完整链路搭建与仿真的全流程。通过实战演练,重点阐述了如何利用ADS进行谐波平衡仿真和链路预算分析,以量化评估系统增益、噪声系数等关键性能,为射频工程师提供了一套从理论到仿真的系统级设计方法。

herb5的博客 816

第8章 Stata主成分分析与因子分析

在进行数据统计分析时,还往往会遇见变量特别多的情况,而且很多时候这些变量之间还存在着很强的相关关系或者说变量之间存在着很强的信息重叠,如果我们直接对数据进行分析,一方面会带来工作量的无畏的加大,另一方面还会出现一些模型应用的错误,于是主成分分析与因子分析应运而生。这两种分析方法的基本思想都是在不损失大量信息的前提下,利用较少的独立变量来替代原来的变量进行进一步的分析。 8.1主成分分析 基本思想是将众多的初始变量整合成少数几个互相无关的主成分变量,而这些新变量尽可能地包含...

qq_45112156的博客 5万+

wavecom短信猫常用AT命令

wavecom短信猫常用AT命令 一、一般命令 1、 AT+CGMI 给出模块厂商的标识。 2、 AT+CGMM 获得模块标识。这个命令用来得到支持的频带 (GSM 900,DCS 1800 或PCS 1900)。当模块有多频带时,回应可能是不同频带的结合。 3、 AT+CGMR 获得改订的软件版本。 4、 AT+CGSN 获得GSM模块的IMEI(国际移动设备标识)序...

a466318266的博客 1682

仿真每日一练 | Workbench下薄板疲劳分析

今天给大家介绍Workbench下薄板疲劳分析,采用稳态分析模块进行评估。完成求解后,插入疲劳工具,同时插入对应的寿命进行查看,如图7和图8所示。采用稳态分析模块,导入几何模型,效果如图1。添加固定约束与扭矩,同时添加转速如图4所示。主要包括7要素,对应的类型见图2。求解完成后查看应力,如图6所示。1-1-3、有限元系统模型构建。1-2-1、加载条件/边界条件。1-1-1、几何模型构建。1-1-2、材料定义。1-2-2、求解设置。1-3-1、查看结果。1-3-2、评估结果。1-3-3、修正结果。

ansysxuexizhe的博客 1071

java发送短信 wavecom_java发送短信 wavecom

今天网上淘了wavecom短信猫快递回来了,急着测试。遇到问题,分享下首先先换上sim进去,记得先不要通电,会损坏sim卡,然后安装短信猫驱动,我的是USB口,wavecom 2c2/2c。USB芯片方案是pl2303,驱动下载地址:安装完毕后,插上短信猫,打开设备管理器。如图com1即为短信猫端口,如要修改端口号,则在属性,高级里修改端口号。新建工程。配置系统环境变量 %JDK_HOME%,然后...

weixin_31971727的博客 210

使用CloudCompare和CANUPO进行点云分类的编程指南

在本文中,我们将介绍如何使用CloudCompare和CANUPO库进行点云分类的编程。CloudCompare是一款功能强大的开源点云处理软件,而CANUPO是一个用于点云分类和分割的C++库。这只是一个简单的点云分类示例,CANUPO库还提供了其他更高级的功能和算法,以满足各种点云分类需求。该函数接受点云数据、地面点掩码和非地面点掩码作为输入,并将分类结果存储在这两个掩码向量中。完成安装后,我们可以开始编写点云分类的代码。最后,我们遍历点云数据,并根据地面点和非地面点的掩码将结果打印出来。

ByteWhisper的博客 1058

luks-磁盘加密工具

linux磁盘加密配置工具及步骤详解

zdd56789的博客 120

使用wavecom短信猫批量发送短信的Java代码(单例模式)

使用wavecom短信猫批量发送短信的Java代码(

itstt的专栏 2823

04 HCM CPI SF集成-员工集成(一)

将员工主数据和组织数据从SAP Successfactors Employee CentraI复制到SAPERP或SAP S/4HANA,SAP SF CPI HCM集成

SAP CPI 146

wavecom java_java发送短信 wavecom

今天网上淘了wavecom短信猫快递回来了,急着测试。遇到问题,分享下首先先换上sim进去,记得先不要通电,会损坏sim卡,然后安装短信猫驱动,我的是USB口,wavecom 2c2/2c。USB芯片方案是pl2303,驱动下载地址:安装完毕后,插上短信猫,打开设备管理器。如图com1即为短信猫端口,如要修改端口号,则在属性,高级里修改端口号。新建工程。配置系统环境变量 %JDK_HOME%,然后...

weixin_31325725的博客 195

Simulink仿真模块 - Data Type Conversion

Data Type Conversion将输入信号转换为指定的数据类型 在仿真库中的位置为: Simulink / 常用模块 Simulink / Signal Attributes 模型为: 说明 DataTypeConversion模块可将任何 Simulink®数据类型的输入信号转换为您指定的数据类型。 注意 要通过指定模块参数来控制输出数据类型,或者要从下游模块继承数据类型,使用DataTypeConversion模块。要...

jk_101的博客 2519

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Wavecom短信猫AT命令详解与实战应用

AT命令是控制通信设备的基础接口协议,广泛应用于调制解调器、GSM模块等硬件设备。作为ASCII编码的文本指令集,AT命令通过串口通信实现设备控制,其核心价值在于提供标准化的硬件交互方式。在工业自动化、企业短信系统等场景中,AT命令发挥着关键作用。Wavecom短信猫作为经典GSM模块,其AT命令集支持短信收发、存储管理等功能,通过CMGF、CMGS等指令可实现文本/PDU模式短信处理。针对中文短信乱码问题,需特别注意PDU模式下的UCS2编码转换。开发实践中,合理配置CNMI参数可实现实时状态监控,结合C

weixin_30983965的博客 232

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

wavecom java_使用java操作wavecom短信猫来发短信的方法

由于业务的需要,今天用java实现了用wavecom短信猫发短信的功能,本来这个应该用随猫购买的二次开发接口实现的,但由于这几台猫买的时候,经销商没有提供二次开发接口,所以我不得不在网上找了资料,自己写了个接口实现了发短信的功能。实现这个功能,需要两个jar包,可以到http://code.google.com/p/smslib下载smslib-v3.3.0-B2-bin.zip和javacomm...

weixin_32617915的博客 180

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

wavecom java_使用java操作wavecom短信猫来发短信的方法|实例源码介绍

使用java操作wavecom短信猫来发短信的方法|实例源码介绍。由于业务的需要,用java实现了用wavecom短信猫发短信的功能,本来这个应该用随猫购买的二次开发接口实现的,但由于这几台猫买的时候,经销商没有提供二次开发接口,所以我不得不在网上找了资料,自己写了个接口实现了发短信的功能。实现这个功能,需要两个jar包,可以到http://code.google.com/p/smslib下载sm...

weixin_36377516的博客 256
上一篇: 【译】三层架构代码生成器(NetTierGenerator)
下一篇: 宽屏玩魔兽,注册表编写
ArvinStudy
博客等级 码龄15年 83粉丝 193原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值