Skip to content
AppSynchroAmsatToUvsqsat.java 3.77 KiB
Newer Older
xtof's avatar
xtof committed
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);

	}

}