int waveform (int color, int data_file) { static char write_buffer[100], read_buffer[10000] ; int numToRead=10000; int written_bytes; //////////////////////////////////////////////// memset(read_buffer, 0, 10000); ibsic(device); strcpy (write_buffer, "DATA:STARt 1"); ibwrt (device, write_buffer, strlen(write_buffer)); sprintf (write_buffer, "DATA:STOP 10000"); ibwrt (device, write_buffer, strlen(write_buffer)); strcpy (write_buffer, "ACQUIRE:MODE SAMPLE"); ibwrt (device, write_buffer, strlen(write_buffer)); strcpy (write_buffer, "ACQUIRE:STOPAFTER SEQUENCE"); ibwrt (device, write_buffer, strlen(write_buffer)); //read pump intensity, mask type and scan ref get_intensity(); // Delay(0.5); strcpy (write_buffer, "ACQUIRE:STATE ON"); ibwrt (device, write_buffer, strlen(write_buffer)); strcpy (write_buffer, "*WAI"); ibwrt (device, write_buffer, strlen(write_buffer)); strcpy (write_buffer, "CURVe?"); ibwrt (device, write_buffer, strlen(write_buffer)); Delay(0.3); ibrd (device, read_buffer, numToRead); //Delay(1); ConvertArrayType (read_buffer, VAL_CHAR, data2fit, VAL_DOUBLE, 10000); written_bytes=WriteFile (data_file,read_buffer ,10000 ); CloseFile (data_file); if (written_bytes!=10000) { printf("Error writing file!!\n"); } plot_data(color); GetCtrlVal (ERG_panel, ERG_panel_fit_live, &j); // printf ("%d", j); if (j==1) { fit_data (); } return 1; }
int main() { string filename = cwin.get_string("Please enter the data file name: "); ifstream infile; infile.open(filename.c_str()); vector<double> data; read_data(data, infile); infile.close(); plot_data(data); return 0; }
int waveform (int color, int data_file) { static char write_buffer[100]; int numToRead=10000; char * read_buffer; read_buffer = malloc (numToRead); memset(read_buffer, 0, 10000); ibsic(device); strcpy (write_buffer, "DATA:STARt 1"); ibwrt (device, write_buffer, strlen(write_buffer)); sprintf (write_buffer, "DATA:STOP 10000"); ibwrt (device, write_buffer, strlen(write_buffer)); strcpy (write_buffer, "ACQUIRE:MODE SAMPLE"); ibwrt (device, write_buffer, strlen(write_buffer)); strcpy (write_buffer, "ACQUIRE:STOPAFTER SEQUENCE"); ibwrt (device, write_buffer, strlen(write_buffer)); strcpy (write_buffer, "ACQUIRE:STATE ON"); ibwrt (device, write_buffer, strlen(write_buffer)); strcpy (write_buffer, "*WAI"); // wait for trigger to continue ibwrt (device, write_buffer, strlen(write_buffer)); strcpy (write_buffer, "CURVe?"); ibwrt (device, write_buffer, strlen(write_buffer)); Delay(0.3); ibrd (device, read_buffer, numToRead); ConvertArrayType (read_buffer, VAL_CHAR, data2fit, VAL_DOUBLE, 10000); free (read_buffer) ; plot_data(color); // check if live-fitting is enabled GetCtrlVal (Fit_pnl_handle, Fit_panel_fit_live, &fit_status); if (fit_status==1) { fit_data (); } return 1; }
int CVICALLBACK load_plot (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { int color; switch (event) { case EVENT_COMMIT: color=0; FileSelectPopupEx ("d:\\data\\test", "*.*", "txt", "Load data", VAL_LOAD_BUTTON, 0, 0, pathname); memset(data2fit, 0, sizeof(data2fit)); FileToArray (pathname, data2fit, VAL_DOUBLE, 10000, 1, VAL_GROUPS_TOGETHER, VAL_GROUPS_AS_ROWS, VAL_ASCII); plot_data (color); break; } return 0; }
int CVICALLBACK load_plot (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { int color; static char read_buffer[10000] ; switch (event) { case EVENT_COMMIT: color=0; FileSelectPopupEx ("d:\\data\\test", "*.*", "txt", "Load data", VAL_LOAD_BUTTON, 0, 0, pathname); memset(data2fit, 0, sizeof(data2fit)); FileToArray (pathname, read_buffer, VAL_CHAR, 10000, 1, VAL_GROUPS_TOGETHER, VAL_GROUPS_AS_COLUMNS, VAL_BINARY); ConvertArrayType (read_buffer, VAL_CHAR, data2fit, VAL_DOUBLE, 10000); // printf("%s, value:%f\n",pathname, data2fit[100]); plot_data (color); break; } return 0; }
void render() { data plot_data; plot_data.append((unsigned int) this->spheres.size()); plot_data.append((unsigned int) this->lines.size()); for(unsigned int i=0; i<this->spheres.size(); i++) { plot_data.append((float) this->spheres[i].s.x.x); plot_data.append((float) this->spheres[i].s.x.y); plot_data.append((float) this->spheres[i].s.r); plot_data.append((const char *) this->spheres[i].color, 3); plot_data.append((const char *) this->spheres[i].label, 8); } for(unsigned int i=0; i<this->lines.size(); i++) { plot_data.append((float) this->lines[i].a.x); plot_data.append((float) this->lines[i].a.y); plot_data.append((float) this->lines[i].b.x); plot_data.append((float) this->lines[i].b.y); plot_data.append((const char *) this->lines[i].color, 3); } plot_data.prepend((unsigned int) plot_data.length()); for(unsigned int i=0; i<=plot_data.length() / REALTIME_PLOT_PACKET_SIZE; i++) { unsigned int beg = REALTIME_PLOT_PACKET_SIZE * i; unsigned int end = REALTIME_PLOT_PACKET_SIZE * (i+1); this->sock.send(packet(address(), address("127.0.0.1", this->port), plot_data(beg, end > plot_data.length() ? plot_data.length() : end))); } this->spheres.clear(); this->lines.clear(); }
int main(int argc, const char **argv) { plot_type *item; plot_dataset_type *d; PLFLT *x, *y; double x_max, y_max; int N; const char *kw = argv[1]; if (argc < 2) { fprintf(stderr, "Error: give keyword as argument!\n"); exit(EXIT_FAILURE); } item = plot_alloc(); plot_set_window_size(item, 1152, 768); plot_initialize(item, "png", "punqs3.png"); { char str[PATH_MAX]; int i, k; int len = 2; int interval[len][2]; interval[0][0] = 1; interval[0][1] = 10; interval[1][0] = 50; interval[1][1] = 60; for (i = 0; i < len; i++) { for (k = interval[i][0]; k <= interval[i][1]; k++) { snprintf(str, PATH_MAX, "/h/masar/EnKF_PUNQS3/PUNQS3/Original/Realizations/PUNQS3_Realization_%d/PUNQS3_%d.DATA", k, k); plot_summary_collect_data(&x, &y, &N, str, kw); d = plot_dataset_alloc(false); plot_dataset_set_data(d, x, y, N, BLUE, LINE); plot_dataset_add(item, d); util_safe_free(x); util_safe_free(y); snprintf(str, PATH_MAX, "/d/proj/bg/enkf/EnKF_PUNQS3/enkf_runs/member_%03d/PUNQS3_%04d.DATA", k, k); d = plot_dataset_alloc( false ); plot_summary_collect_data(&x, &y, &N, str, kw); plot_dataset_set_data(d, x, y, N, RED, LINE); plot_dataset_add(item, d); util_safe_free(x); util_safe_free(y); } } } d = plot_dataset_alloc(); plot_summary_collect_data(&x, &y, &N, "/d/proj/bg/enkf/EnKF_PUNQS3/PUNQS3/Original/PUNQS3.DATA", kw); plot_dataset_set_data(d, x, y, N, BLACK, POINT); plot_dataset_add(item, d); util_safe_free(x); util_safe_free(y); plot_set_labels(item, "Days", kw, "PUNQS3", BLACK); plot_get_extrema(item, &x_max, &y_max, NULL, NULL); plot_set_viewport(item, 0, x_max, 0, y_max); plot_data(item); plot_free(item); }