Firmata firmware for Arduino
Firmata is a protocol for communicating with microcontrollers from software on a host computer
FirmataMarshaller.h
1 /*
2  FirmataMarshaller.h
3  Copyright (c) 2006-2008 Hans-Christoph Steiner. All rights reserved.
4  Copyright (C) 2009-2016 Jeff Hoefs. All rights reserved.
5 
6  This library is free software; you can redistribute it and/or
7  modify it under the terms of the GNU Lesser General Public
8  License as published by the Free Software Foundation; either
9  version 2.1 of the License, or (at your option) any later version.
10 
11  See file LICENSE.txt for further informations on licensing terms.
12 */
13 
14 #ifndef FirmataMarshaller_h
15 #define FirmataMarshaller_h
16 
17 #if defined(__cplusplus) && !defined(ARDUINO)
18  #include <cstddef>
19  #include <cstdint>
20 #else
21  #include <stddef.h>
22  #include <stdint.h>
23 #endif
24 
25 #include <Stream.h>
26 
27 namespace firmata {
28 
30 {
31  friend class FirmataClass;
32 
33  public:
34  /* constructors */
36 
37  /* public methods */
38  void begin(Stream &s);
39  void end();
40 
41  /* serial send handling */
42  void queryFirmwareVersion(void) const;
43  void queryVersion(void) const;
44  void reportAnalogDisable(uint8_t pin) const;
45  void reportAnalogEnable(uint8_t pin) const;
46  void reportDigitalPortDisable(uint8_t portNumber) const;
47  void reportDigitalPortEnable(uint8_t portNumber) const;
48  void sendAnalog(uint8_t pin, uint16_t value) const;
49  void sendAnalogMappingQuery(void) const;
50  void sendCapabilityQuery(void) const;
51  void sendDigital(uint8_t pin, uint8_t value) const;
52  void sendDigitalPort(uint8_t portNumber, uint16_t portData) const;
53  void sendFirmwareVersion(uint8_t major, uint8_t minor, size_t bytec, uint8_t *bytev) const;
54  void sendVersion(uint8_t major, uint8_t minor) const;
55  void sendPinMode(uint8_t pin, uint8_t config) const;
56  void sendPinStateQuery(uint8_t pin) const;
57  void sendString(const char *string) const;
58  void sendSysex(uint8_t command, size_t bytec, uint8_t *bytev) const;
59  void setSamplingInterval(uint16_t interval_ms) const;
60  void systemReset(void) const;
61 
62  private:
63  /* utility methods */
64  void reportAnalog(uint8_t pin, bool stream_enable) const;
65  void reportDigitalPort(uint8_t portNumber, bool stream_enable) const;
66  void sendExtendedAnalog(uint8_t pin, size_t bytec, uint8_t * bytev) const;
67  void encodeByteStream (size_t bytec, uint8_t * bytev, size_t max_bytes = 0) const;
68 
69  Stream * FirmataStream;
70 };
71 
72 } // namespace firmata
73 
74 #endif /* FirmataMarshaller_h */
75 
firmata::FirmataMarshaller::reportDigitalPortEnable
void reportDigitalPortEnable(uint8_t portNumber) const
Definition: FirmataMarshaller.cpp:230
firmata::FirmataMarshaller::queryFirmwareVersion
void queryFirmwareVersion(void) const
Definition: FirmataMarshaller.cpp:165
firmata::FirmataMarshaller::reportDigitalPortDisable
void reportDigitalPortDisable(uint8_t portNumber) const
Definition: FirmataMarshaller.cpp:217
firmata::FirmataMarshaller::FirmataMarshaller
FirmataMarshaller()
Definition: FirmataMarshaller.cpp:129
firmata::FirmataMarshaller::sendAnalogMappingQuery
void sendAnalogMappingQuery(void) const
Definition: FirmataMarshaller.cpp:262
firmata::FirmataMarshaller::sendString
void sendString(const char *string) const
Definition: FirmataMarshaller.cpp:405
firmata::FirmataMarshaller::reportAnalogDisable
void reportAnalogDisable(uint8_t pin) const
Definition: FirmataMarshaller.cpp:191
firmata::FirmataMarshaller::begin
void begin(Stream &s)
Definition: FirmataMarshaller.cpp:145
firmata::FirmataMarshaller::sendCapabilityQuery
void sendCapabilityQuery(void) const
Definition: FirmataMarshaller.cpp:273
firmata::FirmataMarshaller::systemReset
void systemReset(void) const
Definition: FirmataMarshaller.cpp:426
firmata::FirmataMarshaller::reportAnalogEnable
void reportAnalogEnable(uint8_t pin) const
Definition: FirmataMarshaller.cpp:204
firmata::FirmataMarshaller::sendPinStateQuery
void sendPinStateQuery(uint8_t pin) const
Definition: FirmataMarshaller.cpp:371
firmata::FirmataMarshaller::end
void end()
Definition: FirmataMarshaller.cpp:153
firmata::FirmataMarshaller::sendSysex
void sendSysex(uint8_t command, size_t bytec, uint8_t *bytev) const
Definition: FirmataMarshaller.cpp:388
firmata::FirmataMarshaller::sendFirmwareVersion
void sendFirmwareVersion(uint8_t major, uint8_t minor, size_t bytec, uint8_t *bytev) const
Definition: FirmataMarshaller.cpp:319
firmata::FirmataMarshaller::sendDigital
void sendDigital(uint8_t pin, uint8_t value) const
Definition: FirmataMarshaller.cpp:284
firmata::FirmataMarshaller::queryVersion
void queryVersion(void) const
Definition: FirmataMarshaller.cpp:177
firmata::FirmataMarshaller::sendDigitalPort
void sendDigitalPort(uint8_t portNumber, uint16_t portData) const
Definition: FirmataMarshaller.cpp:302
firmata::FirmataClass
Definition: Firmata.h:54
firmata::FirmataMarshaller::sendVersion
void sendVersion(uint8_t major, uint8_t minor) const
Definition: FirmataMarshaller.cpp:339
firmata::FirmataMarshaller
Definition: FirmataMarshaller.h:29
firmata::FirmataMarshaller::sendAnalog
void sendAnalog(uint8_t pin, uint16_t value) const
Definition: FirmataMarshaller.cpp:245
firmata::FirmataMarshaller::setSamplingInterval
void setSamplingInterval(uint16_t interval_ms) const
Definition: FirmataMarshaller.cpp:416
firmata::FirmataMarshaller::sendPinMode
void sendPinMode(uint8_t pin, uint8_t config) const
Definition: FirmataMarshaller.cpp:355