1 / 43

MapShots, Inc.

MapShots, Inc. Small “virtual” company. Specializing in Crop Recordkeeping software Offering components for integration into corporate applications EASi Suite TM is the product marketed directly to growers and service providers. Macy’s Convoluted History. Farmed in Indiana

faolan
Download Presentation

MapShots, Inc.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MapShots, Inc. • Small “virtual” company. • Specializing in Crop Recordkeeping software • Offering components for integration into corporate applications • EASi SuiteTM is the product marketed directly to growers and service providers.

  2. Macy’s Convoluted History • Farmed in Indiana • Started in PA software ’92 • Deere 40% ownership ’93 • Developed AgLeader DLL ’94 • Traded to Agris ’95 • Active in A*E*A • AgLink for Windows ’96 • Good AgLink ’97 • Special Projects ’98 • MapShots ‘99 Our Case 2670 in 1989

  3. Company Principles • Commitment to Open Data Exchange • Design Philosophy • Rate is Agronomy… • … Quantity is Business • Operational Model • Build it Complex… • … Make it Simple

  4. Insecticide Width Seed Rate GPS Width Nitrogen Distance Herbicide Flow Controllable Sections Building it Complex… Starter Flow

  5. …Making it Simple • RF ID tags on product containers • RF ID Receivers on machine containers • BlueTooth flow meters • Load cells on bulk containers • Black box data logging • All part of the ISO 11783/CAN framework

  6. EASi Suite 2005

  7. Crop Recordkeeping by Tracking Resources

  8. The envelope that is defines the physical farming operation. Supports the combination of different financial entities (father/son, etc.) that “appear” to be farming together. Businesses

  9. Track the “associates” of a business differently for each farm. Manage complex landlord split arrangements at each farm. Spreadsheet entry for fast setup and maintenance. Farms

  10. Stay permanent over time. FSA/Crop Insurance documentation. Support multiple crops in a year, and different crop patterns in each year, w/o changing field definitions. Fields

  11. CropZones

  12. Products

  13. Map Queries

  14. Report Queries

  15. Advanced Mapping

  16. IntelliCalc Multi-Layer Analysis/Processing

  17. Tickets Loads LoadGroup Share Share Share Share Building it Complex…

  18. Automating Cotton Harvest Data Flow • Generate module identification with field devices. • Log modules into management system. • Grower notifies gin of module availability. • Gin notifies grower of module pickup. • Gin notifies grower of module ginning. • Gin notifies grower of bale classification

  19. Cotton Harvest Machines

  20. Module Identification • Picker logs the path for a basket. • Dumps that path and picker ID into a logger on the boll buggy. • Boll buggy accumulates the paths from each basket that is unloaded into it. • Boll buggy dumps the collected paths into the module builder into which it unloads. • Module builder logs the module number and collected paths from each picker or buggy.

  21. Gin Notification • Send notice to Gin of module availability • Optionally send “paper” map of location • Optionally send navigation map of location • Notification can be triggered by grower, or just happen automatically at a preset time each day. • Gin acknowledges notification

  22. Simple Notification

  23. Graphical Notification

  24. Gin Progress Responses • Gin sends notification of picking up the module. Includes the module weight. • Automatically generates estimated production • Gin sends notification of each gin run, including the list of modules that were included in the run. • Automatically adjusts actual production values • Gin sends classification data as it becomes available.

  25. Automated Status Report

  26. Pocket Modules • Simple PDA app for logging module IDs. • Fat Finger Operation • Enhancements: • RFID reader for tags • Barcode reader • Wireless gin notification • Wireless office notification

  27. Complex Field Operation

  28. Insecticide Width Seed Rate GPS Width Nitrogen Distance Herbicide Flow Controllable Sections Building it Complex… Starter Flow

  29. Spatially Aware Sensors

  30. Proprietary File Spec Proprietary File Spec Proprietary Code Proprietary Code Proprietary Code Proprietary DLL Proprietary Data Format Propietary Data Format Proprietary Spec Driver Driver Proprietary DLL Standard Code Third-Party Application Proprietary DLL Proprietary Spec Proprietary DLL Proprietary DLL Proprietary Code Proprietary File Spec Proprietary File Spec FieldOp Device Drivers Proprietary DLL Standard Field Operations Interface

  31. COTMAN PPC

  32. Pocket CropsTM

  33. Pocket Crops Lite

  34. Development Environment • VB6 as the primary development environment • A ‘C’ utility library ported from our development in the 80’s. • A C++ component for very fast in-memory data array access, written by Jim Wilson. • Third-party GIS – Totally wrapped by a single MapShots VB6 OCX’s. • Other third-party components, wrapped by MapShots OCX’s as much as possible.

  35. Applications EASi Suite FIM Add-Ons SCMC Components Encoders Calculators FODDs Converters Component Architecture MapShots mpsMapCtrl Datasets MapShots mpsGISCC apSIS Map Control MapShots mpsGIS Cadcorp Datasets Recordsets, Overlays Recordsets, Styles Cadcorp Features and Transformations, apSIS Data Capture Geometry Functions

  36. Surviving in VB6 • Minimize dependencies on binary compatibility by: • Building interfaces in IDL and generating .tlb’s • Only allow early binding to these interfaces implemented on DLL’s. • Minimize OCX public functions and implement interfaces for more powerful access by clients. • Handle events via Callback interfaces.

  37. Candidates for .Net Development • Replace our mpsNodeList architecture with a .Net solution • .Net implementation of our UOM system. • Possibly wrapped around an existing Deere implementation. • Replace FODM with an optimized set of FieldOp Business Objects (Binary FODM). • A set of Pocket PC Business objects.

  38. mpsNodeList Features • Emulates a data source for a hierarchical spreadsheet. • Nodes represent rows. • Columns represent Columns  • Cells are a collection on the node and there is a cell for each column. • Cells have data types that can be independent of a column data type (but not usually used that way). • Cells or columns can be a data type of PickList, and have a property that is another mpsNodeList defining the PickList members. • A nodelist object can stand on its own as a powerful alternative to a collection, or it can be used as a datasource for our dropdown list control and our spreadsheet control.

  39. mpsNodeList in .Net • Does is make sense to use a DataSet as the internal structure of a NodeList (if not a complete replacement)? • Can a dataset be inherited? Or does it have to be implemented? Or would we just wrap it.

  40. Porting UOM • Deere has a very powerful Variable Representation Number that we might consider wrapping: • Contains an xml-based units definition for extensibility • Defines the unit of a number as well as suitable alternative units and precision that is context specific. • There could be significant logic changes switching to Deere. • Our own solution is much simpler and has served us very well. It is a hardcoded enum based solution. • Garbage collection kills us in our VB6 implementation. 5 seconds to create 10,000 UOM objects… over a minute to destroy them. • An attempted C++ implementation is much faster, but only got to 95% complete. This implementation is at the very core of all that we do, and must be blazingly fast.

  41. Sensor Use Sensor Use Sensor Use Sensor Use Sensor Use Sensor Use Sensor Use Component Use Current FODM Operation Region Frequently Changing Data Object

  42. FCD Data in .Net • Is an in-memory table fast enough to serve as a replacement to our optimized C++ FCD object? • If not, would we build a new FCD object and reference its columns from the *Use objects? • Or should we just move to ArrayLists, with the general ones defined in the OpRegion and the *Use ones living in their own objects (implies a filtering implementation on an ArrayList object).

  43. Pocket PC Business Objects • We use Business, Farm, Field, CropZone, Crop, Facility, Entity, etc objects in all applications. • In our first PPC project three years ago, we coded our own objects and loaded them with XML Readers. In our experiments last summer, we switched to the Dataset, reading a Schema file and an XML data file. • MUCH faster. • MUCH harder to code against. Can no longer ask for oFarm.MeasuredArea.Value… have to access a named column in the current row of the Farms table of the dataset. • As in the mpsNodeList, can we inherit DataSets and DataTables, so that we could have a CFarm class that would be an alternative interface in to a row of the Farms DataTable? • Sometimes we have to read data from other sources that is a folder hierarchy and text files. Would we define an IFarm interface and implement it on the CDataSetFarm class and the CFolderFarm class? Or would we provide a function to read a folder structure into a DataSet, enabling the CFarm class to work for both types of data?

More Related