Esempio n. 1
0
/*
 * Reserve a GPIO and set it as output. Than set the state
 * and release the port.
 * @gpio the GPIO pin to set the state for.
 * @state 1 or 0
 * @return true if the state change was successful.
 */
bool gpio_write_and_close(int gpio, int state)
{
    return gpio_reserve(gpio)
           && gpio_set_direction(gpio, GPIO_OUT)
           && gpio_set_state(gpio, state)
           && gpio_release(gpio);
}
Esempio n. 2
0
/**
 * Выключить или включить кнопку питания компьютера
 * @param state - 1- вкл, 0 - выклtn
 */
void
desktop_set_power_button(u8 mode)
{
    gpio_set_state(&gpio_list[MCU_GPIO_POWER_BUTTON], mode);
}
Esempio n. 3
0
void test_handle_message(struct cfw_message * msg, void * param)
{
	cfw_log("%s:%s for param: %s conn:%p id:%d\n", __FILE__, __func__,
			(char*) param, msg->conn, CFW_MESSAGE_ID(msg));
	//cfw_dump_message(msg);

	switch (CFW_MESSAGE_ID(msg)) {
	case MSG_ID_CFW_REGISTER_SVC_AVAIL_EVT_RSP:
		break;
	case MSG_ID_CFW_SVC_AVAIL_EVT: {
		int svc_id = ((cfw_svc_available_evt_msg_t *)msg)->service_id;
		if (svc_id == SOC_GPIO_SERVICE_ID) {
			cfw_open_service_conn(client, SOC_GPIO_SERVICE_ID, "Conn1");
		}
		break;
	}
	case MSG_ID_CFW_OPEN_SERVICE_RSP: {
		cfw_log("%s:%s for conn: %s\n", __FILE__, __func__,
				(char*) CFW_MESSAGE_PRIV(msg));
		cfw_open_conn_rsp_msg_t * cnf = (cfw_open_conn_rsp_msg_t*) msg;
		gpio_service_conn = cnf->service_conn;
		gpio_configure(gpio_service_conn, 26, 1, NULL);
		break;
	}
	case MSG_ID_GPIO_CONFIGURE_RSP:
		gpio_set_state(gpio_service_conn, 26, 1, NULL);
		break;

	case MSG_ID_GPIO_SET_RSP: {
		int val;
		void * next;
		if (!((int) CFW_MESSAGE_PRIV(msg))) {
			val = 0;
			next = (void*) 1;
		} else {
			val = 1;
			next = (void*) 0;
		}
		printf("Got response: %d %d \n", val, (int) next);
		if (count ++ > 100) {
			cfw_close_service_conn(gpio_service_conn, NULL);
		} else {
			gpio_set_state(gpio_service_conn, 26, val, next);
		}
	}
		break;

	case MSG_ID_CFW_CLOSE_SERVICE_RSP: {
		cfw_close_conn_rsp_msg_t * resp = (cfw_close_conn_rsp_msg_t*) msg;
		cfw_log("%s: res: %d\n", __func__, resp->rsp_header.status);
		exit(0);
	}
	break;

	default: {
		cfw_log("%s: Unhandled message: %d\n", __func__, CFW_MESSAGE_ID(msg));
		break;
	}
	}
	cfw_msg_free(msg);

}
Esempio n. 4
0
/**
 * Выключить или включить питание компьютера
 * @param state - 1- вкл, 0 - выкл
 */
void
desktop_set_power_down(u8 mode)
{
    gpio_set_state(&gpio_list[MCU_GPIO_POWER_DOWN], mode);
}