package org.josast.databaseSync; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; import java.util.logging.Logger; import org.josast.databaseSync.config.ManageJSonConfigFile; import org.json.JSONObject; public class AppSynchroAmsatToUvsqsat { private static Logger appLogger = Logger.getLogger("AmsatLogger"); private static long MN = 1000 * 60; private Path filepath; private String RepositoryPath ="config"; private AmsatToUvsqsatSyncConfig config = new AmsatToUvsqsatSyncConfig(); private String fileIn=null; SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss.SSS"); public void execute () { formater.setTimeZone(TimeZone.getTimeZone("UTC")); // lecture de la configuration ManageJSonConfigFile mjcf = new ManageJSonConfigFile(); config = (AmsatToUvsqsatSyncConfig) mjcf.readJson(new AmsatToUvsqsatSyncConfig()); // Récupération des données GetDataFromAmsatDatabase dataAmsatDb = new GetDataFromAmsatDatabase(config.getAmsatDatabaseUrl()); Date endDate = new Date(); long temp = endDate.getTime() - MN*Integer.parseInt(config.getDeltaTime()); Date startDate = new Date(temp); DataToExchange[] results = dataAmsatDb.getTelemetrydata(startDate, endDate, Integer.parseInt(config.getSatelliteNasaId())); // et écriture dans un fichier if (results!= null) { // file format 2020-12-21-17-42-19.409-Data.json String creationdate = formater.format(startDate); fileIn=creationdate +"-Data.json"; DataToUVSQsatControlCenter dtc = new DataToUVSQsatControlCenter(results, fileIn); dtc.save(); // Envoie du fichier vers Latmos SendSftp sfp = new SendSftp(config.getSftpUrl(),config.getLogin(),config.getPassword()); String remotefile = "/toLATMOS/json/"+fileIn; String localfile = fileIn; sfp.upload(localfile,remotefile); System.out.println("Upload"); // efface fichier local. try { Files.delete(Paths.get(fileIn)); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.exit(0); } } public int SaveConfigFile(AmsatToUvsqsatSyncConfig tlmData) { int erreur = 0; SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss.SSS"); Date aujourdhui = new Date(); JSONObject jasonObject = new JSONObject(tlmData); String creationdate = formater.format(aujourdhui); // AmsatToUvsqsatSyncConfig jasonObject2 = (AmsatToUvsqsatSyncConfig) toBean(jasonObject, new AmsatToUvsqsatSyncConfig()); filepath = Paths.get(this.RepositoryPath + "\\Data.json"); try { if (!Files.exists(filepath)) { Files.createFile(filepath); Files.writeString(filepath, " " + "\r\n",StandardOpenOption.CREATE); } Files.writeString(filepath, jasonObject.toString() + "\r\n",StandardOpenOption.CREATE); if (Files.size(filepath)<10) { appLogger.severe("file not created "); erreur=-1; } } catch (IOException e) { appLogger.severe(e.toString()); erreur=-1; } return erreur; } public static void main(String[] args) { AppSynchroAmsatToUvsqsat app = new AppSynchroAmsatToUvsqsat(); app.execute(); // app.initDirectory(); // AmsatToUvsqsatSyncConfig config = new AmsatToUvsqsatSyncConfig(); // config.setAmsatDatabaseUrl("AMSATDataBase"); // config.setDeltaTimeLong(10); // config.setDeltaTime("10"); // config.setLogin("login"); // config.setPassword("password"); // config.setSftpUrl("URL SFTP"); // config.setSshUrl("SSH file"); //// // app.readJson( ); // app.saveTlmData(config); } }