📄 wmmpsms.c
字号:
// wmmpsms.cpp : Defines the entry point for the console application.
//
//#include "stdafx.h"
//#include "smscode/sms.h"
//#include "smscode/dataformat.h"
//#include "smscode/typedef.h"
//#include "smscode/xsmsfrm.h"
#include <stdio.h>
#include "sms.h"
#include "dataformat.h"
#include "typedef.h"
#include "xsmsfrm.h"
int send7bitsms(void);
int send8bitsms(void);
int sendunicsms(void);
int checknewsms(void);
int recvanysms(void);
int sendtext7bit(void);
int sendpdu7bit(void);
int sendtext8bit(void);
int sendpdu8bit(void);
int sendtextucs16(void);
int sendpduucs16(void);
SmsHandle hSmsHandle;
int main(int argc, char* argv[])
{
int ret;
int input;
int ifexit;
uchar csq, berr;
int smsopen = 0;
printf("Open sms...\n");
ret = opensms("COM1", &hSmsHandle);
if (ret < 0)
{
WMMP_TRACE(debugType, "\r\nError: opensms");
printf("Error: opensms\n");
goto main_fail;
}
smsopen = 1;
printf("Succ to open sms\n");
printf("Initialize sms...\n");
ret = initsms(hSmsHandle);
if (ret < 0)
{
WMMP_TRACE(debugType, "\r\nError: initsms");
goto main_fail;
}
printf("Succ to initialize sms\n");
while (1)
{
printf(" Sms Test \n");
printf("1.7-bit 2.8-bit 3.UCS2\n");
printf("4.ifnewsms 5.recvsms\n");
printf("6.CSQ\n");
printf("0.exit\n");
input = getchar();
ret = getchar();
switch(input)
{
case '1':
send7bitsms();
break;
case '2':
send8bitsms();
break;
case '3':
sendunicsms();
break;
case '4':
checknewsms();
break;
case '5':
recvanysms();
break;
case '6':
csq = 0;
ret = testcsq(hSmsHandle, &csq, &berr);
if (ret == 0)
{
printf("Current CSQ: %d\n", csq);
printf("Current biterr: %d\n", berr);
}
else
{
printf("Failed to get CSQ\n");
}
getchar();
break;
case '0':
ifexit = 1;
break;
default:
break;
}
if (ifexit == 1)
{
printf("exit sms text\n");
break;
}
}
ret = closesms(&hSmsHandle);
if (ret < 0)
{
WMMP_TRACE(debugType, "\r\nError: closesms");
goto main_fail;
}
return 0;
main_fail:
if (smsopen == 1)
{
closesms(&hSmsHandle);
}
getchar();
return -1;
}
int send7bitsms(void)
{
int ret;
int inkey, ifexit;
while (1)
{
printf(" Send 7-bit SMS\n");
printf("1. TEXT 2. PDU\n");
printf("0. exit send 7-bit sms\n");
inkey = getchar();
ret = getchar();
switch(inkey)
{
case '1':
sendtext7bit();
break;
case '2':
sendpdu7bit();
break;
case '0':
ifexit = 1;
break;
default:
break;
}
if (ifexit == 1)
{
printf("exit send 7-bit SMS\n");
break;
}
}
return 0;
}
int sendtext7bit()
{
int i, smslen, ret;
char ch;
char smsdata[256];
char number[30];
SMS_CONFIG smsconfig;
memset(smsdata, 0, sizeof(smsdata));
printf("Input sms content:\n");
/* Read in single line from "stdin": */
for( i = 0; (i < 140) && ((ch = getchar()) != EOF)
&& (ch != '\n'); i++ )
smsdata[i] = (char)ch;
/* Terminate string with null character: */
smsdata[i] = '\0';
smslen = strlen(smsdata);
printf("SMS contents:\n%s\n", smsdata);
memset(number, 0, sizeof(number));
printf("Input peer number:\n");
for( i = 0; (i < 140) && ((ch = getchar()) != EOF)
&& (ch != '\n'); i++ )
number[i] = (char)ch;
number[i] = '\0';
printf("Peer number: %s\n", number);
memset(&smsconfig, 0, sizeof(SMS_CONFIG));
ret = getsmsconfig(hSmsHandle, &smsconfig);
if (ret < 0)
{
printf("Error: get SMS configure");
goto sendtext7bit_fail;
}
if (smsconfig.smstype != SMS_TEXT || smsconfig.smscode != SMS_ENCODE_7BIT)
{//need to set
smsconfig.smstype = SMS_TEXT;
smsconfig.smscode = ENCODE_7BIT;
}
ret = setsmsconfig(hSmsHandle, &smsconfig);
if (ret < 0)
{
printf("Error: set SMS configure\n");
goto sendtext7bit_fail;
}
printf("Sending...\n");
ret = sendsms(hSmsHandle, (uchar*)smsdata, smslen, number);
if (ret < 0)
{
printf("Failed to send SMS\n");
}
else
{
printf("Succ to send SMS\n");
}
getchar();
return 0;
sendtext7bit_fail:
return -1;
}
int sendpdu7bit()
{
int i, smslen, ret, sms7bitlen;
char ch;
char smsdata[256];
char number[30];
uchar sms7bitcode[512];
SMS_CONFIG smsconfig;
memset(smsdata, 0, sizeof(smsdata));
printf("Input sms content:\n");
/* Read in single line from "stdin": */
for( i = 0; (i < 140) && ((ch = getchar()) != EOF)
&& (ch != '\n'); i++ )
smsdata[i] = (char)ch;
/* Terminate string with null character: */
smsdata[i] = '\0';
smslen = strlen(smsdata);
printf("SMS contents:\n%s\n", smsdata);
memset(number, 0, sizeof(number));
printf("Input peer number:\n");
for( i = 0; (i < 140) && ((ch = getchar()) != EOF)
&& (ch != '\n'); i++ )
number[i] = (char)ch;
number[i] = '\0';
printf("Peer number: %s\n", number);
memset(&smsconfig, 0, sizeof(SMS_CONFIG));
ret = getsmsconfig(hSmsHandle, &smsconfig);
if (ret < 0)
{
printf("Error: get SMS configure");
goto sendpdu7bit_fail;
}
if (smsconfig.smstype != SMS_PDU || smsconfig.smscode != SMS_ENCODE_7BIT)
{//need to set
smsconfig.smstype = SMS_PDU;
smsconfig.smscode = ENCODE_7BIT;
smsconfig.pdu.tp_dcs = 0x00;
}
ret = setsmsconfig(hSmsHandle, &smsconfig);
if (ret < 0)
{
printf("Error: set SMS configure\n");
goto sendpdu7bit_fail;
}
//encode sms data by 7-bit
memset(sms7bitcode, 0, sizeof(sms7bitcode));
smslen = strlen(smsdata);
ret = convsmsdata((uchar*)smsdata, smslen, sms7bitcode, &sms7bitlen, ENCODE_7BIT);
if (ret < 0)
{
printf("Error: convert sms data by 7-bit coding\n");
goto sendpdu7bit_fail;
}
printf("Sending...\n");
ret = sendsms(hSmsHandle, sms7bitcode, smslen, number);
if (ret < 0)
{
printf("Failed to send SMS\n");
}
else
{
printf("Succ to send SMS\n");
}
getchar();
return 0;
sendpdu7bit_fail:
return -1;
}
int send8bitsms(void)
{
int ret;
int inkey, ifexit;
while (1)
{
printf(" Send 8-bit SMS\n");
printf("1. TEXT 2. PDU\n");
printf("0. exit send 8-bit sms\n");
inkey = getchar();
ret = getchar();
switch(inkey)
{
case '1':
sendtext8bit();
break;
case '2':
sendpdu8bit();
break;
case '0':
ifexit = 1;
break;
default:
break;
}
if (ifexit == 1)
{
printf("exit send 8-bit SMS\n");
break;
}
}
return 0;
}
int sendtext8bit(void)
{
int i, smslen, ret, sms8bitlen;
char ch;
char smsdata[256];
char number[30];
// uchar sms8bitcode[512];
SMS_CONFIG smsconfig;
memset(smsdata, 0, sizeof(smsdata));
printf("Input sms content:\n");
/* Read in single line from "stdin": */
for( i = 0; (i < 140) && ((ch = getchar()) != EOF)
&& (ch != '\n'); i++ )
smsdata[i] = (char)ch;
/* Terminate string with null character: */
smsdata[i] = '\0';
smslen = strlen(smsdata);
printf("SMS contents:\n%s\n", smsdata);
memset(number, 0, sizeof(number));
printf("Input peer number:\n");
for( i = 0; (i < 140) && ((ch = getchar()) != EOF)
&& (ch != '\n'); i++ )
number[i] = (char)ch;
number[i] = '\0';
printf("Peer number: %s\n", number);
memset(&smsconfig, 0, sizeof(SMS_CONFIG));
ret = getsmsconfig(hSmsHandle, &smsconfig);
if (ret < 0)
{
printf("Error: get SMS configure");
goto sendtext8bit_fail;
}
if (smsconfig.smstype != SMS_TEXT || smsconfig.smscode != SMS_ENCODE_8BIT)
{//need to set
smsconfig.smstype = SMS_TEXT;
smsconfig.smscode = SMS_ENCODE_8BIT;
}
ret = setsmsconfig(hSmsHandle, &smsconfig);
if (ret < 0)
{
printf("Error: set SMS configure\n");
goto sendtext8bit_fail;
}
//encode sms data by 8-bit
/*
memset(sms8bitcode, 0, sizeof(sms8bitcode));
ret = convsmsdata((uchar*)smsdata, strlen(smsdata), sms7bitcode, &sms7bitlen, SMS_ENCODE_7BIT);
if (ret < 0)
{
printf("Error: convert sms data by 7-bit coding\n");
goto sendtext8bit_fail;
}
*/
printf("Sending...\n");
sms8bitlen = strlen(smsdata);
ret = sendsms(hSmsHandle, (uchar*)smsdata, sms8bitlen, number);
if (ret < 0)
{
printf("Failed to send SMS\n");
}
else
{
printf("Succ to send SMS\n");
}
getchar();
return 0;
sendtext8bit_fail:
return -1;
}
int sendpdu8bit(void)
{
int i, smslen, ret, sms8bitlen;
char ch;
char smsdata[256];
char number[30];
// uchar sms8bitcode[512];
SMS_CONFIG smsconfig;
memset(smsdata, 0, sizeof(smsdata));
printf("Input sms content:\n");
/* Read in single line from "stdin": */
for( i = 0; (i < 140) && ((ch = getchar()) != EOF)
&& (ch != '\n'); i++ )
smsdata[i] = (char)ch;
/* Terminate string with null character: */
smsdata[i] = '\0';
smslen = strlen(smsdata);
printf("SMS contents:\n%s\n", smsdata);
memset(number, 0, sizeof(number));
printf("Input peer number:\n");
for( i = 0; (i < 140) && ((ch = getchar()) != EOF)
&& (ch != '\n'); i++ )
number[i] = (char)ch;
number[i] = '\0';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -