Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package components;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- import sonde.Sonde;
- public class CommunicationManager {
- private Sonde sonde;
- public CommunicationManager(Sonde sonde) {
- this.sonde = sonde;
- }
- //ATTENTION remettre methode en non statique, réorganiser tout dans leur classe
- public static void main(String[] args) {
- //client - concentrateur
- msgReqAjoutService("\"SERVICE_ADD\" ddj873 565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6 87\r\n");
- msgReponseAjoutService("(\"-ERR\")[dj/heie429$+]\r\n");
- msgReqListeService("\"SERVICE_LIST\"\r\n");
- msgReponseListeService("\"SERVICE_INFO\" firjeij75 ddpt01\r\n");
- msgReqInfoService("\"SERVICE_RETR\" doer56\r\n");
- msgReponseInfoService("\"SERVICE_DATA\" jif461 565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6 DOWN\r\n");
- System.out.println(getId("\"SERVICE_ADD\" ddj873 565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6 87\r\n"));
- System.out.println(getUrl("\"SERVICE_ADD\" ddj873 565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6 87\r\n"));
- System.out.println(getFrequency("\"SERVICE_ADD\" ddj873 565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6 87\r\n"));
- System.out.println(getProtocol2("\"SERVICE_ADD\" ddj873 565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6 87\r\n"));
- System.out.println(getUser("\"SERVICE_ADD\" ddj873 565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6 87\r\n"));
- System.out.println(getPassword("\"SERVICE_ADD\" ddj873 565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6 87\r\n"));
- System.out.println(getSite("\"SERVICE_ADD\" ddj873 565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6 87\r\n"));
- System.out.println(getPort2("\"SERVICE_ADD\" ddj873 565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6 87\r\n"));
- System.out.println(getPath("\"SERVICE_ADD\" ddj873 565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6 87\r\n"));
- System.out.println(getState("(\"-ERR\")[dj/heie429$+]\r\n"));
- System.out.println(getMessage("(\"-ERR\")[dj/heie429$+]\r\n"));
- //pas pour le 3ieme car juste requête à récup
- System.out.println(getAllId("\"SERVICE_INFO\" firjeij75 ddpt01\r\n"));
- System.out.println(getId2("\"SERVICE_RETR\" doer56\r\n"));
- System.out.println(getId("\"SERVICE_DATA\" jif461 565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6 DOWN\r\n"));
- System.out.println(getUrl("\"SERVICE_DATA\" jif461 565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6 DOWN\r\n"));
- System.out.println(getState2("\"SERVICE_DATA\" jif461 565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6 DOWN\r\n"));
- System.out.println(getProtocol2("\"SERVICE_DATA\" jif461 565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6 DOWN\r\n"));
- System.out.println(getUser("\"SERVICE_DATA\" jif461 565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6 DOWN\r\n"));
- System.out.println(getPassword("\"SERVICE_DATA\" jif461 565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6 DOWN\r\n"));
- System.out.println(getSite("\"SERVICE_DATA\" jif461 565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6 DOWN\r\n"));
- System.out.println(getPort2("\"SERVICE_DATA\" jif461 565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6 DOWN\r\n"));
- System.out.println(getPath("\"SERVICE_DATA\" jif461 565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6 DOWN\r\n"));
- //concentrateur - sonde
- msgEnvoiConfig("\"PROBE_CONFIG\" 47808ipj8p!565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6!87 \r\n");
- msgReqInfoSonde("\"PROBE_LIST \"\r\n");
- msgReponseInfoSonde("\"PROBE_INFO\" flute45 gegtrt34 \r\n");
- msgReqDonneeSonde("\"PROBE_RETR\" ddj873\r\n");
- msgReponseDonneeSonde("\"PROBE_DATA\" dforro44 OK\r\n");
- System.out.println(getAllIdConfig("\"PROBE_CONFIG\" 47808ipj8p!565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6!87 \r\n"));
- System.out.println(getAllUrlConfig("\"PROBE_CONFIG\" 47808ipj8p!565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6!87 \r\n"));
- System.out.println(getAllFrequencyConfig("\"PROBE_CONFIG\" 47808ipj8p!565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6!87 \r\n"));
- System.out.println(getServices("\"PROBE_CONFIG\" 47808ipj8p!565YYT://sasuke1010:naruto98@df_or-kkf.56:65535/fjgfR56.p_66/D6!87 \r\n"));
- //rien pour le 2ieme car juste requête à récup
- System.out.println(getAllId2("\"PROBE_INFO\" flute45 gegtrt34 \r\n"));
- System.out.println(getId3("\"PROBE_RETR\" ddj873\r\n"));
- System.out.println(getId4("\"PROBE_DATA\" dforro44 OK\r\n"));
- System.out.println(getState3("\"PROBE_DATA\" dforro44 OK\r\n"));
- //sonde - concentrateur
- msgAnnonceSonde("\"PROBE_ANNOUNCE\" 565YYT 65535\r\n");
- msgAnnonceDonnee("\"PROBE_NEWDATA\" 565YYT 65535\r\n");
- System.out.println(getProtocol("\"PROBE_ANNOUNCE\" 565YYT 65535\r\n"));
- System.out.println(getPort("\"PROBE_NEWDATA\" 565YYT 65535\r\n"));
- }
- //client - concentrateur
- public void messageProcessing2(String receivedMessage) {
- if (receivedMessage.contains("\"SERVICE_ADD\"")) {
- msgReqAjoutService(receivedMessage);
- }else if (receivedMessage.contains("(\"+OK\")") || receivedMessage.contains("(\"-ERR\")")) {
- msgReponseAjoutService(receivedMessage);
- }else if (receivedMessage.contains("\"SERVICE_LIST\"")) {
- msgReqListeService(receivedMessage);
- }else if (receivedMessage.contains("\"SERVICE_INFO\"")) {
- msgReponseListeService(receivedMessage);
- }else if(receivedMessage.contains("\"SERVICE_RETR\"")){
- msgReqInfoService(receivedMessage);
- }else if (receivedMessage.contains("\"SERVICE_DATA\"")) {
- msgReponseInfoService(receivedMessage);
- }
- }
- private static String getId(String receivedMessage){
- String id = "";
- Pattern p = Pattern.compile("\\s(\\d|[a-zA-Z]){5,10}\\s");
- Matcher m = p.matcher(receivedMessage);
- while(m.find()) {
- id = m.group().trim();
- }
- return id;
- }
- private static String getProtocol2(String receivedMessage){
- Pattern p = Pattern.compile("(\\d|[a-zA-Z]){3,15}://");
- Matcher m = p.matcher(receivedMessage);
- String aString = "";
- while(m.find()) {
- aString = m.group().trim().replace("://", "");
- }
- return aString;
- }
- private static String getUser(String receivedMessage){
- Pattern p = Pattern.compile("://(\\d|[a-zA-Z]){3,50}:");
- Matcher m = p.matcher(receivedMessage);
- String aString = "";
- while(m.find()) {
- aString = m.group().trim().replace("://", "").replace(":", "");
- }
- return aString;
- }
- private static String getPassword(String receivedMessage){
- Pattern p = Pattern.compile(":\\w{3,50}@");
- Matcher m = p.matcher(receivedMessage);
- String aString = "";
- while(m.find()) {
- aString = m.group().trim().replace(":", "").replace("@", "");
- }
- return aString;
- }
- private static String getSite(String receivedMessage){
- Pattern p = Pattern.compile("@(\\w|\\.|-){3,50}:");
- Matcher m = p.matcher(receivedMessage);
- String aString = "";
- while(m.find()) {
- aString = m.group().trim().replace(":", "").replace("@", "");;
- }
- return aString;
- }
- private static Integer getPort2(String receivedMessage){
- Pattern p = Pattern.compile(":(\\d{1,4}|[1-6][0-5]{2}[0-3][0-5])/");
- Matcher m = p.matcher(receivedMessage);
- Integer aInt = 0;
- while(m.find()) {
- aInt = Integer.parseInt(m.group().trim().replace("/", "").replace(":", ""));
- }
- return aInt;
- }
- private static String getPath(String receivedMessage){
- Pattern p = Pattern.compile("/(\\w|\\.|-|/){0,100}");
- Matcher m = p.matcher(receivedMessage);
- String aString = "";
- while(m.find()) {
- aString = m.group().trim(); //le slash du début est compris dedans!!
- }
- return aString;
- }
- private static String getUrl(String receivedMessage){
- String url = "";
- Pattern p = Pattern.compile("\\s(\\d|[a-zA-Z]){3,15}://(\\d|[a-zA-Z]){3,50}:\\w{3,50}@(\\w|\\.|-){3,50}:(\\d{1,4}|[1-6][0-5]{2}[0-3][0-5])/(\\w|\\.|-|/){0,100}\\s");
- Matcher m = p.matcher(receivedMessage);
- while(m.find()) {
- url = m.group().trim();
- }
- return url;
- }
- private static int getFrequency(String receivedMessage){
- int frequency = 0;
- Pattern p = Pattern.compile("\\s\\d{1,8}\r\n");
- Matcher m = p.matcher(receivedMessage);
- while(m.find()) {
- frequency = Integer.parseInt(m.group().trim());
- }
- return frequency;
- }
- //"SERVICE_ADD" sp id sp url sp frequence crlf
- private static void msgReqAjoutService(String receivedMessage) {
- if(Pattern.matches("\"[a-zA-Z_]+\"\\s(\\d|[a-zA-Z]){5,10}\\s(\\d|[a-zA-Z]){3,15}://((\\d|[a-zA-Z]){3,50}:\\w{3,50}@)?(\\w|\\.|-){3,50}(:(\\d{1,4}|[1-6][0-5]{2}[0-3][0-5]))?/(\\w|\\.|-|/){0,100}\\s\\d{1,8}\r\n", receivedMessage)) {
- String id = getId(receivedMessage);
- String protocol = getProtocol2(receivedMessage);
- String user = getUser(receivedMessage);
- String password = getPassword(receivedMessage);
- String site = getSite(receivedMessage);
- int port = getPort2(receivedMessage);
- String path = getPath(receivedMessage);
- String url = getUrl(receivedMessage); //toujours besoin ??
- int frequency = getFrequency(receivedMessage);
- System.out.println("ok");
- }else{
- System.out.println("pas ok");
- }
- }
- private static String getState(String receivedMessage){
- String state = "";
- Pattern p = Pattern.compile("\\(\"(\\+OK|-ERR)\"\\)");
- Matcher m = p.matcher(receivedMessage);
- while(m.find()) {
- state = m.group().trim();
- }
- return state;
- }
- private static String getMessage(String receivedMessage){
- String message = "";
- Pattern p = Pattern.compile("\\[.{1,200}\\]\r\n");
- Matcher m = p.matcher(receivedMessage);
- while(m.find()) {
- message = m.group().trim().replace("[", "").replace("]","");
- }
- return message;
- }
- //("+OK" | "-ERR") [message] crlf
- private static void msgReponseAjoutService(String receivedMessage) {
- if(Pattern.matches("\\(\"(\\+OK|-ERR)\"\\)\\[.{1,200}\\]\r\n", receivedMessage)) {
- String state = getState(receivedMessage);
- String message = getMessage(receivedMessage);
- }
- }
- //"SERVICE_LIST" crlf
- private static void msgReqListeService(String receivedMessage) {
- if(Pattern.matches("\"[a-zA-Z_]+\"\r\n", receivedMessage)) {
- }
- }
- private static List<String> getAllId(String receivedMessage){
- List<String> idList = new ArrayList<>();
- Pattern p = Pattern.compile("\\s(\\d|[a-zA-Z]){5,10}");
- Matcher m = p.matcher(receivedMessage);
- while(m.find()) {
- idList.add(m.group().trim());
- }
- return idList;
- }
- //"SERVICE_INFO" 0*100(sp id) crlf
- private static void msgReponseListeService(String receivedMessage) {
- if(Pattern.matches("\"[a-zA-Z_]+\"(\\s(\\d|[a-zA-Z]){5,10}){0,100}\r\n", receivedMessage)) {
- List<String> idList = getAllId(receivedMessage);
- }
- }
- private static String getId2(String receivedMessage){
- String id = "";
- Pattern p = Pattern.compile("\\s(\\d|[a-zA-Z]){5,10}");
- Matcher m = p.matcher(receivedMessage);
- while(m.find()) {
- id = m.group().trim();
- }
- return id;
- }
- //"SERVICE_RETR" sp id crlf
- private static void msgReqInfoService(String receivedMessage) {
- if(Pattern.matches("\"[a-zA-Z_]+\"\\s(\\d|[a-zA-Z]){5,10}\r\n", receivedMessage)) {
- String id = getId2(receivedMessage);
- }
- }
- private static String getState2(String receivedMessage){
- String state = "";
- Pattern p = Pattern.compile("\\s(OK|ALARM|DOWN)\r\n");
- Matcher m = p.matcher(receivedMessage);
- while(m.find()) {
- state = m.group().trim();
- }
- return state;
- }
- //"SERVICE_DATA" sp id sp url sp etat crlf
- private static void msgReponseInfoService(String receivedMessage) {
- if(Pattern.matches("\"[a-zA-Z_]+\"\\s(\\d|[a-zA-Z]){5,10}\\s(\\d|[a-zA-Z]){3,15}://((\\d|[a-zA-Z]){3,50}:.{3,50}@)?(\\w|\\.|-){3,50}(:(\\d{1,4}|[1-6][0-5]{2}[0-3][0-5]))?/(\\w|\\.|-|/){0,100}\\s(OK|ALARM|DOWN)\r\n", receivedMessage)) {
- String id = getId(receivedMessage); //pris d'en haut
- String protocol = getProtocol2(receivedMessage);
- String user = getUser(receivedMessage);
- String password = getPassword(receivedMessage);
- String site = getSite(receivedMessage);
- int port = getPort2(receivedMessage);
- String path = getPath(receivedMessage);
- String url = getUrl(receivedMessage); //pris d'en haut
- String state = getState2(receivedMessage);
- }
- }
- //concentrateur - sonde
- public void messageProcessing(String receivedMessage) {
- if (receivedMessage.contains("\"PROBE_CONFIG\"")) {
- msgEnvoiConfig(receivedMessage);
- }else if (receivedMessage.contains("\"PROBE_LIST\"")) {
- msgReqInfoSonde(receivedMessage);
- }else if (receivedMessage.contains("\"PROBE_INFO\"")) {
- msgReponseInfoSonde(receivedMessage);
- }else if (receivedMessage.contains("\"PROBE_RETR\"")) {
- msgReqDonneeSonde(receivedMessage);
- }else if(receivedMessage.contains("\"PROBE_DATA\"")){
- msgReponseDonneeSonde(receivedMessage);
- }
- }
- private static List<String> getAllIdConfig(String receivedMessage){
- List<String> idList = new ArrayList<>();
- Pattern p = Pattern.compile("\\s(\\d|[a-zA-Z]){5,10}!");
- Matcher m = p.matcher(receivedMessage);
- while(m.find()) {
- idList.add(m.group().trim().replace("!", ""));
- }
- return idList;
- }
- private static List<String> getAllUrlConfig(String receivedMessage){
- List<String> urlList = new ArrayList<>();
- Pattern p = Pattern.compile("!(\\d|[a-zA-Z]){3,15}://(\\d|[a-zA-Z]){3,50}:.{3,50}@(\\w|\\.|-){3,50}:(\\d{1,4}|[1-6][0-5]{2}[0-3][0-5])/(\\w|\\.|-|/){0,100}!");
- Matcher m = p.matcher(receivedMessage);
- while(m.find()) {
- urlList.add(m.group().trim().replace("!", ""));
- }
- return urlList;
- }
- private static List<Integer> getAllFrequencyConfig(String receivedMessage){
- List<Integer> frequencyList = new ArrayList<>();
- Pattern p = Pattern.compile("!\\d{1,8}\\s");
- Matcher m = p.matcher(receivedMessage);
- while(m.find()) {
- frequencyList.add(Integer.parseInt(m.group().trim().replace("!", "")));
- }
- return frequencyList;
- }
- private static Map<String, Service> getServices(String receivedMessage){
- Map<String, Service> mapServices = new HashMap<>();
- int elements = getAllIdConfig(receivedMessage).size();
- List<String> idList = getAllIdConfig(receivedMessage);
- List<String> urlList = getAllUrlConfig(receivedMessage);
- List<Integer> frequencyList = getAllFrequencyConfig(receivedMessage);
- for (int i = 0; i < elements; i++) {
- mapServices.put(idList.get(i), new Service(urlList.get(i), frequencyList.get(i)));
- }
- return mapServices;
- }
- //"PROBE_CONFIG" sp 0*100(id "!" url "!" frequence sp) crlf
- private static void msgEnvoiConfig(String receivedMessage) {
- if(Pattern.matches("\"[a-zA-Z_]+\"\\s((\\d|[a-zA-Z]){5,10}!(\\d|[a-zA-Z]){3,15}://((\\d|[a-zA-Z]){3,50}:.{3,50}@)?(\\w|\\.|-){3,50}(:(\\d{1,4}|[1-6][0-5]{2}[0-3][0-5]))?/(\\w|\\.|-|/){0,100}!\\d{1,8}\\s){0,100}\r\n", receivedMessage)) {
- Map<String, Service> services = getServices(receivedMessage);
- }
- }
- //"PROBE_LIST " crlf
- private static void msgReqInfoSonde(String receivedMessage) {
- if(Pattern.matches("\"[a-zA-Z_]+\"\r\n", receivedMessage)) {
- }
- }
- private static List<String> getAllId2(String receivedMessage){
- List<String> idList = new ArrayList<>();
- Pattern p = Pattern.compile("(\\d|[a-zA-Z]){5,10}\\s");
- Matcher m = p.matcher(receivedMessage);
- while(m.find()) {
- idList.add(m.group().trim());
- }
- return idList;
- }
- //"PROBE_INFO" sp 0*100(id sp) crlf
- private static void msgReponseInfoSonde(String receivedMessage) {
- if(Pattern.matches("\"[a-zA-Z_]+\"\\s((\\d|[a-zA-Z]){5,10}\\s){0,100}\r\n", receivedMessage)) {
- List<String> idList = getAllId2(receivedMessage);
- }
- }
- private static String getId3(String receivedMessage){
- String id = "";
- Pattern p = Pattern.compile("\\s(\\d|[a-zA-Z]){5,10}");
- Matcher m = p.matcher(receivedMessage);
- while(m.find()) {
- id = m.group().trim();
- }
- return id;
- }
- //"PROBE_RETR" sp id crlf
- private static void msgReqDonneeSonde(String receivedMessage) {
- if(Pattern.matches("\"[a-zA-Z_]+\"\\s(\\d|[a-zA-Z]){5,10}\r\n", receivedMessage)) {
- String id = getId3(receivedMessage);
- }
- }
- private static String getId4(String receivedMessage){
- String id = "";
- Pattern p = Pattern.compile("\\s(\\d|[a-zA-Z]){5,10}");
- Matcher m = p.matcher(receivedMessage);
- while(m.find()) {
- id = m.group().trim();
- }
- return id;
- }
- private static String getState3(String receivedMessage){
- String state = "";
- Pattern p = Pattern.compile("\\s(OK|ALARM|DOWN)\r\n");
- Matcher m = p.matcher(receivedMessage);
- while(m.find()) {
- state = m.group().trim();
- }
- return state;
- }
- //"PROBE_DATA" sp id sp etat crlf
- private static void msgReponseDonneeSonde(String receivedMessage) {
- if(Pattern.matches("\"[a-zA-Z_]+\"\\s(\\d|[a-zA-Z]){5,10}\\s(OK|ALARM|DOWN)\r\n", receivedMessage)) {
- String id = getId4(receivedMessage);
- String state = getState3(receivedMessage);
- }
- }
- //sonde - concentrateur
- public void messageProcessing3(String receivedMessage) {
- if (receivedMessage.contains("\"PROBE_ANNOUNCE\"")) {
- msgAnnonceSonde(receivedMessage);
- }else if (receivedMessage.contains("\"PROBE_NEWDATA\"")) {
- msgAnnonceDonnee(receivedMessage);
- }
- }
- private static String getProtocol(String receivedMessage){
- Pattern p = Pattern.compile("\\s(\\d|[a-zA-Z]){3,15}\\s");
- Matcher m = p.matcher(receivedMessage);
- String aString = "";
- while(m.find()) {
- aString = m.group().trim();
- }
- return aString;
- }
- private static Integer getPort(String receivedMessage){
- Pattern p = Pattern.compile("\\s(\\d{1,4}|[1-6][0-5]{2}[0-3][0-5])\r\n");
- Matcher m = p.matcher(receivedMessage);
- Integer aInt = 0;
- while(m.find()) {
- aInt = Integer.parseInt(m.group().trim());
- }
- return aInt;
- }
- //"PROBE_ANNOUNCE" sp protocole sp port crlf
- private static void msgAnnonceSonde(String receivedMessage) {
- if(Pattern.matches("\"[a-zA-Z_]+\"\\s(\\d|[a-zA-Z]){3,15}\\s(\\d{1,4}|[1-6][0-5]{2}[0-3][0-5])\r\n", receivedMessage)) {
- String protocol = getProtocol(receivedMessage);
- Integer port = getPort(receivedMessage);
- }
- }
- //"PROBE_NEWDATA" sp protocole sp port crlf
- private static void msgAnnonceDonnee(String receivedMessage) {
- if(Pattern.matches("\"[a-zA-Z_]+\"\\s(\\d|[a-zA-Z]){3,15}\\s(\\d{1,4}|[1-6][0-5]{2}[0-3][0-5])\r\n", receivedMessage)) {
- String protocol = getProtocol(receivedMessage); //pris au dessus
- Integer port = getPort(receivedMessage); //pris au dessus
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement