#include <sys/types.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h>
#include <netdb.h>
#include <stdio.h>
char db[100][1000000];
void error (const char* msg) {perror(msg); exit(0); }
const int BUF_SIZE = 1024;
char db[100][1000000];
int
lookup (
int m,
int u
) {
return db[m][u];
}
void
insert (
int m,
int u
) {
db[m][u] = 1;
}
void
delete (
int m,
int u
) {
db[m][u] = 0;
}
void
db_load (
) {
FILE* q;
int m;
int u;
q = fopen("george", "r");
if (q) {
while(fscanf(q, "%d %d", &m, &u) != EOF) {
if ((m < 100) && (u < 1000000)) {
insert(m, u);
}
}
fclose(q);
}
}
void
db_store (
) {
FILE* q;
int i;
int j;
q = fopen("george", "w");
for (i = 0; i < 100; ++i) {
for (j = 0; j < 1000000; ++j) {
if (lookup(i, j)) fprintf(q, "%d %d\n", i, j);
}
}
fclose(q);
}
int
main (
int argc,
char* argv[]
) {
int sock;
int length;
int n;
socklen_t fromlen;
struct sockaddr_in server;
struct sockaddr_in from;
char buf[BUF_SIZE];
char buffer[BUF_SIZE];
int m;
int u;
int ok;
if (argc != 2) error("ERROR, no port provided\n");
sock = socket(AF_INET, SOCK_DGRAM, 0);
if (sock < 0) error("Opening socket");
length = sizeof(server);
bzero(&server, length);
server.sin_family = AF_INET;
server.sin_addr.s_addr = INADDR_ANY;
server.sin_port = htons(atoi(argv[1]));
if (bind(sock,(struct sockaddr *)&server,length) < 0) error("binding");
fromlen = sizeof(struct sockaddr_in);
db_load();
for (;;) {
ok = 0;
n = recvfrom(sock, buf, BUF_SIZE, 0, (struct sockaddr *)&from, &fromlen);
if (n < 0) error("recvfrom");
buf[n] = 0;
sscanf(buf + 2, "%d %d", &m, &u);
if (m > 99) {
if (u > 1000000) ok = 5;
else ok = 3;
}
else if (u > 1000000) ok = 4;
else {
switch (buf[0]) {
case 'I':
insert(m, u);
db_store();
break;
case 'D':
delete(m, u);
db_store();
break;
case 'L':
ok = !lookup(m, u);
break;
default:
ok = 2;
}
}
buffer[0] = '0' + ok;
n = sendto(sock, buffer, 1, 0, (struct sockaddr *)&from, fromlen);
if (n < 0) error("sendto");
}
}
Monday, December 14, 2015
Sunday, December 13, 2015
Dr. Mayhew's Keypad Program - 12/12/2015
#include <stdio.h>
#include <stdlib.h>
#include <wiringPi.h>
void
blink(){
digitalWrite(0,1);
delay(300);
digitalWrite(0,0);
}
char
get_key(){
int i;
int j;
for (j = 21; j < 25; ++j) {
digitalWrite(j, 1);
}
for (;;) {
for (i = 25; i < 29; ++i) {
if (digitalRead(i)) {
for (j = 21; j < 25; ++j) {
digitalWrite(j, 0);
if (!digitalRead(i)) {
blink();
switch (((i - 25) << 2) | (j - 21)) {
case 0: return '1';
case 1: return '4';
case 2: return '7';
case 3: return 'C';
case 4: return '2';
case 5: return '5';
case 6: return '8';
case 7: return '0';
case 8: return '3';
case 9: return '6';
case 10: return '9';
case 11: return '#';
case 12: return 'A';
case 13: return 'B';
case 14: return 'C';
case 15: return 'D';
}
}
}
}
}
}
}
int
get_num (
int count,
int x
){
char k;
printf("in get number");
while(count){
printf ("\ncount = %d", count);
k = get_key();
printf ("key = %c\n", k);
if (k == '#') return x;
if (('0' <= k) && (k <= '9')){
x = (x * 10) + (k - '0') ;
}
else return -1;
--count;
}
k = get_key();
if (k == '#') return x;
else return -1;
}
int
main()
{
int a;
int i,j;
int x,y,z;
int count;
wiringPiSetup();
pinMode(21, OUTPUT);
pinMode(22, OUTPUT);
pinMode(23, OUTPUT);
pinMode(24, OUTPUT);
pinMode(25, INPUT);
pinMode(26, INPUT);
pinMode(27, INPUT);
pinMode(28, INPUT);
pinMode(0, OUTPUT);
x = get_num( 6,0 );
printf("\nthe number = %d\n" , x );
}
#include <stdlib.h>
#include <wiringPi.h>
void
blink(){
digitalWrite(0,1);
delay(300);
digitalWrite(0,0);
}
char
get_key(){
int i;
int j;
for (j = 21; j < 25; ++j) {
digitalWrite(j, 1);
}
for (;;) {
for (i = 25; i < 29; ++i) {
if (digitalRead(i)) {
for (j = 21; j < 25; ++j) {
digitalWrite(j, 0);
if (!digitalRead(i)) {
blink();
switch (((i - 25) << 2) | (j - 21)) {
case 0: return '1';
case 1: return '4';
case 2: return '7';
case 3: return 'C';
case 4: return '2';
case 5: return '5';
case 6: return '8';
case 7: return '0';
case 8: return '3';
case 9: return '6';
case 10: return '9';
case 11: return '#';
case 12: return 'A';
case 13: return 'B';
case 14: return 'C';
case 15: return 'D';
}
}
}
}
}
}
}
int
get_num (
int count,
int x
){
char k;
printf("in get number");
while(count){
printf ("\ncount = %d", count);
k = get_key();
printf ("key = %c\n", k);
if (k == '#') return x;
if (('0' <= k) && (k <= '9')){
x = (x * 10) + (k - '0') ;
}
else return -1;
--count;
}
k = get_key();
if (k == '#') return x;
else return -1;
}
int
main()
{
int a;
int i,j;
int x,y,z;
int count;
wiringPiSetup();
pinMode(21, OUTPUT);
pinMode(22, OUTPUT);
pinMode(23, OUTPUT);
pinMode(24, OUTPUT);
pinMode(25, INPUT);
pinMode(26, INPUT);
pinMode(27, INPUT);
pinMode(28, INPUT);
pinMode(0, OUTPUT);
x = get_num( 6,0 );
printf("\nthe number = %d\n" , x );
}
Friday, December 4, 2015
Database db.c - 12/02/2015 Dr.Mayhew
#include <stdlib.h>
#include <stdio.h>
char db[100][1000000];
int
lookup (
int m,
int u
) {
return db[m][u];
}
void
insert (
int m,
int u
) {
db[m][u] = 1;
}
void
delete (
int m,
int u
) {
db[m][u] = 0;
}
void
db_load (
) {
FILE* q;
int m;
int u;
q = fopen("george", "r");
if (q) {
while(fscanf(q, "%d %d", &m, &u) != EOF) {
if ((m < 100) && (u < 1000000)) {
insert(m, u);
}
}
fclose(q);
}
}
void
db_store (
) {
FILE* q;
int i;
int j;
q = fopen("george", "w");
for (i = 0; i < 100; ++i) {
for (j = 0; j < 1000000; ++j) {
if (lookup(i, j)) fprintf(q, "%d %d\n", i, j);
}
}
fclose(q);
}
int
main (
) {
FILE* q;
int m;
int u;
int i;
int j;
db_load();
insert(59, 600);
insert(59, 700000);
for (i = 0; i < 100; ++i) {
for (j = 0; j < 1000000; ++j) {
if (lookup(i, j)) printf("%d %d\n", i, j);
}
}
db_store();
}
#include <stdio.h>
char db[100][1000000];
int
lookup (
int m,
int u
) {
return db[m][u];
}
void
insert (
int m,
int u
) {
db[m][u] = 1;
}
void
delete (
int m,
int u
) {
db[m][u] = 0;
}
void
db_load (
) {
FILE* q;
int m;
int u;
q = fopen("george", "r");
if (q) {
while(fscanf(q, "%d %d", &m, &u) != EOF) {
if ((m < 100) && (u < 1000000)) {
insert(m, u);
}
}
fclose(q);
}
}
void
db_store (
) {
FILE* q;
int i;
int j;
q = fopen("george", "w");
for (i = 0; i < 100; ++i) {
for (j = 0; j < 1000000; ++j) {
if (lookup(i, j)) fprintf(q, "%d %d\n", i, j);
}
}
fclose(q);
}
int
main (
) {
FILE* q;
int m;
int u;
int i;
int j;
db_load();
insert(59, 600);
insert(59, 700000);
for (i = 0; i < 100; ++i) {
for (j = 0; j < 1000000; ++j) {
if (lookup(i, j)) printf("%d %d\n", i, j);
}
}
db_store();
}
Monday, November 23, 2015
LEDS ON, LEDS OFF, Push Button Switch, Keypad Programs for the Pi 2B using WiringPi
LEDS ON, LEDS OFF, Push Button Switch, Keypad Programs for the Pi 2B using WiringPi
https://www.dropbox.com/s/3qf3n9b1yvl29br/leds_onEx.c?dl=0
https://www.dropbox.com/s/jdt9lrpbne1k9f4/leds_offEx.c?dl=0
https://www.dropbox.com/s/x3uosnxj2i28bdb/button.c?dl=0
https://www.dropbox.com/s/y38v7dium18siqt/keypad2.c?dl=0

http://pcbheaven.com/wikipages/How_Key_Matrices_Works/
https://www.dropbox.com/s/3qf3n9b1yvl29br/leds_onEx.c?dl=0
https://www.dropbox.com/s/jdt9lrpbne1k9f4/leds_offEx.c?dl=0
https://www.dropbox.com/s/x3uosnxj2i28bdb/button.c?dl=0
https://www.dropbox.com/s/y38v7dium18siqt/keypad2.c?dl=0
http://pcbheaven.com/wikipages/How_Key_Matrices_Works/
Subscribe to:
Posts (Atom)
