示例#1
0
文件: main.c 项目: PandiPanda69/GHome
int main()
{
	int major;
	int fd1, fd2, fd3;

	float   value1, value2, value3;
	size_t i;

	ios_init();

	major = ios_install_driver( "mon_driver.so.1.0.1", "127.0.0.1", 8080 );
	printf( "Result is : %d\n", major );

	if( major < 0 )
	{
		ios_release();
		return;
	}

	fd1 = ios_add_device( major, 7 );
	printf( "Result is : %d\n", fd1 );

	fd2 = ios_add_device( major, 3 );
	printf( "Result is : %d\n", fd2 );

	fd3 = ios_add_device( major, 2 );

	ios_attach_global_handler( h );

	ios_attach_handler( fd1, h1 );

	for( i = 0; i < 60; i++ )
	{
		sleep( 10 );

		ios_read( fd1, DRV_FIELD_TEMPERATURE, &value1 );
		ios_read( fd2, DRV_FIELD_TEMPERATURE, &value2 );
		ios_read( fd3, DRV_FIELD_TEMPERATURE, &value3 );

		printf( "Temp1 : %f / Temp2 : %f / Temp3 : %f\n", value1, value2, value3 );

		ios_write( fd2, 10 );
	}

	ios_remove_device( fd1 );
	ios_remove_device( fd2 );

	sleep( 1 );

	ios_uninstall_driver( major );

	ios_release();

	return 0;
}
示例#2
0
/*==============================================================================
 * - T_shell()
 *
 * - the shell task entry
 */
void T_shell ()
{
    char usr_cmd_line[_CMD_LEN_MAX];
    char *start_cmd = NULL;

    banner();

    _shell_cmd_init();      /* i, exit ... */

    yaffs_init();           /* cd, ls, pwd ... */
    vi_cmd_init();          /* vi */
    net_init();
    tetris_cmd_init();      /* tetris */
    lian_cmd_init();        /* lianliankan */
    date_cmd_init();        /* show and set date */
    cal_cmd_init();			/* calculator expression */
    gui_init();
    ios_init();
    media_init();
    wtd_cmd_init();
#if 0
    fat_cmd_init();         /* fatls */
    usb_cmd_init();         /* usb.start ... */
#endif

    serial_puts("\n-> ");


    FOREVER {
        _get_cmd_line(usr_cmd_line);

        start_cmd = _del_front_space(usr_cmd_line);

        /*
         * cmd_line have no char except blank
         */
        if (strlen(start_cmd) == 0) {
            serial_puts("-> ");
            continue;
        }

        /*
         * deal with cmd_line
         */
        if (cmd_do(start_cmd) == CMD_EXIT) {
            serial_puts("\nAu Revoir!\n");
            break;
        } else {
            serial_puts("\n-> ");
        }
    }
}
示例#3
0
int read_sensors(const char* path, infos_sensor* sensor, infos_drv* drv)
{
	xmlDocPtr capteurs_doc;
	xmlNodePtr drivers_node;
	xmlNodePtr driver_node;
	xmlNodePtr capteur_node;
	
	capteurs_doc = xmlParseFile(path);
	if (capteurs_doc == NULL)
	{
		perror("xmlParseFile");
		return -1;
	}
	/* the first xml element node of the file */
	drivers_node = children_XML_ELEMENT_NODE((xmlNodePtr)capteurs_doc);

	/* init, install drivers and add all the capteurs */
	ios_init();
	int i;
	for(i=0; i < MAX_NUMBER_OF_SENSORS ; i++)
	{
		sensor[i].fd=0;
		sensor[i].id=0;
		sensor[i].name=NULL;
		sensor[i].used_fields=0;
	}
	int driver_counter = 0;	
	int capteur_counter = 0;
	for( 	driver_node = children_XML_ELEMENT_NODE(drivers_node);
		driver_node != NULL;
		driver_node = next_XML_ELEMENT_NODE(driver_node))
	{
		/* install a driverX/ */
		xmlChar* drv_so_name = xmlGetProp(driver_node,(const xmlChar*)"so");
		xmlChar* drv_ip = xmlGetProp(driver_node,(const xmlChar*)"ip");
		xmlChar* drv_port = xmlGetProp(driver_node,(const xmlChar*)"port");
		unsigned int port;
		sscanf((char*) drv_port, "%u", &port);
		printf("DEBUG unsigned int = %u\n", port); 
		drv[driver_counter].id = ios_install_driver((char*) drv_so_name, (char*) drv_ip, port);
		drv[driver_counter].name = drv_so_name;
		xmlFree(drv_ip);
		xmlFree(drv_port);
		if( drv[driver_counter].id < 0 )
		{	
			ios_release();
			perror("Driver loading error");
			return drv[driver_counter].id;
		}
		for( 	capteur_node = children_XML_ELEMENT_NODE(driver_node);
			capteur_node != NULL;
			capteur_node = next_XML_ELEMENT_NODE(capteur_node))
		{
			/* install a driverX/capteurY/ */
			xmlChar* etat = xmlGetProp(capteur_node,(const xmlChar*)"etat");
			if(etat[0] == 'O' && etat[1] == 'N'){
				sensor[capteur_counter].name = xmlNodeGetContent(capteur_node);
				printf("\tname = %s\n", (char*)sensor[capteur_counter].name);
				xmlChar* id = xmlGetProp(capteur_node,(const xmlChar*)"id");
				int id_int;
				sscanf((char*)id, "%X", &id_int);
				sensor[capteur_counter].fd = ios_add_device( drv[driver_counter].id,id_int);
				sensor[capteur_counter].id = id_int;
				xmlFree(id);
			}
			xmlFree(etat);
			capteur_counter++;
		}
		driver_counter++;
	}
	xmlFreeDoc(capteurs_doc);
	return 0;
}