Exemplo n.º 1
0
int main()
{
	state = sync_init("file.txt", 4096*2, "log.txt");
	if (state != 0)
	{
		printf("sync_init fail\n");
		return -1;
	}

	state = sync_read(ans, 10, 4095);
	if (state != 0)
	{	
		printf("sync_read fail\n");
		return -1;
	}
	ans[10] = '\0';
	printf("read answer: %s\n", ans);

	state = sync_write(ans, 10, 1);
	if (state != 0)
	{	
		printf("sync_write fail\n");
		return -1;
	}
	state = sync_read(ans, 10, 1);
	if (state != 0)
	{	
		printf("sync_read fail\n");
		return -1;
	}
	ans[10] = '\0';
	printf("read answer: %s\n", ans);

	state = sync_exit();
	if (state != 0)
	{	
		printf("sync_exit fail\n");
		return -1;
	}

	return 0;
}
Exemplo n.º 2
0
int main(int argc, char *argv[]) {
	int timestamp = time(NULL);
	if(argc >= 2) {
		if(argv[1][0] == 'r' && argc >= 3) {
			readfromfile = 1;
			timestamp = atoi(argv[2]);
		}
		if(argv[1][0] == 'w')
			writetofile = 1;
		if(argv[1][0] == 'W' || argv[1][1] == 'W')
			writetofile2 = 1;
	}
	initsignals();
	sync_init(ndongles, 16384);
	corr_init(ndongles, 32);

	buffers = malloc(ndongles * sizeof(*buffers));
	files = malloc(ndongles * sizeof(*files));
	files2 = malloc(ndongles * sizeof(*files2));
	for(di=0; di < ndongles; di++) {
		char t[32];
		buffers[di] = malloc(blocksize * sizeof(**buffers));
		if(readfromfile || writetofile) {
			sprintf(t, "d%02d_%d", di, timestamp);
			if((files[di] = fopen(t, readfromfile ? "rb" : "wb")) == NULL) {
				fprintf(stderr, "Could not open file\n");
				goto fail;
			}
		}
		if(writetofile2) {
			sprintf(t, "c%02d_%d", di, timestamp);
			if((files2[di] = fopen(t, "wb")) == NULL) {
				fprintf(stderr, "Could not open file2\n");
				goto fail;
			}
		}
	}
	if(readfromfile) {
		for(;;) {
			for(di = 0; di < ndongles; di++) {
				if(fread(buffers[di], blocksize, 1, files[di]) == 0)
					goto fail;
			}
			dodsp(blocksize, (void**)buffers);
		}
	} else {
		int donglesok = coherent_init(ndongles, 2400000, 434e6, 300);

		if(donglesok == ndongles) {
			while(do_exit == 0) {
				if(coherent_read(blocksize, buffers) == -1) break;
				dodsp(blocksize, (void**)buffers);
				if(writetofile) {
					for(di = 0; di < ndongles; di++) {
						fwrite(buffers[di], blocksize, 1, files[di]);
					}
				}
			}
		}

		coherent_exit();
	}
	fail:
	sync_exit();
	return 0;
}