Programme d'utilisation servomotors MX12 V1

Committer:
R66Y
Date:
Fri May 19 14:32:14 2017 +0000
Revision:
0:80df663dd15e
programme pour utiliser les servomoteurs MX12.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
R66Y 0:80df663dd15e 1 /* mbed Microcontroller Library - FileHandler
R66Y 0:80df663dd15e 2 * Copyright (c) 2007-2009 ARM Limited. All rights reserved.
R66Y 0:80df663dd15e 3 */
R66Y 0:80df663dd15e 4
R66Y 0:80df663dd15e 5 #ifndef MBED_FILEHANDLE_H
R66Y 0:80df663dd15e 6 #define MBED_FILEHANDLE_H
R66Y 0:80df663dd15e 7
R66Y 0:80df663dd15e 8 typedef int FILEHANDLE;
R66Y 0:80df663dd15e 9
R66Y 0:80df663dd15e 10 #include <stdio.h>
R66Y 0:80df663dd15e 11 #ifdef __ARMCC_VERSION
R66Y 0:80df663dd15e 12 typedef int ssize_t;
R66Y 0:80df663dd15e 13 typedef long off_t;
R66Y 0:80df663dd15e 14 #else
R66Y 0:80df663dd15e 15 #include <sys/types.h>
R66Y 0:80df663dd15e 16 #endif
R66Y 0:80df663dd15e 17
R66Y 0:80df663dd15e 18 namespace mbed {
R66Y 0:80df663dd15e 19
R66Y 0:80df663dd15e 20 /* Class FileHandle
R66Y 0:80df663dd15e 21 * An OO equivalent of the internal FILEHANDLE variable
R66Y 0:80df663dd15e 22 * and associated _sys_* functions
R66Y 0:80df663dd15e 23 *
R66Y 0:80df663dd15e 24 * FileHandle is an abstract class, needing at least sys_write and
R66Y 0:80df663dd15e 25 * sys_read to be implmented for a simple interactive device
R66Y 0:80df663dd15e 26 *
R66Y 0:80df663dd15e 27 * No one ever directly tals to/instanciates a FileHandle - it gets
R66Y 0:80df663dd15e 28 * created by FileSystem, and wrapped up by stdio
R66Y 0:80df663dd15e 29 */
R66Y 0:80df663dd15e 30 class FileHandle {
R66Y 0:80df663dd15e 31
R66Y 0:80df663dd15e 32 public:
R66Y 0:80df663dd15e 33
R66Y 0:80df663dd15e 34 /* Function write
R66Y 0:80df663dd15e 35 * Write the contents of a buffer to the file
R66Y 0:80df663dd15e 36 *
R66Y 0:80df663dd15e 37 * Parameters
R66Y 0:80df663dd15e 38 * buffer - the buffer to write from
R66Y 0:80df663dd15e 39 * length - the number of characters to write
R66Y 0:80df663dd15e 40 *
R66Y 0:80df663dd15e 41 * Returns
R66Y 0:80df663dd15e 42 * The number of characters written (possibly 0) on success, -1 on error.
R66Y 0:80df663dd15e 43 */
R66Y 0:80df663dd15e 44 virtual ssize_t write(const void* buffer, size_t length) = 0;
R66Y 0:80df663dd15e 45
R66Y 0:80df663dd15e 46 /* Function close
R66Y 0:80df663dd15e 47 * Close the file
R66Y 0:80df663dd15e 48 *
R66Y 0:80df663dd15e 49 * Returns
R66Y 0:80df663dd15e 50 * Zero on success, -1 on error.
R66Y 0:80df663dd15e 51 */
R66Y 0:80df663dd15e 52 virtual int close() = 0;
R66Y 0:80df663dd15e 53
R66Y 0:80df663dd15e 54 /* Function read
R66Y 0:80df663dd15e 55 * Reads the contents of the file into a buffer
R66Y 0:80df663dd15e 56 *
R66Y 0:80df663dd15e 57 * Parameters
R66Y 0:80df663dd15e 58 * buffer - the buffer to read in to
R66Y 0:80df663dd15e 59 * length - the number of characters to read
R66Y 0:80df663dd15e 60 *
R66Y 0:80df663dd15e 61 * Returns
R66Y 0:80df663dd15e 62 * The number of characters read (zero at end of file) on success, -1 on error.
R66Y 0:80df663dd15e 63 */
R66Y 0:80df663dd15e 64 virtual ssize_t read(void* buffer, size_t length) = 0;
R66Y 0:80df663dd15e 65
R66Y 0:80df663dd15e 66 /* Function isatty
R66Y 0:80df663dd15e 67 * Check if the handle is for a interactive terminal device
R66Y 0:80df663dd15e 68 *
R66Y 0:80df663dd15e 69 * If so, line buffered behaviour is used by default
R66Y 0:80df663dd15e 70 *
R66Y 0:80df663dd15e 71 * Returns
R66Y 0:80df663dd15e 72 * 1 if it is a terminal, 0 otherwise
R66Y 0:80df663dd15e 73 */
R66Y 0:80df663dd15e 74 virtual int isatty() = 0 ;
R66Y 0:80df663dd15e 75
R66Y 0:80df663dd15e 76 /* Function lseek
R66Y 0:80df663dd15e 77 * Move the file position to a given offset from a given location.
R66Y 0:80df663dd15e 78 *
R66Y 0:80df663dd15e 79 * Parameters
R66Y 0:80df663dd15e 80 * offset - The offset from whence to move to
R66Y 0:80df663dd15e 81 * whence - SEEK_SET for the start of the file, SEEK_CUR for the
R66Y 0:80df663dd15e 82 * current file position, or SEEK_END for the end of the file.
R66Y 0:80df663dd15e 83 *
R66Y 0:80df663dd15e 84 * Returns
R66Y 0:80df663dd15e 85 * New file position on success, -1 on failure or unsupported
R66Y 0:80df663dd15e 86 */
R66Y 0:80df663dd15e 87 virtual off_t lseek(off_t offset, int whence) = 0;
R66Y 0:80df663dd15e 88
R66Y 0:80df663dd15e 89 /* Function fsync
R66Y 0:80df663dd15e 90 * Flush any buffers associated with the FileHandle, ensuring it
R66Y 0:80df663dd15e 91 * is up to date on disk
R66Y 0:80df663dd15e 92 *
R66Y 0:80df663dd15e 93 * Returns
R66Y 0:80df663dd15e 94 * 0 on success or un-needed, -1 on error
R66Y 0:80df663dd15e 95 */
R66Y 0:80df663dd15e 96 virtual int fsync() = 0;
R66Y 0:80df663dd15e 97
R66Y 0:80df663dd15e 98 virtual off_t flen() {
R66Y 0:80df663dd15e 99 /* remember our current position */
R66Y 0:80df663dd15e 100 off_t pos = lseek(0, SEEK_CUR);
R66Y 0:80df663dd15e 101 if(pos == -1) return -1;
R66Y 0:80df663dd15e 102 /* seek to the end to get the file length */
R66Y 0:80df663dd15e 103 off_t res = lseek(0, SEEK_END);
R66Y 0:80df663dd15e 104 /* return to our old position */
R66Y 0:80df663dd15e 105 lseek(pos, SEEK_SET);
R66Y 0:80df663dd15e 106 return res;
R66Y 0:80df663dd15e 107 }
R66Y 0:80df663dd15e 108
R66Y 0:80df663dd15e 109 };
R66Y 0:80df663dd15e 110
R66Y 0:80df663dd15e 111 } // namespace mbed
R66Y 0:80df663dd15e 112
R66Y 0:80df663dd15e 113 #endif
R66Y 0:80df663dd15e 114