示例#1
0
bool CApoxObj::setBaudrate( uint8_t rate )
{
	uint8_t command;

	switch (rate)
	{
		case 0:
			command = SET_BAUD_1MEG;		
			break;

		case 1:
			command = SET_BAUD_500K;		
			break;

		case 2:
			command = SET_BAUD_250K;		
			break;

		case 3:
			command = SET_BAUD_125K;		
			break;
	}

	responseMsg msg;
	if ( !sendCommandWait( command, &msg, 1000 ) ) return false;

	if ( msg.command != ( command | 0x80 ) ) return false;

	return true;
}
int closeNet(Serial *serial)
{
    delayMs(1100);
    putsCell(serial, "+++");
    delayMs(1100);
    return sendCommandWait(serial, "AT+CIPCLOSE\r", "OK", SHORT_TIMEOUT);
}
示例#3
0
short CApoxObj::getAdapterCOMSTAT( void )
{
	responseMsg msg;
	if ( USB_OK != sendCommandWait( GET_COMSTAT, &msg, 1000 ) ) {
		return -1;
	}

	return msg.data[ 0 ];
}
示例#4
0
short CApoxObj::getRxErrorCount( void )
{
	responseMsg msg;
	if ( USB_OK != sendCommandWait( GET_RX_ERR_CNT, &msg, 1000 ) ) {
		return -1;
	}

	return msg.data[ 0 ];
}
示例#5
0
int CApoxObj::getAdapterRunMode( void )
{
	responseMsg msg;
	if ( !sendCommandWait( WHICH_CODE_IS_RUNNING, &msg, 1000 ) ) return -1;

	if ( 0xcc == msg.data[ 0 ] ) return RUNMODE_MAIN;	// Main code
	if ( 0x55 == msg.data[0] ) return RUNMODE_BOOT;		// Boot code

	return -1;		
}
int configureNet(Serial *serial, const char *apnHost, const char *apnUser, const char *apnPass)
{
    if (!sendCommandOK(serial, "AT+CIPMUX=0\r")) return -1;  //TODO enable for SIM900
    if (!sendCommandOK(serial, "AT+CIPMODE=1\r")) return -1;

    //if (!sendCommand("AT+CIPCCFG=3,2,256,1\r")) return -1;

    flushModem(serial);
    putsCell(serial, "AT+CSTT=\"");
    putsCell(serial, apnHost);
    putsCell(serial, "\",\"");
    putsCell(serial, apnUser);
    putsCell(serial, "\",\"");
    putsCell(serial, apnPass);
    putsCell(serial, "\"\r");
    if (!waitCommandResponse(serial, "OK", READ_TIMEOUT)) {
        return -2;
    }

//	if (!sendCommand("AT+CIPHEAD=1\r")) return -2;

    if (sendCommandWait(serial, "AT+CIICR\r", "OK", CONNECT_TIMEOUT) != 1) {
        return -3;
    }

    if (getIpAddress(serial) !=0 ) {
        return -4;
    }

    // Configure DNS to use Google DNS
    const char dnsCmd[] = "AT+CDNSCFG=\"8.8.8.8\",\"8.8.4.4\"\r";
    if (sendCommandWait(serial, dnsCmd, "OK", READ_TIMEOUT) != 1) {
        return -5;
    }

    return 0;
}
static int sendCommand(Serial *serial, const char * cmd, const char *expectedRsp)
{
    return sendCommandWait(serial, cmd, expectedRsp, READ_TIMEOUT);
}