Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static double read(String sensorId) {
- // on prend le chemin du fichier
- Path path = FileSystems.getDefault().getPath(devicesPath, sensorId, valueFile);
- List<String> lines;
- // il y aura 3 essais au maximum
- int attempts = 3;
- // cette variable sert à un contrôle d'intégrité basique
- boolean crcOK = false;
- // tant que la tentative est inférieure à 3
- while (attempts > 0) {
- try {
- // on lit toutles lignes du fichier
- lines = Files.readAllLines(path);
- // pour chacune des lignes
- for(String line: lines) {
- // si celle-ci se termine par "YES", le contrôle est bon
- if (line.endsWith("YES"))
- crcOK = true;
- // si la ligne correspond à un pattern qqch=des_chiffres ET que le contrôle d'intégrité est bon, on lit la valeur puis on la retourne
- else if (line.matches(".*t=[0-9]+") && crcOK)
- return Integer.valueOf(line.substring(line.indexOf("=")+1))/1000.0;
- }
- // gestion d'erreur basique
- } catch (Exception e) {
- e.printStackTrace();
- }
- // on attend cette zone uniquement si le fichier n'est pas bon, donc on diminue les tentatives et on retente
- attempts--;
- }
- // en cas d'erreur complète, on renvoi une "valeur aberrante", donc le maximum de Double, soit, selon la documentation (2-2^-52)x2^1023
- return Double.MAX_VALUE;
- }
- public static List<String> list() {
- List<String> list = new ArrayList<String>();
- // on cherche à lire un "fichier" (soit un répertoire un ou fichier)
- File searchPath = new File(devicesPath);
- // à priori, un répertoire : si le répertoire n'est pas vide
- if (searchPath.listFiles()!=null) {
- // on parcourt tout les "fichiers" du répertoire
- for (File f: searchPath.listFiles()) {
- // si le "fichier" est un répertoire et le nom ne commence par "w1_bus_master", on l'ajoute à la liste
- if (f.isDirectory() && !f.getName().startsWith("w1_bus_master"))
- list.add(f.getName());
- }
- }
- // on retourne la liste
- return list;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement