bit stuffing

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

bit stuffing

Δημοσίευση από txc » 11 Σεπ 2006 00:42

Καλησπέρα παιδιά, προσπαθώντας να υλοποιήσω μια δικιά μου εφαρμογή για επικοινωνία 2 συσκευών και ανταλλαγή πακέτων , αντιμετώπισα το πρόβλημα του bit stuffing...

με όσες γνώσεις είχα στη c και με ψάξιμο στο internet βρήκα αυτό τον κώδικα :

Κώδικας: Επιλογή όλων

 unsigned char outbfr;
int outcnt;
int bytecnt;
outcnt = 8;
bytecnt = 0;
int val;
int n;
int i;
unsigned int mask;
mask = 1 << &#40;n-1&#41;; /* selects first &#40;leftmost&#41; bit */

  for &#40;i=0; i<n; i++&#41;
  &#123;
    outbfr <<= 1;

    if &#40;val & mask&#41;
      outbfr|= 1;

    mask >>= 1; /* select next bit */
    outcnt--;

    if &#40;outcnt==0&#41; /* 8 bit buffer full */
    &#123;
      putc&#40;outbfr,outfile&#41;;
      outcnt = 8;
      bytecnt++;
    &#125;
  &#125;
αλλά δεν μου δουλεύει με τίποτα, καμιά βοήθεια?
ευχαριστώ

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

bit stuffing

Δημοσίευση από dva_dev » 11 Σεπ 2006 02:14

Ο κώδικας σου μοιάζει σαν κάτι να του λείπει. Δοκίμασε να τον ξαναπάρεις από εδώ ολόκληρο.

txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

bit stuffing

Δημοσίευση από txc » 11 Σεπ 2006 11:26

βασικά και πάλι άκρη δεν έβγαλα με τον κώδικα ολοκληρωμένο, ξέρεις αν μπορώ να βρώ έστω και κάποιον έτοιμο κώδικα για bit stuffing?

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

bit stuffing

Δημοσίευση από dva_dev » 11 Σεπ 2006 12:36

Από τη σελίδα που ανέφερα μπορείς να πάρεις ολόκληρο το project (χρειάζεσαι κάτι περισσότερο;) ή και να δεις πως χρησιμοποιεί τον κώδικα (ποιές functions από ποιά αρχεία κάνουν κλήσεις) με click πάνω στα ονόματα των functions.
Αυτά που σε ενδιαφέρουν μάλλον είναι τα initbits, pubits, οπότε ξεκίνα από εκεί.

txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

bit stuffing

Δημοσίευση από txc » 11 Σεπ 2006 12:43

επειδή τώρα ασχολούμαι με c , προσπάθησα να το δοκιμάσω αλλά νομίζω ότι αυτό μετράει μόνο πόσα Bits περνάνε στη συσκευή, θα ήθελα να μετράει και πόσα bytes γιατί η συσκευή πρώτα θα διαβάζει Bytes και μετά θα τα κάνει Bits

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

bit stuffing

Δημοσίευση από dva_dev » 11 Σεπ 2006 13:13

Bytes = bits / 8
(1 Byte = 8 bits).

txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

bit stuffing

Δημοσίευση από txc » 11 Σεπ 2006 21:23

δηλαδή που θα κόλλαγε αυτό η εντολή στο ήδη υπάρχον project?

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

bit stuffing

Δημοσίευση από dva_dev » 12 Σεπ 2006 12:04

Στο project που υπάρχει έτοιμο δεν ξέρω που το χρειάζεται εάν το χρειάζεται, πάντως μπορεί να το πάρει είτε από τη μεταβλητή bytecnt είτε από τη function bitcount ( bitcount / 8 ).

Στο δικό σου project δεν έχεις κάποιο σημείο που μετράς πόσα bits έχουν σταλεί και πόσα έχουν ληφθεί; Παίρνεις τα bytes με bits / 8.

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες