CN1 SDK FAQs
Frequently Asked Questions related to the CN1 SDK.
How can I read local time zone information from my CN1 file?
GPS files in CN1 data store data in the UTC time zone. You will have to use Geo location-longitude, and latitude coordinates to convert UTC to a local time stamp.
What is the repository for?
The repository is used to manage information from one or more CN1 devices. It acts as a single place where data from multiple cards can be collected together so all of the unique data can be collected without getting duplicates or losing information. This is necessary because it cannot be guaranteed that an individual card contains all data points for any specific task, nor the correct versions of management information (management information being grower, farm, and field type of information).
Examples of why you should use a repository are below:
-
A user creates a task in the display and logs part of the task on the first day. At the end of the day, s/he takes the card home and copies the information onto their computer without reading it into their software. The next day they go back out to the field and log the rest of the data for that task. They then go home and read the original files they copied onto their computer into their farming software. Those files only contain part of the task information, so they read in the data off the card. The repository will merge the new data with the old data and store the full picture of the task. At this point, one could argue that you could just overwrite what you read in first, but with the repository, it's possible to read them in reverse order and still come out with the correct full picture. Additionally, if any records became corrupt in either card (but not both), then the repository will merge in only the good records from each set and you'll still come out with all of the data for the task.
-
A user creates some management objects on a CN1 device and wants to use those same objects on other CN1 devices (if s/he has a fleet of tractors for example). If you create a grower on each CN1 device and name them all the same, each one will have a unique SUID and will thus be treated as separate growers. If you instead set up each device from the desktop software and pass the grower object from the repository to the setup card, it will make a copy of the same grower on each card.
Do I have to create a grower when creating a card?
No. We recommend you create a grower when creating a card, but the component will not prevent you from writing a card without a grower.
What does the card structure look like?
The root of the card should have one (and only one) .cn1 folder. Under that .cn1 folder will be an index.vy1 file, a shared folder, and possibly various other folders. The files under the shared folder contain the content that is managed by the CN1 component.
<root>:/ ---> <suid>.cn1/ ---> index.vy1 ---> shared/
Can I set up tasks?
No, new tasks are only created in the CN1 monitor.
You can export existing tasks from the repository or from another card through the ICNHV2SetupTaskColl interface.
Are there plans to support ISO 11783?
No, there are no plans to support ISO 11783 or any other ISO spec with this component.
How do SUIDs work?
A SUID for a given object is unique for the set of all objects of the same type between all monitors. SUIDs are not guaranteed to be unique between different types of objects.
Object types include:
- Growers
- Farms
- Fields
- Datasets
- Guidance
- Prescriptions
Boundaries and Obstacles have a SUID that matches their associated field.
Why am I getting a CNH Control improperly installed error?
This message box shows up if the component is not created through the Class Factory 2 interface with a correct license key.
C# users should see the CN1SampleApp application shipped with the component as an example of how to use the Class Factory 2 in .NET.
How do I create a setup card?
The correct way to create a setup card is to go through each of the objects your user wants to export (ie; management) and see if those are already stored in the repository. If they are, you can pass those from the repository to the setup card. If they are not, then you just create a new one on the setup card object. Once you've gone through all of the objects you want to kick out, you can then sync the setup card you've created back to the repository. This will make sure any of the new SUIDs you created with new objects get stored so you don't get duplicates of those later (it'll also update any records that you changed). When the card comes back in from the monitor, the SUIDs you had assigned will be the same as when you kicked them out.
For example, you have two growers you want to kick out, GrowerA and GrowerB. GrowerA is already in the repository, either by reading in other cards or by synching previous cards, so you take that ICNHV2Grower object and pass that into AddGrower to the setup growers collection (this will return a setup grower object of that repository grower. You can use that to change the properties at that time if you want). GrowerB is not in the repository, so you need to instead call NewSetupGrower, which will give you a setup grower object. Fill in that object's properties with whatever is appropriate and synch the card to the repository. Then you can write your card and you're done. Note that calling NewSetupGrower automatically adds that setup grower to the setup growers collection.
Why do I not have access to the CN1 SDK?
Your subscription key may have expired. Try the following:
- Log in with your primary contract credentials.
- Click on Account and then click on Account Onwer.
- Select CN1 SDK and accept the Terms and Conditions.
- Submit.
If you are still experincing issues after this, submit a ticket by going to Account > Support Ticket when logged in.
What updates are available for CN1 SDK?
There are updates in the pipeline for CN1 SDK which will be available to the users soon. The updates consist of the ADAPT plugin using the latest version of the AgGateway framework and CN1 component, making the programs available in .NET Core for the users.
How can I read a .WOB file?
Users can read the .WOB file in the CN1 folder using CN1 SDK.
The ObstacleCollection
is not explicit under the FieldCollection
and the user can only list Obstacle collection using .GetAdditionalInterface()
Method