那位高手帮帮忙啊~在线等!!
错误是这样的
0 [main] INFO smslib - SMSLib: A Java API library for sending and receiving SMS via a GSM modem or other supported gateways.
This software is distributed under the terms of the Apache v2.0 License.
Web Site: http://smslib.org
0 [main] INFO smslib - Version: 3.4.1
0 [main] INFO smslib - JRE Version: 1.6.0_11
0 [main] INFO smslib - JRE Impl Version: 11.0-b16
0 [main] INFO smslib - O/S: Windows XP / x86 / 5.1
==========
31 [Thread-0] INFO smslib - GTW: modem.com3: Starting gateway, using Generic AT Handler.
31 [Thread-0] INFO smslib - GTW: modem.com3: Opening: COM3 @9600
49266 [Thread-0] INFO smslib - GTW: modem.com3: Closing: COM3 @9600
org.smslib.TimeoutException: No response from device.
at org.smslib.modem.AModemDriver$CharQueue.get(AModemDriver.java:514)
at org.smslib.modem.AModemDriver.getResponse(AModemDriver.java:306)
at org.smslib.modem.athandler.ATHandler.getSimStatus(ATHandler.java:130)
at org.smslib.modem.AModemDriver.connect(AModemDriver.java:131)
at org.smslib.modem.ModemGateway.startGateway(ModemGateway.java:158)
at org.smslib.Service$1Starter.run(Service.java:239)
60047 [pool-1-thread-3] WARN smslib - WatchDog: Gateway: modem.com3 restarting.
60047 [pool-1-thread-3] INFO smslib - GTW: modem.com3: Stopping gateway...
60047 [pool-1-thread-3] INFO smslib - GTW: modem.com3: Closing: COM3 @9600
60047 [pool-1-thread-3] INFO smslib - GTW: modem.com3: Gateway stopped.
60047 [pool-1-thread-3] INFO smslib - GTW: modem.com3: Starting gateway, using Generic AT Handler.
60047 [pool-1-thread-3] INFO smslib - GTW: modem.com3: Opening: COM3 @9600java代码public class SendMessage
{
public void doIt() throws Exception
{
Service srv;
OutboundMessage msg;
OutboundNotification outboundNotification = new OutboundNotification();
srv = new Service();
SerialModemGateway gateway = new SerialModemGateway("modem.com3","COM3",9600,"11","22");
gateway.setInbound(true);
gateway.setOutbound(true);
gateway.setSimPin("0000");
gateway.setProtocol(Protocols.PDU);
srv.setOutboundNotification(outboundNotification);
srv.addGateway(gateway);
System.out.println("==========");
srv.startService();
System.out.println("==========");
msg = new OutboundMessage("1391******", "aaaa1234567");
msg.setEncoding(MessageEncodings.ENCUCS2);//这句话是发中文短信必须的
srv.sendMessage(msg);
System.out.println("Now Sleeping - Hit <enter> to terminate.");
System.in.read();
srv.stopService();
} public class OutboundNotification implements IOutboundMessageNotification { public void process(String gatewayId, OutboundMessage msg)
{
System.out.println("Outbound handler called from Gateway: " + gatewayId);
System.out.println(msg);
}} public static void main(String args[])
{
SendMessage app = new SendMessage();
try
{
app.doIt();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
错误是这样的
0 [main] INFO smslib - SMSLib: A Java API library for sending and receiving SMS via a GSM modem or other supported gateways.
This software is distributed under the terms of the Apache v2.0 License.
Web Site: http://smslib.org
0 [main] INFO smslib - Version: 3.4.1
0 [main] INFO smslib - JRE Version: 1.6.0_11
0 [main] INFO smslib - JRE Impl Version: 11.0-b16
0 [main] INFO smslib - O/S: Windows XP / x86 / 5.1
==========
31 [Thread-0] INFO smslib - GTW: modem.com3: Starting gateway, using Generic AT Handler.
31 [Thread-0] INFO smslib - GTW: modem.com3: Opening: COM3 @9600
49266 [Thread-0] INFO smslib - GTW: modem.com3: Closing: COM3 @9600
org.smslib.TimeoutException: No response from device.
at org.smslib.modem.AModemDriver$CharQueue.get(AModemDriver.java:514)
at org.smslib.modem.AModemDriver.getResponse(AModemDriver.java:306)
at org.smslib.modem.athandler.ATHandler.getSimStatus(ATHandler.java:130)
at org.smslib.modem.AModemDriver.connect(AModemDriver.java:131)
at org.smslib.modem.ModemGateway.startGateway(ModemGateway.java:158)
at org.smslib.Service$1Starter.run(Service.java:239)
60047 [pool-1-thread-3] WARN smslib - WatchDog: Gateway: modem.com3 restarting.
60047 [pool-1-thread-3] INFO smslib - GTW: modem.com3: Stopping gateway...
60047 [pool-1-thread-3] INFO smslib - GTW: modem.com3: Closing: COM3 @9600
60047 [pool-1-thread-3] INFO smslib - GTW: modem.com3: Gateway stopped.
60047 [pool-1-thread-3] INFO smslib - GTW: modem.com3: Starting gateway, using Generic AT Handler.
60047 [pool-1-thread-3] INFO smslib - GTW: modem.com3: Opening: COM3 @9600java代码public class SendMessage
{
public void doIt() throws Exception
{
Service srv;
OutboundMessage msg;
OutboundNotification outboundNotification = new OutboundNotification();
srv = new Service();
SerialModemGateway gateway = new SerialModemGateway("modem.com3","COM3",9600,"11","22");
gateway.setInbound(true);
gateway.setOutbound(true);
gateway.setSimPin("0000");
gateway.setProtocol(Protocols.PDU);
srv.setOutboundNotification(outboundNotification);
srv.addGateway(gateway);
System.out.println("==========");
srv.startService();
System.out.println("==========");
msg = new OutboundMessage("1391******", "aaaa1234567");
msg.setEncoding(MessageEncodings.ENCUCS2);//这句话是发中文短信必须的
srv.sendMessage(msg);
System.out.println("Now Sleeping - Hit <enter> to terminate.");
System.in.read();
srv.stopService();
} public class OutboundNotification implements IOutboundMessageNotification { public void process(String gatewayId, OutboundMessage msg)
{
System.out.println("Outbound handler called from Gateway: " + gatewayId);
System.out.println(msg);
}} public static void main(String args[])
{
SendMessage app = new SendMessage();
try
{
app.doIt();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
AT
AT+CSQ
AT+CREQ?
...至少保证Baud Rate设置正确, GSM Modem正常2. 测试你的程序。
其中11和22必须写成你的设备上对应的信息才可以。
我测试过,修改为正确的设备信息后没有问题了。
我用的是Wavecom的wismo,所以我的是这样写的SerialModemGateway("modem.com3","COM3",9600,"Wavecom","wismo");
System.in.read();
这两句话大家一定要注意,如果你是运行在eclipse上,那么请通过enter键来执行stopservice。
否则将上面两句话注释掉也没有问题,这样就不会出现一次运行后,需要释放端口的问题了。