Mapshots inc
This presentation is the property of its rightful owner.
Sponsored Links
1 / 43

MapShots, Inc. PowerPoint PPT Presentation


  • 33 Views
  • Uploaded on
  • Presentation posted in: General

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Mapshots inc

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.


Macy s convoluted history

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


Company principles

Company Principles

  • Commitment to Open Data Exchange

  • Design Philosophy

    • Rate is Agronomy…

    • … Quantity is Business

  • Operational Model

    • Build it Complex…

    • … Make it Simple


Building it complex

Insecticide

Width

Seed Rate

GPS

Width

Nitrogen

Distance

Herbicide Flow

Controllable Sections

Building it Complex…

Starter Flow


Making it simple

…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


Easi suite 2005

EASi Suite 2005


Crop recordkeeping by tracking resources

Crop Recordkeeping by Tracking Resources


Businesses

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


Farms

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


Fields

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


Cropzones

CropZones


Products

Products


Map queries

Map Queries


Report queries

Report Queries


Advanced mapping

Advanced Mapping


Intellicalc multi layer analysis processing

IntelliCalc Multi-Layer Analysis/Processing


Building it complex1

Tickets

Loads

LoadGroup

Share

Share

Share

Share

Building it Complex…


Automating cotton harvest data flow

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


Cotton harvest machines

Cotton Harvest Machines


Module identification

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.


Gin notification

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


Simple notification

Simple Notification


Graphical notification

Graphical Notification


Gin progress responses

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.


Automated status report

Automated Status Report


Pocket modules

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


Complex field operation

Complex Field Operation


Building it complex2

Insecticide

Width

Seed Rate

GPS

Width

Nitrogen

Distance

Herbicide Flow

Controllable Sections

Building it Complex…

Starter Flow


Spatially aware sensors

Spatially Aware Sensors


Fieldop device drivers

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


Cotman ppc

COTMAN PPC


Pocket crops tm

Pocket CropsTM


Pocket crops lite

Pocket Crops Lite


Development environment

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.


Component architecture

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


Surviving in vb6

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.


Candidates for net development

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.


Mpsnodelist features

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.


Mpsnodelist in net

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.


Porting uom

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.


Current fodm

Sensor Use

Sensor Use

Sensor Use

Sensor Use

Sensor Use

Sensor Use

Sensor Use

Component

Use

Current FODM

Operation Region

Frequently Changing Data Object


Fcd data in net

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).


Pocket pc business objects

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?


  • Login