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; }
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); }
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); }
void OpenShm() { printf ("Enter name: "); fgets (shm_name, sizeof (shm_name), stdin); remove_nl (shm_name); shm_addr = my_shm_open (shm_name); }
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); }
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>^:%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><:%i</td>\n", readState.digitalButtonState[dPadLeft]); printf("<td></td>\n"); printf("<td>>:%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> \n", i); printf("<a href=\"?Leds%iRotating\">Rotate leds</a></br>\n", i); printf("<a href=\"?Buzzer%iOff\">Buzzer off</a> \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; }