Ejemplo n.º 1
0
void basicTests() {
	int n1 = 10; Partition prtn(n1); string s;

	cout << "writing initial partition: " << prtn.toString(s);
	Utest::assertEqual(prtn.toString(s), "[a*] [b*] [c*] [d*] [e*] "
					     "[f*] [g*] [h*] [i*] [j*] \n",
					     "initial partition not correct");

	prtn.link(1,2); prtn.link(3,4); prtn.link(5,6);
	cout << "writing new partition: " << prtn.toString(s);
	Utest::assertEqual(prtn.toString(s), "[a b*] [c d*] [e f*] "
					     "[g*] [h*] [i*] [j*] \n",
					     "mismatch after 3 links");

	prtn.link(2,4); prtn.link(4,7); prtn.link(6,8);
	cout << "writing new partition: " << prtn.toString(s);
	Utest::assertEqual(prtn.toString(s), "[a b c d* g] [e f* h] [i*] [j*] "
					     "\n",	
					     "mismatch after 3 more links");

	prtn.link(9,10); prtn.link(6,10); prtn.link(10,4);
	cout << "writing new partition: " << prtn.toString(s);
	Utest::assertEqual(prtn.toString(s), "[a b c d* e f g h i j] \n",
					     "mismatch after last 3 links");
}
Ejemplo n.º 2
0
int gprs_SendSocket( lua_State *L, char *REQ)
{
int timeout = luaL_checkinteger(L, 1)*1000000;
const char *DATA = luaL_checkstring( L, 4 );

	if( gprs_SendHeader(L, REQ) == 1 )
	{
		sendCommand(DATA, EOL, EOL, strlen(DATA), timeout);
		prtn("\x1A",1);
		return waitAnswer(3*timeout, MSG_OK, MSG_NOK );
	}

return 0;
}
Ejemplo n.º 3
0
char *readCommand(const char *COMMAND, const char *EOM1, const char *EOM2, const char *STARTCOMP, const char *ENDCOMP, lua_State *L)
{
size_t i;
uint32_t now = 0;
char ret[BUFFER_SZ];
char *ptr;
char *end;
size_t TIMEOUT = luaL_checkinteger(L, 1);
int min_sz = 0;
//size_t echo = luaL_checkinteger(L, 2);

	if( COMMAND != NULL )
		prtn(COMMAND, strlen(COMMAND));

	now = system_get_time() + (TIMEOUT * 1000000);
	i = 0;
	min_sz = strlen(EOM1);
	c_memset(ret, 0 , BUFFER_SZ);
	while( now > system_get_time() )
	{
		system_soft_wdt_feed ();
		if( uart_getc(&ret[i & BUFFER_MSK]) )
		{
			if( ret[i] == 0 )
				i--;
			i++;
			if( i >= min_sz )
			{
				if( c_strstr(ret,EOM1) != NULL  || c_strstr(ret,EOM2) != NULL)
				{
					if( (ptr = c_strstr(ret,STARTCOMP)) != NULL )
					{
						ptr += strlen(STARTCOMP);
						if( (end = c_strstr(ptr,ENDCOMP)) != NULL )
						{
							*end = 0;
							return ptr;
						}
					}else
						break;
				}
			}
		}
	}
	return NULL;
}
Ejemplo n.º 4
0
static int gprs_rssi( lua_State* L )
{
uint32_t timeout = luaL_checkinteger(L, 1) * 1000000;
uint32_t now = system_get_time() + timeout;
uint32_t  i = 0;
char Aux[BUFFER_SZ];
char *ptr;
char *ret;
char *ptrEnd;
int16_t val = 0;
	c_memset(Aux, 0, BUFFER_SZ);
	prtn(RSSI,strlen(RSSI));
	while( now > system_get_time() )
	{
		system_soft_wdt_feed ();
		if( uart_getc(&Aux[i & BUFFER_MSK]) )
		{
			i++;
			if( (ptrEnd = strstr(Aux,MSG_OK)) != NULL )
			{
				if( (ptr = strstr(Aux,"+CSQ: ")) != NULL )
				{
					ret = strstr(ptr," ") + 1;
					ptrEnd = strstr(ret,",");
					*ptrEnd = 0;
					val = (2*atoi(ret)) - 113;
					lua_pushinteger(L, val );
					if( val < -100 )
						lua_pushstring(L,  "Poor");
					else if( val <= -91 )
						lua_pushstring(L,  "Low");
					else if( val <=-76 )
						lua_pushstring(L,  "Medium");
					else
						lua_pushstring(L,  "High");
					return 2;
				}
			}
		}else if( (ptrEnd = strstr(Aux,MSG_NOK)) != NULL )
			break;
	}
	return 0;
}
Ejemplo n.º 5
0
char *gprs_ReadCommand(const char *COMMAND,const char *STARTCOMP, const char *ENDCOMP, lua_State *L)
{
size_t i;
uint32_t now = 0;
char ret[BUFFER_SZ];
char *ptr;
char *end;
size_t TIMEOUT = luaL_checkinteger(L, 1);

	if( COMMAND == NULL )
		return NULL;

	prtn(COMMAND, strlen(COMMAND));
	now = system_get_time() + (TIMEOUT * 1000000);
	i = 0;
	c_memset(ret, 0 , BUFFER_SZ);
	while( now > system_get_time() )
	{
		system_soft_wdt_feed ();
		if( uart_getc(&ret[i & 0x1FF]) )
		{
			if( ret[i] == 0 ) i--;
			i++;
			if( strstr(ret,GPRS_A[0]) != NULL )
			{
				if( (ptr = strstr(ret,STARTCOMP)) != NULL )
				{
					ptr += strlen(STARTCOMP);
					if( (end = strstr(ptr,ENDCOMP)) != NULL )
					{
						*end = 0;
						return ptr;
					}
				}else
					break;
			}else if( strstr(ret,GPRS_A[1]) != NULL )
				return (char*)GPRS_A[1];
		}
	}
return NULL;
}
Ejemplo n.º 6
0
unsigned char sendCommand(const char *COMMAND, const char *OK, const char *NOK, int len, uint32_t TIMEOUT)
{
	prtn(COMMAND,len);
	return waitAnswer(TIMEOUT, OK, NOK );
}