Cannot find symbol symbol

salut j'ai un erreur dans mon pgm comment corrigé voici le code:
public void writeOnBUS() {

// Préparation de la chaîne
String temp = "";
temp += adresse;
temp += commande;
if (isInfo()) temp += donnees; // Trames d'info?
for (int i = 0; i<FCS_LENGTH; i++) temp += "0"; // Initialisation FCS

// Évaluation du FCS
fcs = mecanicFCS(temp);
temp = temp.substring(0,temp.length()-FCS_LENGTH) + fcs;

// Construction du stream (stuffing)
stream = "";
stream += FANION;
stream += stuff(temp,5);
stream += FANION;

// Transmission
Bus.send(stream);
}
lorsque compilé sorti ce erreur
cannot find symbol
symbol : variable Bus
location: class Trame
Bus.send(stream);

4 réponses

  1. Modérateur
    Pour faire Bus.send(stream); et Bus.receive(); il faut que ta classe Bus existe et qu'elle soit accessible depuis ta classe Trame. Ce problème peut donc se résoudre par l'utilisation d'un "import ???.Bus" à condition que la classe Bus soit public.
    1. comment crée la classe bus??
    2. Modérateur
      La classe Bus n'existe pas !? Alors comment veux tu faire tes méthodes send et receive ?
      Pour créer la classe Bus, tu créés un nouveau fichier qui s'appelle Bus.java et tu fais ta déclaration dedans, sans oublier les méthodes send et receive dont tu as besoin dans ta classe Trame...
    3. comment définir la classe bus?? et la métheode send et receive je peut avec socket ;
  2. Bonjour,
    Ton code n'est pas complet on peut pas t'aider.
    1. voici le code complet
      /**
      * @(#)Trame.java
      *
      * Trame application
      *
      * @author
      * @version 1.00 2013/5/7
      */

      //*

      // Importations
      import java.util.Random; // Pour le numéro de séquence
      import java.io.*; // ReadLine
      import javax.swing.*;
      import java.awt.*;
      import java.awt.event.*;
      import java.util.*;
      import java.text.*;
      import java.net.*;
      public class Trame {

      // Constantes
      final static String FANION = "01111110";
      final static int FCS_LENGTH = 16;
      final static String POLYNOME = "1100000001111";

      // Variables
      private String adresse,
      commande,
      donnees,
      fcs,
      stream;

      // Constructeur
      public Trame() {
      }

      // Méthodes d'accès
      public void setAdresse(int valeur) {
      adresse = int2bin(valeur);
      }

      public void setDonnees(String txt) {
      donnees = txt2bin(txt);
      }

      public String getDonnees() {
      return bin2txt(donnees);
      }

      private String getSeq() {
      if (isInfo())
      return commande.substring(1,4);
      else if (isNack())
      return commande.substring(5,8);
      else
      // Pour le Ack, il faut extraire la valeur
      return int2bin((Integer.parseInt(commande.substring(5,8),2) + 8
      - ((donnees.length() / 8) % 8))
      % 8,3);

      }

      // Méthodes de vérification
      public boolean aMoi(int a) { // Destiné à mon adresse?
      return adresse.equals(int2bin(a)) ||
      adresse.equals("11111111"); // Broadcast !
      }

      public boolean fcsCheck() { // Réussi le fcs Check?
      if (fcs == "") return false; // Pas de trame!

      return Integer.parseInt(
      mecanicFCS(adresse + commande + donnees + fcs),2) == 0;
      }

      public boolean isInfo() { // Est une trame d'infos?
      return commande.charAt(0) == '0';
      }

      public boolean isAck() { // Est une trame d'Ack?
      return commande.charAt(0) == '1' && commande.charAt(4) == '0';
      }

      public boolean isNack() { // Est une trame de Nack?
      return commande.charAt(0) == '1' && commande.charAt(4) == '1';
      }

      public boolean equals(Trame autre) {// A le même # de séquence?
      // Ne vérifie que si les numéro de séquence correspondent ...

      return getSeq().equals(autre.getSeq());
      }

      // Méthodes servant à préparer les trames à l'envoie
      public void prepare() { // Trame d'informations
      Random generator = new Random();
      int seq = generator.nextInt(8);

      commande = "0" + int2bin(seq,3) + "1"
      + int2bin((seq + donnees.length()/8)%8,3);
      }

      public void prepare(Trame autre, boolean ack) { // Trame de contrôle
      if (ack) { // Ack
      commande = "10000" + autre.getSeq();
      } else { // Nack
      try {
      commande = "10011" + autre.getSeq(); // Tentative d'obtenir
      } catch (Exception e) { // le numéro de SEQ
      commande = "10011000"; // mais les infos sont
      } // peut-être invalides.
      }
      }

      // Accès au BUS
      public void writeOnBUS() {

      // Préparation de la chaîne
      String temp = "";
      temp += adresse;
      temp += commande;
      if (isInfo()) temp += donnees; // Trames d'info?
      for (int i = 0; i<FCS_LENGTH; i++) temp += "0"; // Initialisation FCS

      // Évaluation du FCS
      fcs = mecanicFCS(temp);
      temp = temp.substring(0,temp.length()-FCS_LENGTH) + fcs;

      // Construction du stream (stuffing)
      stream = "";
      stream += FANION;
      stream += stuff(temp,5);
      stream += FANION;

      // Transmission
      Bus.send(stream);
      }

      public void readOnBUS() {
      // Réception
      String temp = Bus.receive();

      // On ne conserve que la partie délimitée par les deux fanions
      int premier = temp.indexOf(FANION,0);
      int second = temp.indexOf(FANION,premier+8);

      // Initialisation
      stream = "";
      adresse = "";
      commande = "00000000";
      donnees = "";
      fcs = "";

      // Est pas une chaîne complète
      if (second != -1) {
      stream = temp.substring(premier,second+8);

      // De-stuffing
      temp = destuff(stream.substring(8,stream.length()-8),5);

      // Découpage
      if (temp.length() >= 16+FCS_LENGTH) { // Chaîne assez longue
      adresse = temp.substring(0,8);
      commande = temp.substring(8,16);
      if (temp.length() > 16+FCS_LENGTH) // Contient des données.
      donnees = temp.substring(16,temp.length()-FCS_LENGTH);
      fcs = temp.substring(temp.length()-FCS_LENGTH,temp.length());
      }
      }
      }

      /*** Section statique ***/

      // Méthode permettant de lire une adresse sur la console
      public static int lireAdresse(String msg) {
      String ligne; // Contiendra le texte lu en console
      int adr; // Valeur de l'adresse

      do {
      // Lecture sur la console
      System.out.print(msg);

      try {
      BufferedReader reader = new BufferedReader (new InputStreamReader (System.in));
      ligne = reader.readLine();
      } catch (Exception e) {ligne = "";};

      // Vérification de la validité de l'entrée
      adr = -1;
      try {adr = Integer.parseInt(ligne);}
      catch (NumberFormatException e) {};
      } while (adr < 1 || adr > 255);

      return adr;
      }

      // Méthode permettant de lire le message sur la console
      public static String lireMessage(String msg) {
      String ligne; // Contiendra le texte lu en console

      // Lecture sur la console
      System.out.println(msg);
      try {
      BufferedReader reader = new BufferedReader (new InputStreamReader (System.in));
      ligne = reader.readLine();
      } catch (Exception e) {ligne = "";};

      return ligne;
      }

      // Méthode permettant de traduire une chaîne de texte en String binaire
      private static String txt2bin(String txt) {
      String bin = "";
      int tmp;
      for (int i = 0, max = txt.length(); i<max; i++) {
      tmp = (int) txt.charAt(i);
      if (tmp < 256)
      bin += int2bin(tmp);
      else
      bin += "00111111"; // Pas encodable sur 8 bits --> «?»
      }
      return bin;
      }

      // Méthode permettant de traduire un String binaire en chaîne de texte
      private static String bin2txt(String bin) {
      String txt = "";
      for (int i = 0, max = bin.length(); i<max; i+=8)
      txt += (char) Integer.parseInt(bin.substring(i,i+8),2);
      return txt;
      }

      // Méthode permettant de traduire un int en String binaire sur 8 bits.
      private static String int2bin(int x) {
      String s = Integer.toBinaryString(x);
      for (int i = 0, max = 8-s.length(); i<max; i++)
      s = "0" + s;
      return s;
      }
      private static String int2bin(int x, int l) { // Pour longueur < 8
      if (l > 8) l = 8;
      return int2bin(x).substring(8-l,8);
      }

      // Méthode permettant de 'stuffer' un String binaire
      private static String stuff(String in, int s) {
      // s = nombre de '1' max de suite
      String out = "";
      char c; // bit actuel
      int n = 0; // Compteur de '1'

      for (int i = 0, max = in.length(); i<max; i++) {
      c = in.charAt(i);
      out += c;
      if (c == '0')
      n = 0;
      else {
      n++;
      if (n == s) { // On insère un '0' de stuffing !
      n = 0;
      out += '0';
      }
      }
      }

      return out;
      }

      // Méthode permettant de 'dé-stuffer' un String binaire
      private static String destuff(String in, int s) {
      // s = nombre de '1' max de suite
      String out = "";
      char c; // bit actuel;
      int n = 0; // Compteur de '1'

      for (int i = 0, max = in.length(); i<max; i++) {
      c = in.charAt(i);
      out += c;
      if (c == '0')
      n = 0;
      else {
      n++;
      if (n == s) { // On coupe le prochain bit !
      n = 0;
      i++;
      }
      }
      }

      return out;
      }

      // Méthode appliquant la mécanique du FCS
      private static String mecanicFCS(String chaine) {

      // PATCH temporaire PATCH /////
      // Ajout:
      chaine = chaine.substring(0,chaine.length()-FCS_LENGTH)
      + chaine.substring(chaine.length()-FCS_LENGTH+4)
      + "0000";
      // PATCH temporaire PATCH /////

      int debut = chaine.indexOf("1"), // index du premier '1'
      fin = chaine.length()-FCS_LENGTH, // index de fin des données
      i,max ; // Compteurs

      char[] sequence = chaine.toCharArray();

      while (debut != -1 && debut < fin) {

      // On boucle sur la longueur du Polynome
      for (i = 0, max = POLYNOME.length(); i<max; i++)

      if (sequence[debut+i] == POLYNOME.charAt(i))
      sequence[debut+i] = '0'; // XOR ==
      else
      sequence[debut+i] = '1'; // XOR <>

      // On recalcule où est rendu le premier '1'
      while (sequence[debut] == '0' && debut < fin) debut++;
      }

      // PATCH temporaire PATCH /////
      // Retrait:
      // return new String(sequence, chaine.length()-FCS_LENGTH, FCS_LENGTH);
      // Ajout:
      String tempo = new String(sequence, chaine.length()-FCS_LENGTH, FCS_LENGTH);
      tempo = "0000" + tempo.substring(0,12);
      return tempo;
      // PATCH temporaire PATCH /////

      }

      public static void main(String[] args) {

      // TODO, add your application code
      System.out.println("Hello World!");
      }
      }
      1. Bonjour,
        1. Tout dabord ton code tels qu'il est présenté, s'il s'exécute, affichera juste Hello World!.

        2. Tu as une classe Bus dont tu fais appel et qui n'existe pourtant pas.

        Donc apporte plus de précisions par rapport à ce que tu souhaites faire