Ejemplo n.º 1
0
int main(){

	int i=0;
	char c;
	printf("Enter an abitrarily long string, ending with carriage return > ");
	scan_data(&c);
	while (c != '\n'){
        add(&i, &c);
	scan_data(&c);
}
	i = (i % 64)+32;
	printf("Check sum is %c\n", i);

	return 0;
}
Ejemplo n.º 2
0
void edit_nth(list *start)      // edit nth item 
{
	int n = 0;
	int i = 1;
	int val = 0;
	if (!error(start)) return;
	cout << "        # input n>1 and n < size_list: ";

	cin >> n;
	while (start->next_adres)
	{
		if (n == i)
		{
			val = scan_data();
			start->data = val;
			break;
		}
		start = start->next_adres;
		i++;
	}  // while
	if (!val)
	{
		cout << "        # n incorrectly , try again" << endl;
		_getch();
	}

}
Ejemplo n.º 3
0
static int dev_scan(uint32_t seq, char *cmd, int fd, char *buf, ssize_t size)
{
	int ret = -1;

	/*
	 * FIXME: There are too many stuff here! Maybe we should
	 * split this into smaller per-table calls.
	 */

#if 0
	struct dvb_open_descriptor *open_dev;
	int uid;

	ret = scan_data(buf, size, "%i%i",  &uid);
	if (ret < 0)
		goto error;

	open_dev = get_open_dev(uid);
	if (!open_dev) {
		ret = -1;
		err("Can't find uid to scan");
		goto error;
	}

	ret = dvb_scan(foo);

error:
	return send_data(fd, "%i%s%i", seq, cmd, ret);
#else
	return send_data(fd, "%i%s%i", seq, cmd, ret);
#endif
}
Ejemplo n.º 4
0
static int dev_dmx_set_section_filter(uint32_t seq, char *cmd, int fd,
				      char *buf, ssize_t size)
{
	struct dvb_open_descriptor *open_dev;
	int uid, ret, pid, filtsize, flags;
	unsigned char filter[17], mask[17], mode[17];

	ret = scan_data(buf, size, "%i%i%i%s%s%s%i",
			&uid, &pid, &filtsize, filter, mask, mode, &flags);
	if (ret < 0)
		goto error;

	open_dev = get_open_dev(uid);
	if (!open_dev) {
		ret = -1;
		err("Can't find uid to set section filter");
		goto error;
	}

	ret = dvb_dev_dmx_set_section_filter(open_dev, pid, filtsize, filter,
					     mask, mode, flags);

error:
	return send_data(fd, "%i%s%i", seq, cmd, ret);
}
Ejemplo n.º 5
0
void add(list **start, list **end)       // add some new item in the end list
{
	int val;
	int fl = 0;
	cout << "        ###############################################################" << endl;
	cout << "        #                    ADD NEW ITEM IN THE LIST                 #" << endl;
	cout << "        #                        FOR EXIT PRESS 0                     #" << endl;
	cout << "        ###############################################################" << endl;
	val = scan_data();
	if (*end == NULL)
	{
		first_item(start, end);
	}
	while (val)
	{
		add_end(end, val);
		val = scan_data();

	}  // while
}
Ejemplo n.º 6
0
void edit_end(list *start)					// edit end item
{
	int val = 0;
	list *buff=NULL;
	if (!error(start)) return;
	do
	{
		buff = start;
		start = start->next_adres;
	} while (start->next_adres);
	buff->data = scan_data();
}
Ejemplo n.º 7
0
void scanner::run()
{
    switch(_is_file)
    {
    case true:
        scan_file();
        break;
    case false:
        scan_data();
        break;
    }
}
Ejemplo n.º 8
0
void practice()
{	
	int get,i,count=0,win=0,lose=0;
	srand(time(0));
	shouming();
	while(1){
	get=scan_data();
	if(get==0)
		break;
	i=computer();
	win_or_lose(get,i,&win,&lose,&count);
	}
	printf("胜利:%d盘\t失败:%d盘\t总盘数:%d盘\n",win,lose,count);
}
Ejemplo n.º 9
0
static int dev_set_sys(uint32_t seq, char *cmd, int fd,
		       char *buf, ssize_t size)
{
	struct dvb_v5_fe_parms_priv *parms = (void *)dvb->fe_parms;
	struct dvb_v5_fe_parms *p = (void *)parms;
	int sys = 0, ret;

	ret = scan_data(buf, size, "%i", &sys);
	if (ret < 0)
		goto error;

	ret = __dvb_set_sys(p, sys);
error:
	return send_data(fd, "%i%s%i", seq, cmd, ret);
}
Ejemplo n.º 10
0
static int dev_find(uint32_t seq, char *cmd, int fd, char *buf, ssize_t size)
{
	int enable_monitor = 0, ret;
	dvb_dev_change_t handler = NULL;

	ret = scan_data(buf, size, "%i", &enable_monitor);
	if (ret < 0)
		goto error;

	if (enable_monitor)
		handler = &dev_change_monitor;

	ret = dvb_dev_find(dvb, handler, NULL);

error:
	return send_data(fd, "%i%s%i", seq, cmd, ret);
}
Ejemplo n.º 11
0
main()
{
P2=0xff; //make output port
SerialInput();
InitLCD();
EA=1;
ES=1;
while(1)
{
ClearLCDScreen();
while(ps2_clk==1);
keyval=scan_data();
WriteDataToLCD(keyval);
encrypt_data=keyval+3
35SerialTransmit();
delayms(100);
}
}
Ejemplo n.º 12
0
void duizhanmoshi(struct user *p)
{
	int get,i,count=0,win=0,lose=0;
	srand(time(0));
	shouming();
	while((win!=2)&&(lose!=2)){
	get=scan_data();
	i=computer();
	win_or_lose(get,i,&win,&lose,&count);
	}
	printf("胜利:%d盘\t失败:%d盘\t总盘数:%d盘\n",win,lose,count);
	if(win==2) {printf("You win! \n");}
	else {printf("Sorry,you lose!!!\n");}
	printf("大侠,请留名:");
	getchar();
	gets(stu[N].name);
	stu[N].win=win;
	stu[N].count=count;
	save_data(&stu[N]);
}
Ejemplo n.º 13
0
static int dev_seek_by_adapter(uint32_t seq, char *cmd, int fd,
			       char *buf, ssize_t size)
{
	struct dvb_dev_list *dev;
	int adapter, num, type, ret;

	ret = scan_data(buf, size, "%i%i%i", &adapter, &num, &type);
	if (ret < 0)
		goto error;

	dev = dvb_dev_seek_by_adapter(dvb, adapter, num, type);
	if (!dev)
		goto error;

	return send_data(fd, "%i%s%i%s%s%s%i%s%s%s%s%s", seq, cmd, ret,
			 dev->syspath, dev->path, dev->sysname, dev->dvb_type,
			 dev->bus_addr, dev->bus_id, dev->manufacturer,
			 dev->product, dev->serial);
error:
	return send_data(fd, "%i%s%i", seq, cmd, ret);
}
Ejemplo n.º 14
0
// Initialize touch input
void touch_init(uint32_t channel_mask)
{
    // Turn on clock gating for TSI and configure touch input
    SIM_SCGC5 |= SIM_SCGC5_TSI_MASK;
    TSI0_GENCS |= (TSI_GENCS_ESOR_MASK          // Enable end of scan interrupt
                   | TSI_GENCS_MODE(0)          // Capactive sensing
                   | TSI_GENCS_REFCHRG(4)       // Reference charge 4 uA
                   | TSI_GENCS_DVOLT(0)         // Voltage rails
                   | TSI_GENCS_EXTCHRG(7)       // External osc charge
                   | TSI_GENCS_PS(4)            // Prescalar divide by 4
                   | TSI_GENCS_NSCN(11)         // Scans per electrode
                   | TSI_GENCS_TSIIEN_MASK      // Input interrupt enable
                   | TSI_GENCS_STPE_MASK        // Enable in STOP mode 
                   );

    TSI0_GENCS |= TSI_GENCS_TSIEN_MASK;

    // Enable touch I/O pins for Freedom board, and configure 
    // the scan sequence
    PORTB_PCR16 = PORT_PCR_MUX(0);      // PTB16 as touch channel 9
    PORTB_PCR17 = PORT_PCR_MUX(0);      // PTB17 as touch channel 10    

    // Read initial (baseline) values for each enabled channel
    int i, first_channel = 0;
    enable_mask = channel_mask;
    for(i=15; i>=0; i--) {
        if((1 << i) & enable_mask) {
            scan_start(i);
            while(!(TSI0_GENCS & TSI_GENCS_EOSF_MASK))      // Wait until done
                ;

            base_counts[i] = scan_data();
            first_channel = i;
        }
    }
    
    // Enable TSI interrupts and start the first scan
    enable_irq(INT_TSI0);
    scan_start(first_channel);
}
Ejemplo n.º 15
0
static int dev_get_dev_info(uint32_t seq, char *cmd, int fd,
			       char *buf, ssize_t size)
{
	struct dvb_dev_list *dev;
	char sysname[REMOTE_BUF_SIZE];
	int ret;

	ret = scan_data(buf, size, "%s", sysname);
	if (ret < 0)
		goto error;

	dev = dvb_get_dev_info(dvb, sysname);
	if (!dev)
		goto error;

	return send_data(fd, "%i%s%i%s%s%s%i%s%s%s%s%s", seq, cmd, ret,
			 dev->syspath, dev->path, dev->sysname, dev->dvb_type,
			 dev->bus_addr, dev->bus_id, dev->manufacturer,
			 dev->product, dev->serial);
error:
	return send_data(fd, "%i%s%i", seq, cmd, ret);
}
Ejemplo n.º 16
0
static int dev_close(uint32_t seq, char *cmd, int fd, char *buf, ssize_t size)
{
	struct dvb_open_descriptor *open_dev;
	int uid, ret, i;

	ret = scan_data(buf, size, "%i",  &uid);
	if (ret < 0)
		goto error;

	open_dev = get_open_dev(uid);
	if (!open_dev) {
		err("Can't find uid to close");
		ret = -1;
		goto error;
	}

	/* Delete fd from the opened array */
	pthread_mutex_lock(&dvb_read_mutex);
	for (i = 0; i < numfds; i++) {
		if (fds[i].fd != open_dev->fd)
		    continue;
		if (i < numfds - 1)
			memmove(&fds[i], &fds[i + 1],
				sizeof(*fds)*(numfds - i - 1));
		numfds--;
		break;
	}
	pthread_mutex_unlock(&dvb_read_mutex);
	if (read_id && !numfds) {
		pthread_cancel(read_id);
		read_id = 0;
	}

	dvb_dev_close(open_dev);
	destroy_open_dev(uid);

error:
	return send_data(fd, "%i%s%i", seq, cmd, ret);
}
Ejemplo n.º 17
0
static int dev_dmx_get_pmt_pid(uint32_t seq, char *cmd, int fd,
			       char *buf, ssize_t size)
{
	struct dvb_open_descriptor *open_dev;
	int uid, ret, sid;

	ret = scan_data(buf, size, "%i%i",  &uid, &sid);
	if (ret < 0)
		goto error;

	open_dev = get_open_dev(uid);
	if (!open_dev) {
		ret = -1;
		err("Can't find uid to get PMT PID");
		goto error;
	}

	ret = dvb_dev_dmx_get_pmt_pid(open_dev, sid);

error:
	return send_data(fd, "%i%s%i", seq, cmd, ret);
}
Ejemplo n.º 18
0
static int dev_set_bufsize(uint32_t seq, char *cmd, int fd,
			   char *buf, ssize_t size)
{
	struct dvb_open_descriptor *open_dev;
	int uid, ret, bufsize;

	ret = scan_data(buf, size, "%i%i",  &uid, &bufsize);
	if (ret < 0)
		goto error;

	open_dev = get_open_dev(uid);
	if (!open_dev) {
		ret = -1;
		err("Can't find uid to stop");
		goto error;
	}

	dvb_dev_set_bufsize(open_dev, bufsize);

error:
	return send_data(fd, "%i%s%i", seq, cmd, ret);
}
Ejemplo n.º 19
0
static int dev_dmx_set_pesfilter(uint32_t seq, char *cmd, int fd,
				 char *buf, ssize_t size)
{
	struct dvb_open_descriptor *open_dev;
	int uid, ret, pid, type, output, bufsize;

	ret = scan_data(buf, size, "%i%i%i%i%i",
			&uid, &pid, &type, &output, &bufsize);
	if (ret < 0)
		goto error;

	open_dev = get_open_dev(uid);
	if (!open_dev) {
		ret = -1;
		err("Can't find uid to set pesfilter");
		goto error;
	}

	ret = dvb_dev_dmx_set_pesfilter(open_dev, pid, type, output, bufsize);

error:
	return send_data(fd, "%i%s%i", seq, cmd, ret);
}
Ejemplo n.º 20
0
static int dev_open(uint32_t seq, char *cmd, int fd, char *buf, ssize_t size)
{
	struct dvb_open_descriptor *open_dev;
	struct dvb_dev_list *dev;
	struct dvb_descriptors *desc, **p;
	int ret, flags, uid;
	char sysname[REMOTE_BUF_SIZE];

	desc = calloc(1, sizeof(*desc));
	if (!desc) {
		local_perror("calloc");
		ret = -ENOMEM;
		goto error;
	}

	ret = scan_data(buf, size, "%s%i", sysname, &flags);
	if (ret < 0) {
		free(desc);
		goto error;
	}

	/*
	 * Discard requests for O_NONBLOCK, as the daemon will use threads
	 * to handle unblocked reads.
	 */
	flags &= ~O_NONBLOCK;

	open_dev = dvb_dev_open(dvb, sysname, flags);
	if (!open_dev) {
		ret = -errno;
		free(desc);
		goto error;
	}


	if (verbose)
		dbg("open dev handler for %s: %p with uid#%d", sysname, open_dev, open_dev->fd);

	dev = open_dev->dev;
	if (dev->dvb_type == DVB_DEVICE_DEMUX ||
	    dev->dvb_type == DVB_DEVICE_DVR) {
		pthread_mutex_lock(&dvb_read_mutex);
		fds[numfds].fd = open_dev->fd;
		fds[numfds].events = POLLIN | POLLPRI;
		numfds++;
		pthread_mutex_unlock(&dvb_read_mutex);
	}

	if (!read_id) {
		ret = pthread_create(&read_id, NULL, read_data, NULL);
		if (ret < 0) {
			local_perror("pthread_create");
			pthread_mutex_unlock(&msg_mutex);
			free(desc);
			return -1;
		}
	}

	pthread_mutex_unlock(&msg_mutex);
	uid = open_dev->fd;

	desc->uid = uid;
	desc->open_dev = open_dev;

	/* Add element to the desc_root tree */
	p = tsearch(desc, &desc_root, dvb_desc_compare);
	if (!p) {
		local_perror("tsearch");
		uid = 0;
	}
	if (*p != desc) {
		err("uid %d was already opened!");
	}

	pthread_mutex_unlock(&msg_mutex);

	ret = uid;
error:
	return send_data(fd, "%i%s%i", seq, cmd, ret);
}
Ejemplo n.º 21
0
            while(!(TSI0_GENCS & TSI_GENCS_EOSF_MASK))      // Wait until done
                ;

            base_counts[i] = scan_data();
            first_channel = i;
        }
    }
    
    // Enable TSI interrupts and start the first scan
    enable_irq(INT_TSI0);
    scan_start(first_channel);
}

// Touch input interrupt handler
void TSI0_IRQHandler() __attribute__((interrupt("IRQ")));
void TSI0_IRQHandler(void)
{
    // Save data for channel
    uint32_t channel = (TSI0_DATA & TSI_DATA_TSICH_MASK) >> TSI_DATA_TSICH_SHIFT;
    raw_counts[channel] = scan_data();

    // Start a new scan on next enabled channel
    for(;;) {
        channel = (channel + 1) % NCHANNELS;
        if ((1 << channel) & enable_mask) {
            scan_start(channel);
            return;
        }
    }
}
Ejemplo n.º 22
0
static int dev_set_parms(uint32_t seq, char *cmd, int fd,
			 char *buf, ssize_t size)
{
	struct dvb_v5_fe_parms_priv *parms = (void *)dvb->fe_parms;
	struct dvb_v5_fe_parms *par = (void *)parms;
	int ret, i;
	char *p = buf;
	const char *old_lnb = "";
	char new_lnb[256];

	if (verbose)
		dbg("dev_set_parms called");

	/* first the public params that aren't read only */

	/* Get current LNB name */
	if (par->lnb)
		old_lnb = par->lnb->name;

	ret = scan_data(p, size, "%i%i%s%i%i%i%i%s%s",
			&par->abort, &par->lna, new_lnb,
			&par->sat_number, &par->freq_bpf, &par->diseqc_wait,
			&par->verbose, default_charset, output_charset);

	if (ret < 0)
		goto error;

	p += ret;
	size -= ret;

	/* Now, the private ones */

	ret = scan_data(p, size, "%i", &i);
	if (ret < 0)
		goto error;
	parms->country = i;

	p += ret;
	size -= ret;

	for (i = 0; i < parms->n_props; i++) {
		ret = scan_data(p, size, "%i%i",
				&parms->dvb_prop[i].cmd,
				&parms->dvb_prop[i].u.data);
		if (ret < 0)
			goto error;

		p += ret;
		size -= ret;
	}

	if (!*new_lnb) {
		par->lnb = NULL;
	} else if (strcmp(old_lnb, new_lnb)) {
		int lnb = dvb_sat_search_lnb(new_lnb);

		if (lnb < 0) {
			dvb_logerr("Invalid lnb: %s", new_lnb);
			ret = -1;
			goto error;
		}

		par->lnb = dvb_sat_get_lnb(lnb);
	}

	par->output_charset = output_charset;
	par->default_charset = default_charset;

	ret = __dvb_fe_set_parms(par);

error:
	return send_data(fd, "%i%s%i", seq, cmd, ret);
}
Ejemplo n.º 23
0
static void *start_server(void *fd_pointer)
{
	const struct method_types *method;
	int fd = *(int *)fd_pointer, ret, flag = 1;
	char buf[REMOTE_BUF_SIZE + 8], cmd[80], *p;
	ssize_t size;
	uint32_t seq;
	int bufsize;

	if (verbose)
		dbg("Opening socket %d", fd);

	/* Set a large buffer for read() to work better */
	bufsize = REMOTE_BUF_SIZE;
	setsockopt(fd, SOL_SOCKET, SO_SNDBUF,
		   (void *)&bufsize, (int)sizeof(bufsize));

	/* Disable Naggle algorithm, as we want errors to be sent ASAP */
	setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (char *) &flag, sizeof(int));

	/* Command dispatcher */
	do {
		size = recv(fd, buf, 4, MSG_WAITALL);
		if (size <= 0)
			break;
		size = (uint32_t)buf[0] << 24 | (uint32_t)buf[1] << 16 |
		       (uint32_t)buf[2] << 8 | (uint32_t)buf[3];
		size = recv(fd, buf, size, MSG_WAITALL);
		if (size <= 0)
			break;

		ret = scan_data(buf, size, "%i%s",  &seq, cmd);
		if (ret < 0) {
			if (verbose)
				dbg("message too short: %d", size);
			send_data(fd, "%i%s%i%s", 0, "log", LOG_ERR,
				  "msg too short");
			continue;
		}

		p = buf + ret;
		size -= ret;

		if (verbose)
			dbg("received command: %i '%s'", seq, cmd);

		if (size > buf + sizeof(buf) - p) {
			if (verbose)
				dbg("data length too big: %d", size);
			send_data(fd, "%i%s%i%s", 0, "log", LOG_ERR,
				  "data length too big");
			continue;
		}

		method = methods;
		while (method->name) {
			if (!strcmp(cmd, method->name)) {
				if (dvb_fd > 0 || method->locks_dvb) {
					ret = method->handler(seq, cmd,
							      fd, p, size);
					if (ret < 0)
						break;
					if (method->locks_dvb)
						dvb_fd = fd;
					break;
				}
				send_data(fd, "%i%s%i%s", 0, "log", LOG_ERR,
					  "daemon busy");
				break;
			}
			method++;
		}
		if (!method->name) {
			if (verbose)
				dbg("invalid command: %s", cmd);
			send_data(fd, "%i%s%i%s", 0, "log", LOG_ERR,
				  "invalid command");
		}
	} while (1);

	if (verbose)
		dbg("Closing socket %d", fd);

	close(fd);
	if (read_id) {
		pthread_cancel(read_id);
		read_id = 0;
	}
	if (dvb_fd > 0)
		close_all_devs();

	return NULL;
}