コード例 #1
1
ファイル: main.c プロジェクト: wynstroh/GSMSecure
int main(void) {

	RCC_Configuration();

	RCC_ClocksTypeDef RCC_Clocks;
	RCC_GetClocksFreq(&RCC_Clocks);

	EnableClock();

	//LCD_GLASS_Configure_GPIO();
	//LCD_GLASS_Init();

	SysTick_Config((RCC_Clocks.SYSCLK_Frequency / 2) / 1000); // Cannot exceed 16,777,215

	/* Set SysTick Preemption Priority, it's a system handler rather than a regular interrupt */
	//NVIC_SetPriority(SysTick_IRQn, 0x04);

	lcdInit();
	lcdClear();
	lcdXY( 2, 5 );
	lcdStr( "Test");
	//lcdBender();

	// init rtc
	RTC_InitTypeDef rtcInit;
	rtcInit.RTC_HourFormat = RTC_HourFormat_24;
	rtcInit.RTC_AsynchPrediv = 0x7F;
	rtcInit.RTC_SynchPrediv = 0xFF;
	RTC_Init(&rtcInit);

	RTC_TimeTypeDef RTC_TimeStructure;
	RTC_DateTypeDef RTC_DateStructure;

	usart_init();

 	SetRTCClock();

 	GPIO_InitTypeDef gpio_btn;

 	gpio_btn.GPIO_Pin = GPIO_Pin_0;
 	gpio_btn.GPIO_Mode = GPIO_Mode_IN;
 	gpio_btn.GPIO_PuPd = GPIO_PuPd_UP;

 	GPIO_Init(GPIOA, &gpio_btn);

 	int prevSecond = -1;

 	while (1) {

       	//uint8_t __status = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0);

       	if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == 0x00 && !_sent)
       	{
       		_sent = 1;

       		mini_snprintf( strDisp, 22,  "20%02d/%02d/%02d %02d:%02d:%02d Hallo !!!", RTC_DateStructure.RTC_Year, RTC_DateStructure.RTC_Month, RTC_DateStructure.RTC_Date, RTC_TimeStructure.RTC_Hours, RTC_TimeStructure.RTC_Minutes, RTC_TimeStructure.RTC_Seconds);

       		SendSMS("0836325001",strDisp);
       	}

       	if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) != 0x00 && _sent)
       	{
       		_sent = 0;
       	}

       	RTC_GetTime(RTC_Format_BIN, &RTC_TimeStructure );
       	RTC_GetDate(RTC_Format_BIN, &RTC_DateStructure);



       	if ( RTC_TimeStructure.RTC_Seconds != prevSecond )
        {
       		lcdClear();
       		mini_snprintf( strDisp, 11,  "20%02d/%02d/%02d", RTC_DateStructure.RTC_Year, RTC_DateStructure.RTC_Month, RTC_DateStructure.RTC_Date);
       		lcdXY( 0, 0 );
       		lcdStr( strDisp);
       		mini_snprintf( strDisp, 10,  "%02d:%02d:%02d", RTC_TimeStructure.RTC_Hours, RTC_TimeStructure.RTC_Minutes, RTC_TimeStructure.RTC_Seconds );
       		lcdXY( 0, 1 );
       		lcdStr( strDisp);
        	//LCD_GLASS_Clear();
        	//LCD_GLASS_DisplayString( strDisp );
        	prevSecond = RTC_TimeStructure.RTC_Seconds;
        }

			/*if ( usart_available() ) // data available
			{
				//usart_print( "Data Available: " );
				uint8_t ch = usart_read();
				//usart_write(ch);
				//usart_print( "\r\n" );
				SendSMS("836325001","Wynand");
			}*/

  		}


        return 0;
}
コード例 #2
0
ファイル: NewSmsWnd.cpp プロジェクト: radtek/mobilelzz
/*
 *拆分短信发送
*/
bool CNewSmsWnd::SendSMS_Wrapper(IN CMzString&  Number)
{
	bool SendFlag = false;
	CMzString  NewNumber ;
	if(Number.C_Str()[0] ==L'1')
	{
		NewNumber = L"+86";
		NewNumber += Number;
	}
	else
	{
		NewNumber = Number;
	}


	CMzString  SMS_Content = m_SmsMsgEdit->GetText().C_Str();

	
	int length = SMS_Content.Length();
	if( length <= 69 )
	{
	 	SendFlag = SendSMS(NewNumber.C_Str(), m_SmsMsgEdit->GetText().C_Str());
		HRESULT	hr	=	smsInsert( NewNumber.C_Str(), m_SmsMsgEdit->GetText().C_Str() );
		if (FAILED(hr))
		{
			return	false;
		}
	}
	else
	{
		for(int i = 0; i < length; i+=69)
		{
			int count = ((length - i) < 69 ? (length-i): 69); 
			CMzString Single_Content =SMS_Content.SubStr(i,count);

			SendFlag = SendSMS(NewNumber.C_Str(), Single_Content.C_Str() );
			

		}
		HRESULT	hr	=	smsInsert( NewNumber.C_Str(), SMS_Content.C_Str() );
		if (FAILED(hr))
		{
			return	false;
		}
	}


	return SendFlag;

}
コード例 #3
0
void SendSMSMessage(int battery, int signalPercent, LPTSTR number)
{

	TCHAR gpszMessage[160];

	if(battery == 255){
		_sntprintf(gpszMessage, sizeof(gpszMessage), TEXT("Battery life: UNKNOWN, Signal Strength: %d percent"), signalPercent );
	}
	else{		
		_sntprintf(gpszMessage, sizeof(gpszMessage), TEXT("Battery life: %d percent, Signal Strength: %d percent"), battery, signalPercent );
	}

	LPTSTR gpszServer = (LPTSTR)L"";

	LPTSTR gpszRecipient = number;
	SendSMS(false, true, gpszServer, gpszRecipient, gpszMessage);

	/*
	MessageBox(NULL,
	L"Message Sent", 
	L"Sent",
	MB_OK);

	*/
}
コード例 #4
0
void CDisplayGPSData::SendSMSMessage()
{
	TCHAR gpszMessage[160];

	_sntprintf(gpszMessage, sizeof(gpszMessage), TEXT("http://maps.google.com/maps?q=%2.6f,%2.6f Alt%2.2f Speed%3.1f Heading%3.2f H-Quality%3.1f V-Quality%3.1f Satel%d"), 
		best_GPS_Position.dblLatitude, 
		best_GPS_Position.dblLongitude, 
		best_GPS_Position.flAltitudeWRTSeaLevel, 
		best_GPS_Position.flSpeed, 
		best_GPS_Position.flHeading, 
		best_GPS_Position.flHorizontalDilutionOfPrecision,
		best_GPS_Position.flVerticalDilutionOfPrecision,
		best_GPS_Position.dwSatelliteCount);

	LPTSTR gpszServer = (LPTSTR)L"";
	LPTSTR gpszRecipient = number;
	SendSMS(false, true, gpszServer, gpszRecipient, gpszMessage);

	/*
	MessageBox(NULL,
					L"Message Sent", 
					L"Sent",
					MB_OK);
	*/	
}
コード例 #5
0
void CDisplayGPSData::SendSMSError()
{
	TCHAR gpszMessage[160];

	_sntprintf(gpszMessage, sizeof(gpszMessage), TEXT("GPS timed out."));

	LPTSTR gpszServer = (LPTSTR)L"";
	LPTSTR gpszRecipient = number;
	SendSMS(false, true, gpszServer, gpszRecipient, gpszMessage);
}
コード例 #6
0
ファイル: main.c プロジェクト: IvanOrfanidi/AVR-Tests-Project
int main(void){

	init();

	usart0_init();

	sei();

	for(uint8_t delay=0; delay<3; delay++) 
		_delay_ms(1000);

	while(AtOk())			//Проверяем готовность модуля командой AT.
	{
		PORT_SIM|= (PWR_KEY);
		_delay_ms(2000);
		PORT_SIM&= ~(PWR_KEY);
		_delay_ms(5000);
		PORT_SIM|= (PWR_KEY);
	}
	
	while(ConfigGsmModules())	_delay_ms(1000);

	_delay_ms(500);

	while(GsmReg())	_delay_ms(2000);

//	START_TIMER0;

	_delay_ms(1000);

	//SimIMEI(u);	//!!!And IMEI_NUM_ENABLE

	while(SignalQualityReport(u)) 	_delay_ms(2000);
	

	while(SendSMS("+79119008502", "Hello GSM SIM300!")) _delay_ms(2000);

	//while(UnstructuredSupplementaryServiceData("#102#", u)) _delay_ms(2000);


	while(1){
		
		//PORT_OUT|=BUZ;
		
		PORT_OUT&=~BUZ;
		PORT_OUT&=~BUZ;
		PORT_OUT&=~BUZ;

	}
}
コード例 #7
0
ファイル: SMSReply.cpp プロジェクト: oldhu/smstw
static void SendTheSMS(DmOpenRef db, gb2312_table& table, const char* pszTo, const char* pszCompose)
{
	Err err = SendSMS(table, "+8613800100500", pszTo, pszCompose);
//	err = SendSMS(table, "+8613800100500", pszTo, testStr);
	if (!err) {
		UInt8 state = 0;
		SendPref spref;
		ReadSendPreference(spref);
		if (spref.requestReport) RequestReport(state);
		NewRecordInCategory(db, pszTo, pszCompose, CAT_SENT, state);
		SortSMS(db);
	} else {
		FrmCustomAlert(AlertCustom, "Alert", "Message send failed.", "");
	}
}
コード例 #8
0
ファイル: sms.cpp プロジェクト: Eih3/Arduino
/**********************************************************
Method sends SMS to the specified SIM phonebook position

sim_phonebook_position:   SIM phonebook position <1..20>
message_str:              pointer to the SMS text string


return:
        ERROR ret. val:
        ---------------
        -1 - comm. line to the GSM module is not free
        -2 - GSM module didn't answer in timeout
        -3 - specified position must be > 0

        OK ret val:
        -----------
        0 - SMS was not sent
        1 - SMS was sent


an example of usage:
        GSM gsm;
        gsm.SendSMS(1, "SMS text");
**********************************************************/
char SMSGSM::SendSMS(byte sim_phonebook_position, char *message_str)
{
     char ret_val = -1;
     char sim_phone_number[20];

     ret_val = 0; // SMS is not send yet
     if (sim_phonebook_position == 0) return (-3);
     if (1 == gsm.GetPhoneNumber(sim_phonebook_position, sim_phone_number)) {
          // there is a valid number at the spec. SIM position
          // => send SMS
          // -------------------------------------------------
          ret_val = SendSMS(sim_phone_number, message_str);
     }
     return (ret_val);

}
コード例 #9
0
ファイル: modem.c プロジェクト: PascalSI/ampm_car_tracker
uint8_t MODEM_SendSMS(const uint8_t *recipient, uint8_t *data)
{
// 	uint8_t buf[161];
// 	uint16_t len;
// 	len = strlen((char *)data);
// 	while(len)
// 	{
// 		if(len > 160) len = 160;
// 		strncpy((char *)buf, (char *)data, len);
// 		data += len;
// 		buf[len] = 0;
		data[160] = 0;
		MODEM_Info("\r\nGSM->SMS:%s\r\n",data);
		if(SendSMS(recipient, data)) return 0xff;
//		len = strlen((char *)data);
	return 0;
}
コード例 #10
0
ファイル: sms.c プロジェクト: Apercu/iphone-sms
static int
send_sms (const char *phone, const char *text)
{
    return SendSMS(gsm_modem, phone, text);	
    return -1;
}