The field version of the solarnano grid on the ionQubes

Fork of SolarNanoGridv3 by SONG Project

Revision:
11:87ab310924f0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Hmi/HubUser.h	Wed Jun 08 22:12:52 2016 +0000
@@ -0,0 +1,148 @@
+/**
+ * HubUser.h
+ *
+ * HubUser class. A HubUser is an object containing a uid number, an rfid 
+ * number, a max number of batteries that can be checked out, a locker
+ * number, and a pod within a locker.
+ * 
+ * Author: Daniel Yang
+ */
+
+#ifndef HUBUSER_H
+#define HUBUSER_H
+
+#include "mbed.h"
+
+class HubUser {
+    public:
+        /**
+         * Generic constructor. Initializies all values with 0.
+         */
+        HubUser();
+
+        /**
+         * Constructor that allows for specific initializiation of all values
+         * @param uid - uint32_t corresponding to unique id of the RFID tag
+         * @param rfid - uint32_t corresponding to unique id of the RFID tag
+         * @param accountCredit - int32 for user account balance (can be negative)
+         * @param locker - int32_t for which locker (originaly 1-4) user is assigned
+         * @param pod - int32_t pod associated with the user (originally 0-15) *must be 0 indexed*
+         * @param batteriesOut - int32_t number of batteries user has out
+         * @param batterySubscription -  int32_t max batteries user can get (can be 0)
+         */
+        HubUser(uint32_t uid, uint32_t rfid, int32_t accountCredit, 
+                int32_t locker, int32_t pod, int32_t batteriesOut,
+                int32_t batterySubscription, char* name);
+
+        /**
+         * Get the uid
+         */
+        uint32_t getUid();
+
+        /**
+         * Get the rfid
+         */
+        uint32_t getRfid();
+
+        /**
+         * Get the account balance
+         */
+        int32_t getCredit();
+
+        /**
+         * Get the locker number
+         */
+        int32_t getLocker();
+
+        /**
+         * Get the pod (0 indexed)
+         */
+        int32_t getPod();
+
+        /**
+         * Get the number of batteries currently out
+         */
+        int32_t getBatteriesOut();
+
+        /**
+         * Get the max number of batteries, aka the subscription
+         */
+        int32_t getBatteriesMax();
+
+        /**
+         * Returns the hub user name
+         */
+
+        char* getName();
+        /**
+         * Set the uid
+         * @param uid
+         */
+        void setUid(uint32_t uid);
+
+        /**
+         * Set the rfid
+         * @param rfid
+         */
+        void setRfid(uint32_t rfid);
+
+        /**
+         * Set the account balance
+         * @param credit
+         */
+        void setCredit(int32_t credit);
+
+        /**
+         * Set the locker number
+         * @param locker
+         */
+        void setLocker(int32_t locker);
+
+        /**
+         * Set the pod (0 indexed)
+         * @param pod
+         */
+        void setPod(int32_t pod);
+
+        /**
+         * Set the number of batteries currently out
+         * @param batteries
+         */
+        void setBatteriesOut(int32_t batteries);
+
+        /**
+         * Set the max number of batteries, aka the subscription
+         * @param batteries
+         */
+        void setBatteriesMax(int32_t batteries);
+
+        /**
+         * Drop off x number of batteries
+         * @param batteries - number of batteries being dropped off
+         */
+        void dropOffBattery(int32_t batteries);
+
+        /**
+         * Pick up x number of batteries
+         * @param batteries - number of batteries being picked up
+         */
+        void pickUpBattery(int32_t batteries);
+
+        /**
+         * Decrease account credit after a transaction
+         * @param credit - amount to decrease balance by 
+         */
+        void decreaseCredit(int32_t credit);
+
+    protected:
+        uint32_t uid;                   /**< uid - uint32_t corresponding to unique id of the RFID tag. */
+        uint32_t rfid;                  /**< rfid - uint32_t corresponding to unique id of the RFID tag. */
+        int32_t accountCredit;          /**< accountCredit - int32 for user account balance (can be negative). */
+        int32_t locker;                 /**< locker - int32_t for which locker (originaly 1-4) user is assigned. */
+        int32_t pod;                    /**< pod - int32_t pod associated with the user (originally 0-15) *must be 0 indexed*. */
+        int32_t batteriesOut;           /**< batteriesOut - int32_t number of batteries user has out. */
+        int32_t batterySubscription;    /**< batterySubscription - int32_t max batteries user can get (can be 0). */
+        char* name;                     /**< Name of the user */
+};
+
+#endif