Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of XBeeLib by
IO/IOSample802.h@3:8662ebe83570, 2015-05-18 (annotated)
- Committer:
- spastor
- Date:
- Mon May 18 13:16:55 2015 +0200
- Revision:
- 3:8662ebe83570
- Parent:
- 0:fcaad0dfa051
- Child:
- 4:629712865107
Automatic upload
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
spastor | 0:fcaad0dfa051 | 1 | /** |
spastor | 0:fcaad0dfa051 | 2 | * Copyright (c) 2015 Digi International Inc., |
spastor | 0:fcaad0dfa051 | 3 | * All rights not expressly granted are reserved. |
spastor | 0:fcaad0dfa051 | 4 | * |
spastor | 0:fcaad0dfa051 | 5 | * This Source Code Form is subject to the terms of the Mozilla Public |
spastor | 0:fcaad0dfa051 | 6 | * License, v. 2.0. If a copy of the MPL was not distributed with this file, |
spastor | 0:fcaad0dfa051 | 7 | * You can obtain one at http://mozilla.org/MPL/2.0/. |
spastor | 0:fcaad0dfa051 | 8 | * |
spastor | 3:8662ebe83570 | 9 | * Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343 |
spastor | 3:8662ebe83570 | 10 | * ======================================================================= |
spastor | 0:fcaad0dfa051 | 11 | */ |
spastor | 0:fcaad0dfa051 | 12 | |
spastor | 0:fcaad0dfa051 | 13 | #ifndef _IO_IOSAMPLE802_H_ |
spastor | 0:fcaad0dfa051 | 14 | #define _IO_IOSAMPLE802_H_ |
spastor | 0:fcaad0dfa051 | 15 | |
spastor | 0:fcaad0dfa051 | 16 | #define MAX_IO_SAMPLE_802_LEN (2 + 2 * 6) |
spastor | 0:fcaad0dfa051 | 17 | |
spastor | 0:fcaad0dfa051 | 18 | namespace XBeeLib { |
spastor | 0:fcaad0dfa051 | 19 | |
spastor | 0:fcaad0dfa051 | 20 | /** Class to handle the incoming IO Data Samples in 802.15.4 modules */ |
spastor | 0:fcaad0dfa051 | 21 | class IOSample802 { |
spastor | 0:fcaad0dfa051 | 22 | public: |
spastor | 0:fcaad0dfa051 | 23 | /** Class constructor |
spastor | 0:fcaad0dfa051 | 24 | * @param raw_data The IO Sample data, as returned by an "IS" command response or in the Io16Bit (0x83) or Io64Bit (0x82) frames |
spastor | 0:fcaad0dfa051 | 25 | * @param size size (in bytes) of raw_data |
spastor | 0:fcaad0dfa051 | 26 | */ |
spastor | 3:8662ebe83570 | 27 | IOSample802(const uint8_t* const raw_data = NULL, size_t size = 0); |
spastor | 0:fcaad0dfa051 | 28 | |
spastor | 0:fcaad0dfa051 | 29 | /** Class destructor */ |
spastor | 0:fcaad0dfa051 | 30 | ~IOSample802(); |
spastor | 0:fcaad0dfa051 | 31 | |
spastor | 0:fcaad0dfa051 | 32 | /** get_dio - read the value of a DIO configured as digital input |
spastor | 0:fcaad0dfa051 | 33 | * |
spastor | 0:fcaad0dfa051 | 34 | * @param line DIO line being read |
spastor | 0:fcaad0dfa051 | 35 | * @param val pointer where the DIO value read will be stored |
spastor | 0:fcaad0dfa051 | 36 | * @returns |
spastor | 0:fcaad0dfa051 | 37 | * Success if the operation was successful, |
spastor | 0:fcaad0dfa051 | 38 | * Failure otherwise |
spastor | 0:fcaad0dfa051 | 39 | */ |
spastor | 0:fcaad0dfa051 | 40 | RadioStatus get_dio(XBee802::IoLine line, DioVal* const dio_value) const; |
spastor | 0:fcaad0dfa051 | 41 | |
spastor | 0:fcaad0dfa051 | 42 | /** get_adc - read the value of the espcified ADC line |
spastor | 0:fcaad0dfa051 | 43 | * |
spastor | 0:fcaad0dfa051 | 44 | * @param line ADC line being read |
spastor | 0:fcaad0dfa051 | 45 | * @param val pointer where the value read from the ADC will be stored |
spastor | 0:fcaad0dfa051 | 46 | * @returns |
spastor | 0:fcaad0dfa051 | 47 | * Success if the operation was successful, |
spastor | 0:fcaad0dfa051 | 48 | * Failure otherwise |
spastor | 0:fcaad0dfa051 | 49 | */ |
spastor | 0:fcaad0dfa051 | 50 | RadioStatus get_adc(XBee802::IoLine line, uint16_t* const val) const; |
spastor | 0:fcaad0dfa051 | 51 | |
spastor | 3:8662ebe83570 | 52 | /** is_valid - checks if the IOSample802 object has at least one DIO or ADC sample. |
spastor | 3:8662ebe83570 | 53 | * @returns true if valid, false otherwise |
spastor | 3:8662ebe83570 | 54 | */ |
spastor | 3:8662ebe83570 | 55 | inline bool is_valid() |
spastor | 3:8662ebe83570 | 56 | { |
spastor | 3:8662ebe83570 | 57 | return _channel_mask == 0; |
spastor | 3:8662ebe83570 | 58 | } |
spastor | 3:8662ebe83570 | 59 | |
spastor | 0:fcaad0dfa051 | 60 | protected: |
spastor | 0:fcaad0dfa051 | 61 | uint16_t _channel_mask; |
spastor | 0:fcaad0dfa051 | 62 | uint8_t _sampled_data[MAX_IO_SAMPLE_802_LEN]; |
spastor | 0:fcaad0dfa051 | 63 | uint8_t _sampled_data_size; |
spastor | 0:fcaad0dfa051 | 64 | |
spastor | 0:fcaad0dfa051 | 65 | inline bool dio_channels_present(void) const; |
spastor | 0:fcaad0dfa051 | 66 | inline uint8_t get_dio_channels(void) const; |
spastor | 0:fcaad0dfa051 | 67 | }; |
spastor | 0:fcaad0dfa051 | 68 | |
spastor | 0:fcaad0dfa051 | 69 | } /* namespace XBeeLib */ |
spastor | 0:fcaad0dfa051 | 70 | |
spastor | 0:fcaad0dfa051 | 71 | #endif /* _IO_IOSAMPLE802_H_ */ |