Esempio n. 1
0
int main(int argc, char *argv[]) 
{
	char* 		shm_name = "sharedmem\0";
    int       		 	size = -1;
	char *      		shm_addr = (char *) MAP_FAILED;
	
	shm_addr = my_shm_open(shm_name);
	
    char *p;
    
    // print out the default cgi header
    printf("Content-Type: text/html\n\n");

    // print out the html header
    printf("<html>\n<head>\n<title>EL Webserver CGI example </title></head><body>");

	printf("<p>follow up link by ?*yourQuery* to show te string entered.</p>");		 
	printf("<p>Example: 192.168.0.50/cgi-bin/mycgiscript?test</p>");	
	
	int buttonStateSize = sizeof(buttonStates);
	buttonStates readState;
	memcpy(&readState, shm_addr+buttonStateSize, buttonStateSize);
	printf("%i\n", readState.digitalButtonState[YBtn]);	 
	
    // print out some html based on the query string
    p=getenv("QUERY_STRING");
    if (p==NULL)
		 printf("<p>Query String is Empty</p>");
    else 
		printf("<p>Query String: %s</p>\n",p);

    // print out the html footer
    printf("</body></html>");
    return 0;
}
Esempio n. 2
0
int main(void)
{
	shm_name[0] = 't';
	shm_name[1] = 'e';
	shm_name[2] = 's';
	shm_name[3] = 't';
	size = 4;
	shm_addr = my_shm_create (shm_name, size);
	shm_addr = my_shm_open (shm_name);
	
	*shm_addr = 0;
	printf ("1\n");
	*shm_addr = 1;
	while(*shm_addr != 0)
	{}
	printf ("3\n");
	*shm_addr = 1;
	while(*shm_addr != 0)
	{}
	printf ("5\n");
	*shm_addr = 1;
	while(*shm_addr != 0)
	{}
	
	CloseAndUnlink();
	return (0);
}
Esempio n. 3
0
int main(void)
{ 
	shm_name[0] = 't';
	shm_name[1] = 'e';
	shm_name[2] = 's';
	shm_name[3] = 't';
	while(shm_fd == -1)
	{
		shm_addr = my_shm_open (shm_name);
	}
	
	while(*shm_addr != 1)
	{}
	printf ("2\n");
	*shm_addr = 0;
	while(*shm_addr != 1)
	{}
	printf ("4\n");
	*shm_addr = 0;
	while(*shm_addr != 1)
	{}
	printf ("6\n");
	*shm_addr = 0;
	
	Close();
	
	return (0);
}
Esempio n. 4
0
void OpenShm()
{
    printf ("Enter name: ");
    fgets  (shm_name, sizeof (shm_name), stdin);
    remove_nl (shm_name);

    shm_addr = my_shm_open (shm_name);
}
Esempio n. 5
0
void
openSemSHM()
{
    int size;
    sem_sync = sem_open (sem_sync_name, 0);
    sem_flags = sem_open (sem_flags_name, 0);
    shm_addr = my_shm_open (shm_name, &size);
}
Esempio n. 6
0
int main(int argc, char *argv[]) 
{
	const char* 		shm_name = "sharedmem\0";
	char *      		shm_addr = (char *) MAP_FAILED;
	
	shm_addr = my_shm_open(shm_name);
	if(shm_addr == (char *) MAP_FAILED)
	{
		printf("<html>\n");
		printf("<header><title>Error</title></header>\n");
		printf("<body>Daemon not started</body>\n");
		printf("</html>\n");
		return 0;
	}
    char *parameter;

	int buttonStateSize = sizeof(buttonStates);
	int numbOfControllers = 0;
	numbOfControllers = shm_addr[0];
	shm_addr++;

    // print out the default cgi header
    printf("Content-Type: text/html\n\n");

    // print out the html header
    printf("<html>\n");
		printf("<head>\n");
			printf("<meta http-equiv=\"refresh\" content=\"1; url=?\"/>\n");
			printf("<title>EL Webserver Controller daemon</title>\n");
		printf("</head>\n");
		printf("<body>\n");
		
			buttonStates readState;
			for(int i = 0; i < numbOfControllers; i++)
			{
				memcpy(&readState, shm_addr+(buttonStateSize*i), buttonStateSize);
				
				printf("<table>\n");
					printf("<tr>\n");
					printf("<td></td>\n");
					printf("<td>&#94;:%i</td>\n", readState.digitalButtonState[dPadUp]);
					printf("<td></td>\n");
					printf("<td></td>\n");
					printf("<td></td>\n");
					printf("<td>Y:%i</td>\n", readState.digitalButtonState[YBtn]);
					printf("<td></td>\n");
					printf("</tr>\n");
					printf("<tr>\n");
					printf("<td>&#60;:%i</td>\n", readState.digitalButtonState[dPadLeft]);
					printf("<td></td>\n");
					printf("<td>&#62;:%i</td>\n", readState.digitalButtonState[dPadRight]);
					printf("<td></td>\n");
					printf("<td>X:%i</td>\n", readState.digitalButtonState[XBtn]);
					printf("<td></td>\n");
					printf("<td>B:%i</td>\n", readState.digitalButtonState[BBtn]);
					printf("</tr>\n");
					printf("<tr>\n");
					printf("<td></td>\n");
					printf("<td>v:%i</td>\n", readState.digitalButtonState[dPadDown]);
					printf("<td></td>\n");
					printf("<td></td>\n");
					printf("<td></td>\n");
					printf("<td>A:%i</td>\n", readState.digitalButtonState[ABtn]);
					printf("<td></td>\n");
					printf("</tr>\n");
				printf("</table>\n");
				printf("<a href=\"?Buzzer%iOn\">Buzzer on</a>&nbsp;\n", i);
				printf("<a href=\"?Leds%iRotating\">Rotate leds</a></br>\n", i);
				printf("<a href=\"?Buzzer%iOff\">Buzzer off</a>&nbsp;\n", i);
				printf("<a href=\"?Leds%iBlinking\">Blink leds</a><br>\n", i);
			}

    parameter=getenv("QUERY_STRING");
    if(parameter != NULL)
    {
		mqd_t mqXpadCom = mq_open("/xpadCom",  O_WRONLY | O_NONBLOCK);
		std::string command = parameter;
		if(command.length() > 1)
			mq_send(mqXpadCom, command.c_str(), command.length(), 0);
	}
	
    // print out the html footer
		printf("</body>\n");
	printf("</html>");
    
    return 0;
}