mbed-os

Dependents:   cobaLCDJoyMotor_Thread odometry_omni_3roda_v3 odometry_omni_3roda_v1 odometry_omni_3roda_v2 ... more

Committer:
be_bryan
Date:
Mon Dec 11 17:54:04 2017 +0000
Revision:
0:b74591d5ab33
motor ++

Who changed what in which revision?

UserRevisionLine numberNew contents of line
be_bryan 0:b74591d5ab33 1 #include "mbed.h"
be_bryan 0:b74591d5ab33 2
be_bryan 0:b74591d5ab33 3 #if !DEVICE_LOCALFILESYSTEM
be_bryan 0:b74591d5ab33 4 #error [NOT_SUPPORTED] LocalFileSystem not supported
be_bryan 0:b74591d5ab33 5 #endif
be_bryan 0:b74591d5ab33 6
be_bryan 0:b74591d5ab33 7 void led_blink(PinName led) {
be_bryan 0:b74591d5ab33 8 DigitalOut myled(led);
be_bryan 0:b74591d5ab33 9 while (1) {
be_bryan 0:b74591d5ab33 10 myled = !myled;
be_bryan 0:b74591d5ab33 11 wait(1.0);
be_bryan 0:b74591d5ab33 12 }
be_bryan 0:b74591d5ab33 13 }
be_bryan 0:b74591d5ab33 14
be_bryan 0:b74591d5ab33 15 void notify_completion(bool success) {
be_bryan 0:b74591d5ab33 16 if (success) {
be_bryan 0:b74591d5ab33 17 printf("{success}\n");
be_bryan 0:b74591d5ab33 18 } else {
be_bryan 0:b74591d5ab33 19 printf("{failure}\n");
be_bryan 0:b74591d5ab33 20 }
be_bryan 0:b74591d5ab33 21
be_bryan 0:b74591d5ab33 22 printf("{end}\n");
be_bryan 0:b74591d5ab33 23 led_blink(success ? LED1 : LED4);
be_bryan 0:b74591d5ab33 24 }
be_bryan 0:b74591d5ab33 25
be_bryan 0:b74591d5ab33 26 #define TEST_STRING "Hello World!"
be_bryan 0:b74591d5ab33 27
be_bryan 0:b74591d5ab33 28 FILE* test_open(char* path, const char* mode) {
be_bryan 0:b74591d5ab33 29 FILE *f;
be_bryan 0:b74591d5ab33 30 f = fopen(path, mode);
be_bryan 0:b74591d5ab33 31 if (f == NULL) {
be_bryan 0:b74591d5ab33 32 printf("Error opening file\n");
be_bryan 0:b74591d5ab33 33 notify_completion(false);
be_bryan 0:b74591d5ab33 34 }
be_bryan 0:b74591d5ab33 35
be_bryan 0:b74591d5ab33 36 return f;
be_bryan 0:b74591d5ab33 37 }
be_bryan 0:b74591d5ab33 38
be_bryan 0:b74591d5ab33 39 void test_write(FILE* f, const char* str) {
be_bryan 0:b74591d5ab33 40 int n = fprintf(f, str);
be_bryan 0:b74591d5ab33 41 if (n != strlen(str)) {
be_bryan 0:b74591d5ab33 42 printf("Error writing file\n");
be_bryan 0:b74591d5ab33 43 notify_completion(false);
be_bryan 0:b74591d5ab33 44 }
be_bryan 0:b74591d5ab33 45 }
be_bryan 0:b74591d5ab33 46
be_bryan 0:b74591d5ab33 47 void test_close(FILE* f) {
be_bryan 0:b74591d5ab33 48 int rc = fclose(f);
be_bryan 0:b74591d5ab33 49 if (rc != 0) {
be_bryan 0:b74591d5ab33 50 printf("Error closing file\n");
be_bryan 0:b74591d5ab33 51 notify_completion(false);
be_bryan 0:b74591d5ab33 52 }
be_bryan 0:b74591d5ab33 53 }
be_bryan 0:b74591d5ab33 54
be_bryan 0:b74591d5ab33 55 int main() {
be_bryan 0:b74591d5ab33 56 LocalFileSystem local("local");
be_bryan 0:b74591d5ab33 57
be_bryan 0:b74591d5ab33 58 FILE *f;
be_bryan 0:b74591d5ab33 59 char* str = TEST_STRING;
be_bryan 0:b74591d5ab33 60 char* buffer = (char*) malloc(sizeof(unsigned char)*strlen(TEST_STRING));
be_bryan 0:b74591d5ab33 61 int str_len = strlen(TEST_STRING);
be_bryan 0:b74591d5ab33 62
be_bryan 0:b74591d5ab33 63 printf("Write files\n");
be_bryan 0:b74591d5ab33 64 char filename[32];
be_bryan 0:b74591d5ab33 65 for (int i=0; i<10; i++) {
be_bryan 0:b74591d5ab33 66 sprintf(filename, "/local/test_%d.txt", i);
be_bryan 0:b74591d5ab33 67 printf("Creating file: %s\n", filename);
be_bryan 0:b74591d5ab33 68 f = test_open(filename, "w");
be_bryan 0:b74591d5ab33 69 test_write(f, str);
be_bryan 0:b74591d5ab33 70 test_close(f);
be_bryan 0:b74591d5ab33 71 }
be_bryan 0:b74591d5ab33 72
be_bryan 0:b74591d5ab33 73 printf("List files:\n");
be_bryan 0:b74591d5ab33 74 DIR *d = opendir("/local");
be_bryan 0:b74591d5ab33 75 struct dirent *p;
be_bryan 0:b74591d5ab33 76 while((p = readdir(d)) != NULL) {
be_bryan 0:b74591d5ab33 77 printf("%s\n", p->d_name);
be_bryan 0:b74591d5ab33 78 }
be_bryan 0:b74591d5ab33 79 closedir(d);
be_bryan 0:b74591d5ab33 80
be_bryan 0:b74591d5ab33 81 notify_completion(true);
be_bryan 0:b74591d5ab33 82 }