An Arduino® add-on library resource can exist only as a limited or single instance. Resources can be pins, properties, or add-on instances themselves. By specifying and acquiring resources in your add-on library, you protect the resource from being acquired or altered by another add-on. For example, a pin set by add-on library to act as an analog input must not be allowed to be changed to a digital output by another add-on library. Two types of resources exist for an add-on library: Counted and Shared
A counted resource is limited to certain number of instances due to pin usages or
application constraints. The
decrementResourceCount enable you
to increment and decrement the number or instances of the resource. When a counted
resource increments, the next available resource is always taken in order.
Similarly, when decremented, the last acquired resource is released.
For example, an LCD shield can be a counted resource since only one LCD shield can exist in MATLAB® at the same time.
A shared resource is used by multiple objects of the same class. In a shared
resource, when any object modifies a property of that resource, the change is
applied to all other objects that use the resource. To modify a shared resource, use
For example, all instances of an add-on library class using a shared communication resource must set the properties of the bus to be the same. Once the first add-on library instance acquires the resource, any later instance must query and set the bus property to the same value as the first instance.