device_status_t test_dump_memory (const char* filename) { device_t *device = NULL; message ("uwatec_smart_device_open\n"); device_status_t rc = uwatec_smart_device_open (&device); if (rc != DEVICE_STATUS_SUCCESS) { WARNING ("Cannot open device."); return rc; } message ("device_version\n"); unsigned char version[UWATEC_SMART_VERSION_SIZE] = {0}; rc = device_version (device, version, sizeof (version)); if (rc != DEVICE_STATUS_SUCCESS) { WARNING ("Cannot identify computer."); device_close (device); return rc; } dc_buffer_t *buffer = dc_buffer_new (0); message ("device_dump\n"); rc = device_dump (device, buffer); if (rc != DEVICE_STATUS_SUCCESS) { WARNING ("Cannot read memory."); dc_buffer_free (buffer); device_close (device); return rc; } message ("Dumping data\n"); FILE* fp = fopen (filename, "wb"); if (fp != NULL) { fwrite (dc_buffer_get_data (buffer), sizeof (unsigned char), dc_buffer_get_size (buffer), fp); fclose (fp); } dc_buffer_free (buffer); message ("device_close\n"); rc = device_close (device); if (rc != DEVICE_STATUS_SUCCESS) { WARNING ("Cannot close device."); return rc; } return DEVICE_STATUS_SUCCESS; }
device_status_t test_dump_memory (const char* name, const char* filename) { device_t *device = NULL; message ("oceanic_atom2_device_open\n"); device_status_t rc = oceanic_atom2_device_open (&device, name); if (rc != DEVICE_STATUS_SUCCESS) { WARNING ("Error opening serial port."); return rc; } dc_buffer_t *buffer = dc_buffer_new (0); message ("device_dump\n"); rc = device_dump (device, buffer); if (rc != DEVICE_STATUS_SUCCESS) { WARNING ("Cannot read memory."); dc_buffer_free (buffer); device_close (device); return rc; } message ("Dumping data\n"); FILE* fp = fopen (filename, "wb"); if (fp != NULL) { fwrite (dc_buffer_get_data (buffer), sizeof (unsigned char), dc_buffer_get_size (buffer), fp); fclose (fp); } dc_buffer_free (buffer); message ("device_foreach\n"); rc = device_foreach (device, NULL, NULL); if (rc != DEVICE_STATUS_SUCCESS) { WARNING ("Cannot read dives."); device_close (device); return rc; } message ("device_close\n"); rc = device_close (device); if (rc != DEVICE_STATUS_SUCCESS) { WARNING ("Cannot close device."); return rc; } return DEVICE_STATUS_SUCCESS; }
device_status_t test_dump_memory (const char* name, const char* filename) { device_t *device = NULL; message ("reefnet_sensuspro_device_open\n"); device_status_t rc = reefnet_sensuspro_device_open (&device, name); if (rc != DEVICE_STATUS_SUCCESS) { WARNING ("Error opening serial port."); return rc; } time_t now = time (NULL); char datetime[21] = {0}; strftime (datetime, sizeof (datetime), "%Y-%m-%dT%H:%M:%SZ", gmtime (&now)); message ("time=%lu (%s)\n", (unsigned long)now, datetime); dc_buffer_t *buffer = dc_buffer_new (0); message ("device_dump\n"); rc = device_dump (device, buffer); if (rc != DEVICE_STATUS_SUCCESS) { WARNING ("Cannot read memory."); dc_buffer_free (buffer); device_close (device); return rc; } message ("Dumping data\n"); FILE* fp = fopen (filename, "wb"); if (fp != NULL) { fwrite (dc_buffer_get_data (buffer), sizeof (unsigned char), dc_buffer_get_size (buffer), fp); fclose (fp); } dc_buffer_free (buffer); message ("device_close\n"); rc = device_close (device); if (rc != DEVICE_STATUS_SUCCESS) { WARNING ("Cannot close device."); return rc; } return DEVICE_STATUS_SUCCESS; }
int cmd_sensor(FILE * f, int argc, char ** argv) { int addr; if (argc < 2) return SHELL_ERR_ARG_MISSING; if (argc > 4) return SHELL_ERR_EXTRA_ARGS; addr = strtoul(argv[1], NULL, 0); if (addr > 160) return SHELL_ERR_ARG_INVALID; if (argc > 2) { if (argc > 3) return device_attr_set(false, addr, argv[2], argv[3]); return device_attr_print(f, false, addr, argv[2]); } else { device_dump(f, false, addr); } return 0; }