Release candidate version. The pointer in GAS Pressure display is changed to a triangle.

Dependencies:   UniGraphic mbed vt100

Please note, at 2-Mar-2018 the current version of mbed-lib has a defect in Ticker.
https://os.mbed.com/forum/bugs-suggestions/topic/29287/

So, mbed lib version 157 is intentionally being used.
Please do not update mbed library until the problem in the above URL is fixed.

In this version, format of GAS Pressure Display has been changed.
/media/uploads/Rhyme/low.jpg

/media/uploads/Rhyme/good.jpg

/media/uploads/Rhyme/high.jpg

moto

Committer:
Rhyme
Date:
Fri Mar 02 07:56:09 2018 +0000
Revision:
0:774324cbc5a6
Release candidate version. GAS Pressure pointer is now a triangle.; Some source file clean-up was done.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Rhyme 0:774324cbc5a6 1 /**
Rhyme 0:774324cbc5a6 2 * Copyright 2015 Afero, Inc.
Rhyme 0:774324cbc5a6 3 *
Rhyme 0:774324cbc5a6 4 * Licensed under the Apache License, Version 2.0 (the "License");
Rhyme 0:774324cbc5a6 5 * you may not use this file except in compliance with the License.
Rhyme 0:774324cbc5a6 6 * You may obtain a copy of the License at
Rhyme 0:774324cbc5a6 7 *
Rhyme 0:774324cbc5a6 8 * http://www.apache.org/licenses/LICENSE-2.0
Rhyme 0:774324cbc5a6 9 *
Rhyme 0:774324cbc5a6 10 * Unless required by applicable law or agreed to in writing, software
Rhyme 0:774324cbc5a6 11 * distributed under the License is distributed on an "AS IS" BASIS,
Rhyme 0:774324cbc5a6 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Rhyme 0:774324cbc5a6 13 * See the License for the specific language governing permissions and
Rhyme 0:774324cbc5a6 14 * limitations under the License.
Rhyme 0:774324cbc5a6 15 */
Rhyme 0:774324cbc5a6 16
Rhyme 0:774324cbc5a6 17 /**
Rhyme 0:774324cbc5a6 18 * afLib public interface
Rhyme 0:774324cbc5a6 19 *
Rhyme 0:774324cbc5a6 20 * This file defines everything your application should need for commuinicating with the Afero ASR-1 radio module.
Rhyme 0:774324cbc5a6 21 * Is there is anything missing from this file, please post a request on the developer forum and we will see what
Rhyme 0:774324cbc5a6 22 * we can do.
Rhyme 0:774324cbc5a6 23 */
Rhyme 0:774324cbc5a6 24 #ifndef AFLIB_IAFLIB_H
Rhyme 0:774324cbc5a6 25 #define AFLIB_IAFLIB_H
Rhyme 0:774324cbc5a6 26
Rhyme 0:774324cbc5a6 27 #include "mbed.h"
Rhyme 0:774324cbc5a6 28 #include <string>
Rhyme 0:774324cbc5a6 29 using namespace std;
Rhyme 0:774324cbc5a6 30 #include "afErrors.h"
Rhyme 0:774324cbc5a6 31 #include "afSPI.h"
Rhyme 0:774324cbc5a6 32
Rhyme 0:774324cbc5a6 33 #if defined (TARGET_TEENSY3_1)
Rhyme 0:774324cbc5a6 34 #include "USBSerial.h"
Rhyme 0:774324cbc5a6 35 #endif
Rhyme 0:774324cbc5a6 36
Rhyme 0:774324cbc5a6 37 #define afMINIMUM_TIME_BETWEEN_REQUESTS 1000
Rhyme 0:774324cbc5a6 38
Rhyme 0:774324cbc5a6 39 #define MAX_ATTRIBUTE_SIZE 255
Rhyme 0:774324cbc5a6 40
Rhyme 0:774324cbc5a6 41 typedef void (*isr)();
Rhyme 0:774324cbc5a6 42 typedef void (*onAttributeSet)(const uint8_t requestId, const uint16_t attributeId, const uint16_t valueLen, const uint8_t *value);
Rhyme 0:774324cbc5a6 43 typedef void (*onAttributeSetComplete)(const uint8_t requestId, const uint16_t attributeId, const uint16_t valueLen, const uint8_t *value);
Rhyme 0:774324cbc5a6 44
Rhyme 0:774324cbc5a6 45 class iafLib {
Rhyme 0:774324cbc5a6 46 public:
Rhyme 0:774324cbc5a6 47 /**
Rhyme 0:774324cbc5a6 48 * create
Rhyme 0:774324cbc5a6 49 *
Rhyme 0:774324cbc5a6 50 * Create an instance of the afLib object. The afLib is a singleton. Calling this method multiple
Rhyme 0:774324cbc5a6 51 * times will return the same instance.
Rhyme 0:774324cbc5a6 52 *
Rhyme 0:774324cbc5a6 53 * @param mcuInterrupt The Arduino interrupt to be used (returned from digitalPinToInterrupt)
Rhyme 0:774324cbc5a6 54 * @param isrWrapper This is the isr method that must be defined in your sketch
Rhyme 0:774324cbc5a6 55 * @param attrSet Callback for notification of attribute set requests
Rhyme 0:774324cbc5a6 56 * @param attrSetComplete Callback for notification of attribute set request completions
Rhyme 0:774324cbc5a6 57 * @return iafLib * Instance of iafLib
Rhyme 0:774324cbc5a6 58 */
Rhyme 0:774324cbc5a6 59 static iafLib * create(PinName mcuInterrupt, isr isrWrapper,
Rhyme 0:774324cbc5a6 60 onAttributeSet attrSet, onAttributeSetComplete attrSetComplete, afSPI *theSPI);
Rhyme 0:774324cbc5a6 61
Rhyme 0:774324cbc5a6 62 //wsugi 20161128
Rhyme 0:774324cbc5a6 63 static void destroy();
Rhyme 0:774324cbc5a6 64
Rhyme 0:774324cbc5a6 65 /**
Rhyme 0:774324cbc5a6 66 * loop
Rhyme 0:774324cbc5a6 67 *
Rhyme 0:774324cbc5a6 68 * Called by the loop() method in your sketch to give afLib some CPU time
Rhyme 0:774324cbc5a6 69 */
Rhyme 0:774324cbc5a6 70 virtual void loop(void) = 0;
Rhyme 0:774324cbc5a6 71
Rhyme 0:774324cbc5a6 72 /**
Rhyme 0:774324cbc5a6 73 * getAttribute
Rhyme 0:774324cbc5a6 74 *
Rhyme 0:774324cbc5a6 75 * Request the value of an attribute be returned from the ASR-1.
Rhyme 0:774324cbc5a6 76 * Value will be returned in the attrSetComplete callback.
Rhyme 0:774324cbc5a6 77 */
Rhyme 0:774324cbc5a6 78 virtual int getAttribute(const uint16_t attrId) = 0;
Rhyme 0:774324cbc5a6 79
Rhyme 0:774324cbc5a6 80 /**
Rhyme 0:774324cbc5a6 81 * setAttribute
Rhyme 0:774324cbc5a6 82 *
Rhyme 0:774324cbc5a6 83 * Request setting an attribute.
Rhyme 0:774324cbc5a6 84 * For MCU attributes, the attribute value will be updated.
Rhyme 0:774324cbc5a6 85 * For IO attributes, the attribute value will be updated, and then onAttrSetComplete will be called.
Rhyme 0:774324cbc5a6 86 */
Rhyme 0:774324cbc5a6 87 virtual int setAttributeBool(const uint16_t attrId, const bool value) = 0;
Rhyme 0:774324cbc5a6 88
Rhyme 0:774324cbc5a6 89 virtual int setAttribute8(const uint16_t attrId, const int8_t value) = 0;
Rhyme 0:774324cbc5a6 90
Rhyme 0:774324cbc5a6 91 virtual int setAttribute16(const uint16_t attrId, const int16_t value) = 0;
Rhyme 0:774324cbc5a6 92
Rhyme 0:774324cbc5a6 93 virtual int setAttribute32(const uint16_t attrId, const int32_t value) = 0;
Rhyme 0:774324cbc5a6 94
Rhyme 0:774324cbc5a6 95 virtual int setAttribute64(const uint16_t attrId, const int64_t value) = 0;
Rhyme 0:774324cbc5a6 96
Rhyme 0:774324cbc5a6 97 virtual int setAttribute(const uint16_t attrId, const string &value) = 0;
Rhyme 0:774324cbc5a6 98
Rhyme 0:774324cbc5a6 99 virtual int setAttribute(const uint16_t attrId, const uint16_t valueLen, const char *value) = 0;
Rhyme 0:774324cbc5a6 100
Rhyme 0:774324cbc5a6 101 virtual int setAttribute(const uint16_t attrId, const uint16_t valueLen, const uint8_t *value) = 0;
Rhyme 0:774324cbc5a6 102
Rhyme 0:774324cbc5a6 103 /**
Rhyme 0:774324cbc5a6 104 * setAttributeComplete
Rhyme 0:774324cbc5a6 105 *
Rhyme 0:774324cbc5a6 106 * Call this in response to an onAttrSet. This lets the ASR-1 know that the set request has been handled.
Rhyme 0:774324cbc5a6 107 */
Rhyme 0:774324cbc5a6 108 virtual int setAttributeComplete(uint8_t requestId, const uint16_t attrId, const uint16_t valueLen, const uint8_t *value) = 0;
Rhyme 0:774324cbc5a6 109
Rhyme 0:774324cbc5a6 110 /**
Rhyme 0:774324cbc5a6 111 * isIdle
Rhyme 0:774324cbc5a6 112 *
Rhyme 0:774324cbc5a6 113 * Call to find out of the ASR-1 is currently handling a request.
Rhyme 0:774324cbc5a6 114 *
Rhyme 0:774324cbc5a6 115 * @return true if an operation is in progress
Rhyme 0:774324cbc5a6 116 */
Rhyme 0:774324cbc5a6 117 virtual bool isIdle() = 0;
Rhyme 0:774324cbc5a6 118
Rhyme 0:774324cbc5a6 119 /**
Rhyme 0:774324cbc5a6 120 * mcuISR
Rhyme 0:774324cbc5a6 121 *
Rhyme 0:774324cbc5a6 122 * Called by your sketch to pass the interrupt along to afLib.
Rhyme 0:774324cbc5a6 123 */
Rhyme 0:774324cbc5a6 124 virtual void mcuISR() = 0;
Rhyme 0:774324cbc5a6 125 };
Rhyme 0:774324cbc5a6 126 #endif //AFLIB_IAFLIB_H