Merge pull request #67 from Next-Flip/fix-random

Explain RNG differences, Fix JS Math.random()
This commit is contained in:
WillyJL
2024-04-02 17:06:58 +01:00
committed by GitHub
3 changed files with 7 additions and 3 deletions

View File

@@ -211,7 +211,7 @@ void js_math_random(struct mjs* mjs) {
mjs_return(mjs, MJS_UNDEFINED); mjs_return(mjs, MJS_UNDEFINED);
} }
const uint32_t random_val = furi_hal_random_get(); const uint32_t random_val = furi_hal_random_get();
double rnd = (double)random_val / RAND_MAX; double rnd = (double)random_val / FURI_HAL_RANDOM_MAX;
mjs_return(mjs, mjs_mk_number(mjs, rnd)); mjs_return(mjs, mjs_mk_number(mjs, rnd));
} }

View File

@@ -6,12 +6,16 @@
extern "C" { extern "C" {
#endif #endif
#define FURI_HAL_RANDOM_MAX 0xFFFFFFFF
/** Initialize random subsystem */ /** Initialize random subsystem */
void furi_hal_random_init(void); void furi_hal_random_init(void);
/** Get random value /** Get random value
* furi_hal_random_get() gives up to FURI_HAL_RANDOM_MAX
* rand() and random() give up to RAND_MAX
* *
* @return random value * @return 32 bit random value (up to FURI_HAL_RANDOM_MAX)
*/ */
uint32_t furi_hal_random_get(void); uint32_t furi_hal_random_get(void);