Example #1
0
static void
digitalWrite_global_method(JSVirtualMachine * vm, JSBuiltinInfo * builtin_info,
				  void *instance_context, JSNode * result_return, JSNode * args)
{
	JSInt32 pin;
	int mode;

	result_return->type = JS_BOOLEAN;
	result_return->u.vboolean = 0;

	if (args->u.vinteger == 2) {
		pin = js_vm_to_int32(vm, &args[1]);
		mode = js_vm_to_boolean(vm, &args[2]);
		switch(pin) {
		case 0:
			REG_WRITE(CYGARC_PADR, 0, mode);
			break;
		case 1:
			REG_WRITE(CYGARC_PADR, 1, mode);
			break;
		case 2:
			REG_WRITE(CYGARC_PADR, 2, mode);
			break;
		case 3:
			REG_WRITE(CYGARC_PADR, 3, mode);
			break;
		case 4:
			REG_WRITE(CYGARC_PADR, 4, mode);
			break;
		case 5:
			REG_WRITE(CYGARC_PADR, 5, mode);
			break;
		case 6:
			REG_WRITE(CYGARC_PADR, 6, mode);
			break;
		case 7:
			REG_WRITE(CYGARC_PADR, 7, mode);
			break;
		default:
			return;
		}
		result_return->u.vboolean = 1;
	}
}
Example #2
0
static void
digitalRead_global_method(JSVirtualMachine * vm, JSBuiltinInfo * builtin_info,
				  void *instance_context, JSNode * result_return, JSNode * args)
{
	JSInt32 pin;

	result_return->type = JS_BOOLEAN;
	result_return->u.vboolean = 0;

	if (args->u.vinteger == 1) {
		pin = js_vm_to_int32(vm, &args[1]);
		switch(pin) {
		case 0:
			result_return->u.vboolean = REG_READ(CYGARC_PADR, 0);
			break;
		case 1:
			result_return->u.vboolean = REG_READ(CYGARC_PADR, 1);
			break;
		case 2:
			result_return->u.vboolean = REG_READ(CYGARC_PADR, 2);
			break;
		case 3:
			result_return->u.vboolean = REG_READ(CYGARC_PADR, 3);
			break;
		case 4:
			result_return->u.vboolean = REG_READ(CYGARC_PADR, 4);
			break;
		case 5:
			result_return->u.vboolean = REG_READ(CYGARC_PADR, 5);
			break;
		case 6:
			result_return->u.vboolean = REG_READ(CYGARC_PADR, 6);
			break;
		case 7:
			result_return->u.vboolean = REG_READ(CYGARC_PADR, 7);
			break;
		default:
			return;
		}
	}
}
Example #3
0
static void
parseInt_global_method (JSVirtualMachine *vm, JSBuiltinInfo *builtin_info,
			void *instance_context, JSNode *result_return,
			JSNode *args)
{
  JSInt32 base = 0;
  char *cp, *end;

  result_return->type = JS_INTEGER;

  if (args->u.vinteger != 1 && args->u.vinteger != 2)
    {
      sprintf_P (vm->error, b_core_string_0);
      js_vm_error (vm);
    }
  if (args[1].type == JS_STRING)
    cp = js_string_to_c_string (vm, &args[1]);
  else
    {
      JSNode input;

      /* Convert the input to string. */
      js_vm_to_string (vm, &args[1], &input);
      cp = js_string_to_c_string (vm, &input);
    }
  if (args->u.vinteger == 2)
    {
      if (args[2].type == JS_INTEGER)
	base = args[2].u.vinteger;
      else
	base = js_vm_to_int32 (vm, &args[2]);
    }

  result_return->u.vinteger = strtol (cp, &end, base);
  js_free (cp);

  if (cp == end)
    result_return->type = JS_NAN;
}