int sj_app_init(struct v7 *v7) { { /* Print a message using a value from config. */ printf("Hello, %s!\n", get_cfg()->hello.who); } { /* Turn on LED. */ sj_gpio_set_mode(GPIO, GPIO_MODE_OUTPUT, GPIO_PULL_FLOAT); sj_gpio_write(GPIO, GPIO_LEVEL_HIGH); } { /* Read a file. */ FILE *fp = fopen("README.txt", "r"); if (fp != NULL) { char buf[100]; int n = fread(buf, 1, sizeof(buf), fp); if (n > 0) { fwrite(buf, 1, n, stdout); } fclose(fp); } } (void) v7; return MG_APP_INIT_SUCCESS; }
int sj_app_init(struct v7 *v7) { (void) v7; printf("Hello, world!\n"); sj_gpio_set_mode(GPIO, GPIO_MODE_OUTPUT, GPIO_PULL_FLOAT); sj_gpio_write(GPIO, GPIO_LEVEL_HIGH); return 1; }
static v7_val_t GPIO_write(struct v7 *v7, v7_val_t this_obj, v7_val_t args) { v7_val_t pinv = v7_array_get(v7, args, 0); v7_val_t valv = v7_array_get(v7, args, 1); int pin, val; if (!v7_is_number(pinv)) { printf("non-numeric pin\n"); return v7_create_undefined(); } pin = v7_to_number(pinv); val = v7_to_number(valv); return v7_create_boolean(sj_gpio_write(pin, val) == 0); }
SJ_PRIVATE enum v7_err GPIO_write(struct v7 *v7, v7_val_t *res) { v7_val_t pinv = v7_arg(v7, 0); v7_val_t valv = v7_arg(v7, 1); int pin, val; if (!v7_is_number(pinv)) { printf("non-numeric pin\n"); *res = v7_mk_undefined(); } else { pin = v7_to_number(pinv); /* * We assume 0 if the value is "falsy", * and 1 if the value is "truthy" */ val = !!v7_is_truthy(v7, valv); *res = v7_mk_boolean(sj_gpio_write(pin, val) == 0); } return V7_OK; }
SJ_PRIVATE enum v7_err GPIO_write(struct v7 *v7, v7_val_t *res) { v7_val_t pinv = v7_arg(v7, 0); v7_val_t valv = v7_arg(v7, 1); int pin, val; if (!v7_is_number(pinv)) { printf("non-numeric pin\n"); *res = V7_UNDEFINED; } else { pin = v7_get_double(v7, pinv); /* * We assume 0 if the value is "falsy", * and 1 if the value is "truthy" */ val = !!v7_is_truthy(v7, valv); *res = v7_mk_boolean( v7, sj_gpio_write(pin, val ? GPIO_LEVEL_HIGH : GPIO_LEVEL_LOW) == 0); } return V7_OK; }