// Lua: r = ow.read_bytes( id, size ) static int ow_read_bytes( lua_State *L ) { unsigned id = luaL_checkinteger( L, 1 ); MOD_CHECK_ID( ow, id ); u32 size = ( u32 )luaL_checkinteger( L, 2 ); if( size == 0 ) return 0; luaL_Buffer b; luaL_buffinit( L, &b ); char *p = luaL_prepbuffer(&b); onewire_read_bytes(id, (uint8_t *)p, size); luaL_addsize(&b, size); luaL_pushresult( &b ); return 1; }
// Lua: r = ow.read_bytes( id, size ) static int ow_read_bytes( lua_State *L ) { unsigned id = luaL_checkinteger( L, 1 ); MOD_CHECK_ID( ow, id ); u32 size = ( u32 )luaL_checkinteger( L, 2 ); if( size == 0 ) return 0; luaL_argcheck(L, size <= LUAL_BUFFERSIZE, 2, "Attempt to read too many characters"); luaL_Buffer b; luaL_buffinit( L, &b ); char *p = luaL_prepbuffer(&b); onewire_read_bytes(id, (uint8_t *)p, size); luaL_addsize(&b, size); luaL_pushresult( &b ); return 1; }