コード例 #1
0
void ShowStats(Serial *serial, unsigned int argc, char **argv){

	serial->put_s("== Memory Info ==\r\n");
	unsigned long heap = (unsigned long)_heap_address;
	unsigned long lastPointer = getLastPointer();
	serial->put_s("Heap address         :");
	put_uint(serial, heap);
	put_crlf(serial);
	serial->put_s("Last pointer address :");
	put_uint(serial, lastPointer);
	put_crlf(serial);
	serial->put_s("Heap size            :");
	put_uint(serial, (unsigned int)&_CONFIG_HEAP_SIZE);
	put_crlf(serial);
	serial->put_s("Estimated Usage      :");
	put_uint(serial, lastPointer - heap);
	put_crlf(serial);
	serial->put_s("== Lua Info ==\r\n");
	lua_State *L = getLua();
	lua_gc(L,LUA_GCCOLLECT,0);
	serial->put_s("Lua Top              :");
	put_int(serial, lua_gettop(L));
	put_crlf(serial);
	serial->put_s("Lua GC Count         :");
	put_int(serial, lua_gc(L,LUA_GCCOUNT,0));
	put_crlf(serial);
	serial->put_s("== Misc ==\r\n");
	serial->put_s("sizeof LoggerConfig  :");
	put_int(serial, sizeof(LoggerConfig));
	put_crlf(serial);
	serial->put_s("sizeof SampleRecord  :");
	put_int(serial, sizeof(SampleRecord));
	put_crlf(serial);
}
コード例 #2
0
void api_sendSampleRecord(Serial *serial, SampleRecord *sr, unsigned int tick, int sendMeta){
	json_messageStart(serial);
	json_blockStart(serial, "s");

	json_uint(serial,"t",tick,1);
	if (sendMeta) writeSampleMeta(serial, sr, getConnectivitySampleRateLimit(), 1);

	size_t channelCount = 0;
	unsigned int channelsBitmask = 0;
	json_arrayStart(serial, "d");
	for (int i = 0; i < SAMPLE_RECORD_CHANNELS; i++){
		ChannelSample *sample = &(sr->Samples[i]);
		ChannelConfig * channelConfig = sample->channelConfig;
		if (SAMPLE_DISABLED != channelConfig->sampleRate){
			if (NIL_SAMPLE != sample->intValue){
				channelsBitmask = channelsBitmask | (1 << channelCount);
				int precision = sample->precision;
				if (precision > 0){
					put_float(serial, sample->floatValue, precision);
				}
				else{
					put_int(serial, sample->intValue);
				}
				serial->put_c(',');
			}
			channelCount++;
		}
	}
	put_uint(serial, channelsBitmask);
	json_arrayEnd(serial, 0);

	json_blockEnd(serial, 0);
	json_blockEnd(serial, 0);
}
コード例 #3
0
void ShowStats(Serial *serial, unsigned int argc, char **argv)
{
    // Memory Info
    putHeader(serial, "Memory Info");

    putDataRowHeader(serial, "Total Memory");
    put_uint(serial, (unsigned int) &_CONFIG_HEAP_SIZE);
    put_crlf(serial);

    putDataRowHeader(serial, "Free Memory");
    put_uint(serial, portGetFreeHeapSize());
    put_crlf(serial);

    // LUA Info
    putHeader(serial, "Lua Info");

    //TODO: this was done for unit testing. fix when Lua runtime is part of unit testing framework
    lua_State *L = (lua_State *) getLua();
    lua_gc(L, LUA_GCCOLLECT, 0);

    putDataRowHeader(serial, "Lua Top");
    put_int(serial, lua_gettop(L));
    put_crlf(serial);

    putDataRowHeader(serial, "Lua Memory Usage (KB)");
    put_int(serial, lua_gc(L, LUA_GCCOUNT, 0));
    put_crlf(serial);

    // Misc Info
    putHeader(serial, "Misc");

    putDataRowHeader(serial, "Size of LoggerConfig");
    put_int(serial, sizeof(LoggerConfig));
    put_crlf(serial);

    putDataRowHeader(serial, "Size of ChannelSample");
    put_int(serial, sizeof(ChannelSample));
    put_crlf(serial);
}
コード例 #4
0
ファイル: zf_log.c プロジェクト: pjc42/zf_log
static void put_src(zf_log_message *const msg, const src_location *const src)
{
#if ZF_LOG_OPTIMIZE_SIZE
	int n;
	n = snprintf(msg->p, nprintf_size(msg), "%s@%s:%u ",
				 src->func, filename(src->file), src->line);
	put_nprintf(msg, n);
#else
	msg->p = put_string(src->func, msg->p, msg->e);
	if (msg->p < msg->e) *msg->p++ = '@';
	msg->p = put_string(filename(src->file), msg->p, msg->e);
	if (msg->p < msg->e) *msg->p++ = ':';
	msg->p = put_uint(src->line, 0, '\0', msg->p, msg->e);
	if (msg->p < msg->e) *msg->p++ = ' ';
#endif
}
コード例 #5
0
void json_uint(Serial *serial, const char *name, unsigned int value, int more)
{
    putKeyAndColon(serial, name);
    put_uint(serial, value);
    putCommaIfNecessary(serial, more);
}