Become a leader in the IoT community!

New DevHeads get a 320-point leaderboard boost when joining the DevHeads IoT Integration Community. In addition to learning and advising, active community leaders are rewarded with community recognition and free tech stuff. Start your Legendary Collaboration now!

Step 1 of 5

CREATE YOUR PROFILE *Required

OR
Step 2 of 5

WHAT BRINGS YOU TO DEVHEADS? *Choose 1 or more

Collaboration & Work 🤝
Learn & Grow 📚
Contribute Experience & Expertise 🔧
Step 3 of 5

WHAT'S YOUR INTEREST OR EXPERTISE? *Choose 1 or more

Hardware & Design 💡
Embedded Software 💻
Edge Networking
Step 4 of 5

Personalize your profile

Step 5 of 5

Read & agree to our COMMUNITY RULES

  1. We want this server to be a welcoming space! Treat everyone with respect. Absolutely no harassment, witch hunting, sexism, racism, or hate speech will be tolerated.
  2. If you see something against the rules or something that makes you feel unsafe, let staff know by messaging @admin in the "support-tickets" tab in the Live DevChat menu.
  3. No age-restricted, obscene or NSFW content. This includes text, images, or links featuring nudity, sex, hard violence, or other graphically disturbing content.
  4. No spam. This includes DMing fellow members.
  5. You must be over the age of 18 years old to participate in our community.
  6. Our community uses Answer Overflow to index content on the web. By posting in this channel your messages will be indexed on the worldwide web to help others find answers.
  7. You agree to our Terms of Service (https://www.devheads.io/terms-of-service/) and Privacy Policy (https://www.devheads.io/privacy-policy)
By clicking "Finish", you have read and agreed to the our Terms of Service and Privacy Policy.

How can I recover binary data from the INTDATA file using the provided C structure?

Can anyone help me in solving this i am in analysis paralysis right now cannot wrap my head around the problem

Programming Exercise

NOTE: ALL INFORMATION REQUIRED TO COMPLETE THE TASK IS INCLUDED IN THIS README FILE.

The INTDATA file contains an hex-ASCII dump of binary data, with some header
information for each block. This file was produced by extracting the binary data
from a data collection unit running an Intel CPU, and saving it in human-readable
format. The task is to write a recovery program that operates on the hex-ASCII
representation of the binary data and recovers the data correctly.

Here is a ‘c’ structure definition which shows, in the data block, the
positions of the items in the block:

struct flashdata
{
uint16 filename_id; // number for file
uint32 sequence_in_file; // file sequence number
uint16 number_records; // recs in block
uint16 data_length; // data length
uint16 flags; // unused presently
unsigned char compression_type; // unused presently
unsigned char spare; // unused presently
unsigned char data[2048-14]; // the data itself
};

The blocks need to have the binary data extracted from them. Then check the
block. If the filename_id is not 0002 then discard the block. If the block
has obvious errors (data_length>2048-14) then discard. Otherwise use the
data_length, number_records and data fields to extract the data records.

Record structure:

CONTRIBUTE TO THIS THREAD

Browse other Product Reviews tagged

Leaderboard

RANKED BY XP

All time
  • 1.
    Avatar
    @Nayel115
    1620 XP
  • 2.
    Avatar
    @UcGee
    650 XP
  • 3.
    Avatar
    @melta101
    600 XP
  • 4.
    Avatar
    @lifegochi
    250 XP
  • 5.
    Avatar
    @Youuce
    180 XP
  • 6.
    Avatar
    @hemalchevli
    170 XP