...
Expand |
---|
title | Import the COUNT library into your project |
---|
|
See Import a Library if you need a refresher on how to do it. |
Expand |
---|
title | Create a custom number field called 'NextId' and set it to the value 156 in your card |
---|
|
NextId First, in config.json add your Custom Fields. Then go to your component card and set the value to 156.
Note: You’ll need to change your component to use the DEVELOPMENT commit to see the newly added custom field. See Choosing the code to run for your component. |
...
Expand |
---|
title | COUNTset("NextId", NextId) is how we set the count value |
---|
|
COUNTset saves the new value of the custom field in the custom field value file. Code Block |
---|
| COUNTset("NextId", NextId) |
|
Expand |
---|
titleThis means we can see the NextId in the card view of the component - and we can set it too! |
Image Removed |
Expand |
---|
title | To test this, we can set the component to run every 2 seconds using component.setTimer{delay=} |
---|
|
You can use component.setTimer{} is used here to run main every 2 seconds. This is a complete little program to increment a custom number field: Code Block |
---|
require "COUNT.COUNT"
function main(Data)
--Poll the component every 2 seconds
component.setTimer{delay=2000}
local NextId = COUNTget("NextId")
NextId = NextId+1
COUNTset('NextId', NextId)
end |
|
Expand |
---|
title | Run the component from the component |
---|
| .setTimer{} is used here to run main every 2 seconds. card view and see the NextId value change. |
|
Image Added |
Expand |
---|
title | The COUNT library solves this problem by giving a convenient interface to get and set a custom field value |
---|
|
Remember, the Custom Fields values are stored on disc in JSON. This means we can load and save them programmatically. This is how this library works. |
This is a very useful pattern for lots of Feeder interfaces. It’s used as part of the IMAP Email Feed component.