Example #1
0
bool get_apn_by_imsi( )
{
	u8 retry;
	u8 respond_str[AT_CMD_LENGTH];
	unsigned int i, apn_count ;

	apn_count = sizeof(apn_list)/sizeof(apn_list[0]);

	for ( retry = 0 ;retry < 3 ; retry++) {
		putstring(COM2, "AT+CIMI\r\n");//get imsi
		memset(respond_str, 0x0, AT_CMD_LENGTH);
		if ( my_icar.stm32_u2_rx.empty ) {//no data...
			OSTimeDlyHMSM(0, 0,	0, 100);
		}
		while ( !my_icar.stm32_u2_rx.empty ) {//have data ...
			if ( get_respond(respond_str) ) {
				
				if ( (respond_str[0] >= 0x30) && (respond_str[0] <= 0x39) ){
					debug_gsm("IMSI: %s\r\n",respond_str);
					strncpy((char *)my_icar.mg323.imsi, (char *)respond_str, 15);
					for ( i = 0 ; i < apn_count ; i++ ) {
						if ( cmpmem(respond_str,(unsigned char *)apn_list[i][0],5 )) {
							my_icar.mg323.apn_index = i ;
							return true;
						}
					}
				}
			}
			else {
				debug_gsm("CMD:AT+CIMI no respond, timeout\r\n");
			}
		}
		OSTimeDlyHMSM(0, 0,	0, 500);
	}
	return false ;      
}
Example #2
0
main()
{
    static char b1[] = { "abcda" };
    static char b2[] = { "abcda" };
    static char b3[] = { "xbada" };
    static char b4[] = { "xbadb" };

    if (cmpmem(b1, b2, 4))
	puts("cmpmem failed 1");
    if (cmpmem(b2, b3, 4) >= 0)
	puts("cmpmem failed 2");
    if (cmpmem(b3, b2, 4) <= 0)
	puts("cmpmem failed 3");

    if (cmpmem(b3, b4, 5) >= 0)
	puts("cmpmem failed 4");
    if (cmpmem(b4, b3, 5) <= 0)
	puts("cmpmem failed 5");
    if (cmpmem(b1, b2, 5))
	puts("cmpmem failed 6");
}