private int read(Stream fd, ref grid_io_block diskBlock, int sizeOf)
            {
                var buf = new byte[sizeOf];

                var read = fd.Read(buf, 0, sizeOf);

                diskBlock = buf.ByteArrayToStructure <grid_io_block>(0);

                return(read);
            }
            public void test()
            {
                var fs = File.Open(@"C:\Users\michael\Documents\Mission Planner\sitl\d0\terrain\S36E149.DAT", FileMode.Open);
                var br = new BinaryReader(fs);

                var buffer = new byte[2048];

                while (br.BaseStream.Position < br.BaseStream.Length)
                {
                    grid_info info = new grid_info();
                    var       loc  = new Locationwp()
                    {
                        lat = -35.363261 * 1.0e7, lng = 149.165230 * 1.0e7
                    };
                    calculate_grid_info(loc, ref info);

                    disk_block.block.lat         = info.grid_lat;
                    disk_block.block.lon         = info.grid_lon;
                    disk_block.block.spacing     = grid_spacing;
                    disk_block.block.grid_idx_x  = info.grid_idx_x;
                    disk_block.block.grid_idx_y  = info.grid_idx_y;
                    disk_block.block.lat_degrees = info.lat_degrees;
                    disk_block.block.lon_degrees = info.lon_degrees;
                    disk_block.block.version     = TERRAIN_GRID_FORMAT_VERSION;

                    // 29,5 = 1792000
                    //read_block(fs);

                    //continue;

                    var off = br.BaseStream.Position;

                    br.Read(buffer, 0, buffer.Length);

                    disk_block = buffer.ByteArrayToStructure <grid_io_block>(0);

                    if (disk_block.block.bitmap > 0 && disk_block.block.lat != 0 && disk_block.block.lon != 0)
                    {
                        Console.WriteLine("Got {0} - {1} at idx {2},{3} off {4}", disk_block.block.lat, disk_block.block.lon, disk_block.block.grid_idx_x, disk_block.block.grid_idx_y, off);
                    }
                }
            }
 private void memset(ref grid_io_block diskBlock, int i, int sizeOf)
 {
 }