示例#1
0
void elevator_init_pos(){
	if(elev_get_floor_sensor_signal()==BETWEEN_FLOORS){
		control_down();
		while(elev_get_floor_sensor_signal()==BETWEEN_FLOORS)
			; // wait
	}
	int floor = elev_get_floor_sensor_signal();
	set_last_floor(floor);
	control_setcurpos(floor);
	control_stop();
}
示例#2
0
int execute_command(enum COMMAND cmd) {
	switch (cmd) {
		case C_AHEAD:		return control_goahead(4000);
		case C_GETCORNER:	return control_getcorner();
		case C_LEFT:		return control_turnleft();
		case C_RIGHT:		return control_turnright();
		case C_AROUND: 		return control_turnaround();
		case C_BREAK:		return control_break();
		case C_START:		return control_start();
		case C_LETSWIN:		return control_letswin();
		case C_STOP:
		default:			return control_stop();
	}
}
示例#3
0
文件: dhcpcd.c 项目: bldewolf/dhcpcd
static void
cleanup(void)
{
#ifdef DEBUG_MEMORY
	struct interface *ifp;
	int i;

	free(duid);
	free_options(if_options);

	if (ifaces) {
		while ((ifp = TAILQ_FIRST(ifaces))) {
			TAILQ_REMOVE(ifaces, ifp, next);
			free_interface(ifp);
		}
		free(ifaces);
	}

	for (i = 0; i < ifac; i++)
		free(ifav[i]);
	free(ifav);
	for (i = 0; i < ifdc; i++)
		free(ifdv[i]);
	free(ifdv);
#endif

	if (!(options & DHCPCD_FORKED))
		dev_stop();
	if (linkfd != -1)
		close(linkfd);
	if (pidfd > -1) {
		if (options & DHCPCD_MASTER) {
			if (control_stop() == -1)
				syslog(LOG_ERR, "control_stop: %m");
		}
		close(pidfd);
		unlink(pidfile);
	}
#ifdef DEBUG_MEMORY
	free(pidfile);
#endif

	if (options & DHCPCD_STARTED && !(options & DHCPCD_FORKED))
		syslog(LOG_INFO, "exited");
}