Skip to content
InfluxdbUVSQsat.java 10.2 KiB
Newer Older
xtof's avatar
xtof committed
package org.josast.influxdb;

xtof's avatar
xtof committed
import java.util.Date;

xtof's avatar
xtof committed
import org.josast.influxdb.UVSQSAT.idbantsHk;
import org.josast.influxdb.UVSQSAT.idbbeacon;
import org.josast.influxdb.UVSQSAT.idbiepsHkStatus;
import org.josast.influxdb.UVSQSAT.idbimtqHk;
import org.josast.influxdb.UVSQSAT.idbmainboardAllScience;
import org.josast.influxdb.UVSQSAT.idbmainboardHk;
import org.josast.influxdb.UVSQSAT.idbobcHk;
import org.josast.influxdb.UVSQSAT.idbobcStatus;
import org.josast.influxdb.UVSQSAT.idbtrxvurxHk;
import org.josast.influxdb.UVSQSAT.idbtrxvutxHk;
xtof's avatar
xtof committed
import org.josast.influxdbFT.UVSQSAT.*;
xtof's avatar
xtof committed
import org.josast.uvsqsat.generated.Uvsqsat;
xtof's avatar
xtof committed
import org.josast.uvsqsat.generated.Uvsqsat.MainboardAllScience;
import org.josast.uvsqsat.generated.Uvsqsat.MainboardHk;
import org.josast.uvsqsat.generated.Uvsqsat.IepsHkStatus;
import org.josast.uvsqsat.generated.Uvsqsat.ImtqHk;
import org.josast.uvsqsat.generated.Uvsqsat.TrxvurxHk;
import org.josast.uvsqsat.generated.Uvsqsat.TrxvutxHk;
xtof's avatar
xtof committed
import org.josast.uvsqsat.generated.Uvsqsat.AntsHk;
import org.josast.uvsqsat.generated.Uvsqsat.Beacon;
import org.josast.uvsqsat.generated.Uvsqsat.ObcHk;
import org.josast.uvsqsat.generated.Uvsqsat.ObcStatus;
import org.josast.uvsqsat.generated.Uvsqsat.UiFrame;

import io.kaitai.struct.ByteBufferKaitaiStream;

xtof's avatar
xtof committed
public class InfluxdbUVSQsat {
xtof's avatar
xtof committed

xtof's avatar
xtof committed
    private idbbeacon idbbeaconImp;
    private idbantsHk idbantsHkImp;
    private idbobcHk idbobcHkImp;
    private idbmainboardAllScience idbmainboardAllScienceImp;
    private idbobcStatus idbobcStatusImp;
    private idbmainboardHk idbmainboardHkImp;
    private idbiepsHkStatus idbiepsHkStatusImp;
    private idbtrxvurxHk idbtrxvurxHkImp;
    private idbimtqHk idbimtqHkImp;
    private idbtrxvutxHk idbtrxvutxHkImp;
xtof's avatar
xtof committed
    private idbftbeacon idbbeaconImpft;
    private idbftantsHk idbantsHkImpft;
    private idbftobcStatus idbobcStatusImpft;
    private idbftobcHk idbobcHkImpft;
    private idbftmainboardAllScience idbmainboardAllScienceImpft;
    private idbftmainboardHk idbmainboardHkImpft;

    private idbftiepsHkStatus idbiepsHkStatusImpft;
    private idbftimtqHk idbimtqHkImpft;
    private idbfttrxvutxHk idbtrxvutxHkImpft;
    private idbfttrxvurxHk idbtrxvurxHkImpft;

    public InfluxdbUVSQsat()

xtof's avatar
xtof committed
    {
        System.out.println("init");
xtof's avatar
xtof committed
        idbbeaconImp = new idbbeacon();
        idbantsHkImp = new idbantsHk();
        idbobcStatusImp = new idbobcStatus();
        idbobcHkImp = new idbobcHk();
        idbmainboardAllScienceImp = new idbmainboardAllScience();
        idbmainboardHkImp = new idbmainboardHk();
        idbiepsHkStatusImp = new idbiepsHkStatus();
        idbtrxvurxHkImp = new idbtrxvurxHk();
        idbimtqHkImp = new idbimtqHk();
        idbtrxvutxHkImp = new idbtrxvutxHk();

        idbbeaconImpft = new idbftbeacon();
        idbantsHkImpft = new idbftantsHk();
        idbobcStatusImpft = new idbftobcStatus();
        idbobcHkImpft = new idbftobcHk();
        idbmainboardAllScienceImpft = new idbftmainboardAllScience();
        idbmainboardHkImpft = new idbftmainboardHk();
        idbiepsHkStatusImpft = new idbftiepsHkStatus();
        idbtrxvurxHkImpft = new idbfttrxvurxHk();
        idbimtqHkImpft = new idbftimtqHk();
        idbtrxvutxHkImpft = new idbfttrxvutxHk();

xtof's avatar
xtof committed
    }
xtof's avatar
xtof committed

xtof's avatar
xtof committed
    public void connect(String databaseURL, String userName, String password) {
xtof's avatar
xtof committed

xtof's avatar
xtof committed
        String databaseName = "UVSQSatTest";
        idbbeaconImp.conect(databaseURL, userName, password);
        idbantsHkImp.conect(databaseURL, userName, password);
        idbobcStatusImp.conect(databaseURL, userName, password);
        idbobcHkImp.conect(databaseURL, userName, password);
        idbmainboardAllScienceImp.conect(databaseURL, userName, password);
        idbmainboardHkImp.conect(databaseURL, userName, password);
        idbiepsHkStatusImp.conect(databaseURL, userName, password);
        idbtrxvurxHkImp.conect(databaseURL, userName, password);
        idbimtqHkImp.conect(databaseURL, userName, password);
        idbtrxvutxHkImp.conect(databaseURL, userName, password);
xtof's avatar
xtof committed

xtof's avatar
xtof committed
        idbbeaconImp.createDataBase(databaseName);
        idbantsHkImp.createDataBase(databaseName);
        idbobcStatusImp.createDataBase(databaseName);
        idbobcHkImp.createDataBase(databaseName);
        idbmainboardAllScienceImp.createDataBase(databaseName);
        idbmainboardHkImp.createDataBase(databaseName);
        idbiepsHkStatusImp.createDataBase(databaseName);
        idbtrxvurxHkImp.createDataBase(databaseName);
        idbimtqHkImp.createDataBase(databaseName);
        idbtrxvutxHkImp.createDataBase(databaseName);
xtof's avatar
xtof committed

xtof's avatar
xtof committed
        databaseName = "UVSQSatFTTest";
        idbbeaconImpft.conect(databaseURL, userName, password);
        idbantsHkImpft.conect(databaseURL, userName, password);
        idbobcStatusImpft.conect(databaseURL, userName, password);
        idbobcHkImpft.conect(databaseURL, userName, password);
        idbmainboardAllScienceImpft.conect(databaseURL, userName, password);
        idbmainboardHkImpft.conect(databaseURL, userName, password);
        idbiepsHkStatusImpft.conect(databaseURL, userName, password);
        idbtrxvurxHkImpft.conect(databaseURL, userName, password);
        idbimtqHkImpft.conect(databaseURL, userName, password);
        idbtrxvutxHkImpft.conect(databaseURL, userName, password);

        idbbeaconImpft.createDataBase(databaseName);
        idbantsHkImpft.createDataBase(databaseName);
        idbobcStatusImpft.createDataBase(databaseName);
        idbobcHkImpft.createDataBase(databaseName);
        idbmainboardAllScienceImpft.createDataBase(databaseName);
        idbmainboardHkImpft.createDataBase(databaseName);
        idbiepsHkStatusImpft.createDataBase(databaseName);
        idbtrxvurxHkImpft.createDataBase(databaseName);
        idbimtqHkImpft.createDataBase(databaseName);
        idbtrxvutxHkImpft.createDataBase(databaseName);
    }

    public void store(String data, String source) {

        int sid = 0;
xtof's avatar
xtof committed
        byte[] tlm = null;
xtof's avatar
xtof committed
        long time = 0;
        UiFrame uiFrame = null;

        long timef = 0;
xtof's avatar
xtof committed
        try {
xtof's avatar
xtof committed
            tlm = hexStringToByteArray(data);
xtof's avatar
xtof committed
            Uvsqsat frame = new Uvsqsat(new ByteBufferKaitaiStream(tlm));

            uiFrame = (UiFrame) frame.ax25Frame().payload();
            sid = uiFrame.packetSecondaryHeader().sid();
            timef = uiFrame.packetSecondaryHeader().time();
            timef = timef * 1000;

        } catch (Exception e) {
            // appLogger.severe("Error decoding packet " +
            // e.getStackTrace().toString());
            System.err.println(
                    "Error decoding packet " + e.getStackTrace().toString());
        }
        time = new Date().getTime();
        switch (sid) {
        case 0x0E:
            // obc_status
            break;

        case 0x0F:
            idbbeaconImp.storeSid(sid, source, time);
            idbbeaconImp.addFrame((Beacon) uiFrame.tlm(), source, time);
            idbbeaconImpft.addFrameFrameTime((Beacon) uiFrame.tlm(), source,
                    timef);
            break;
        case 0x10:
            idbantsHkImp.storeSid(sid, source, time);
            idbantsHkImp.addFrame((AntsHk) uiFrame.tlm(), source, time);
            idbantsHkImpft.addFrameFrameTime((AntsHk) uiFrame.tlm(), source,
                    timef);
            break;

        case 0x11:
            idbobcStatusImp.storeSid(sid, source, time);
            // obc_status
            idbobcStatusImp.addFrame((ObcStatus) uiFrame.tlm(), source, time);
            idbobcStatusImpft.addFrameFrameTime((ObcStatus) uiFrame.tlm(),
                    source, timef);
            break;
        case 0x12:

            // obc_hk_tm
            idbobcHkImp.storeSid(sid, source, time);
            idbobcHkImp.addFrame((ObcHk) uiFrame.tlm(), source, time);
            idbobcHkImpft.addFrameFrameTime((ObcHk) uiFrame.tlm(), source,
                    timef);

            break;

        case 0x13:
            // 0x13: mainboard_all_science
            idbmainboardAllScienceImp.storeSid(sid, source, time);
            idbmainboardAllScienceImp.addFrame(
                    (MainboardAllScience) uiFrame.tlm(), source, time);
            idbmainboardAllScienceImpft.addFrameFrameTime(
                    (MainboardAllScience) uiFrame.tlm(), source, timef);
            break;

        case 0x14:
            // 0x14: mainboard_hk
            idbmainboardHkImp.storeSid(sid, source, time);
            idbmainboardHkImp.addFrame((MainboardHk) uiFrame.tlm(), source,
                    time);
            idbmainboardHkImpft.addFrameFrameTime((MainboardHk) uiFrame.tlm(),
                    source, timef);

            break;

        case 0x15:
            // ieps_hk_status_tm
            idbiepsHkStatusImp.storeSid(sid, source, time);
            idbiepsHkStatusImp.addFrame((IepsHkStatus) uiFrame.tlm(), source,
                    time);
            idbiepsHkStatusImpft.addFrameFrameTime((IepsHkStatus) uiFrame.tlm(),
                    source, timef);
            break;

        case 0x16:

            // 0x16: trxvurx_hk
            idbtrxvurxHkImp.storeSid(sid, source, time);
            idbtrxvurxHkImp.addFrame((TrxvurxHk) uiFrame.tlm(), source, time);
            idbtrxvurxHkImpft.addFrameFrameTime((TrxvurxHk) uiFrame.tlm(),
                    source, timef);
            break;
        case 0x17:
            // imtq_hk_tm

            idbimtqHkImp.storeSid(sid, source, time);
            idbimtqHkImp.addFrame((ImtqHk) uiFrame.tlm(), source, time);
            idbimtqHkImpft.addFrameFrameTime((ImtqHk) uiFrame.tlm(), source,
                    timef);
            break;
        case 0x18:
            // trxvutx_hk_tm
            idbtrxvutxHkImp.storeSid(sid, source, time);
            idbtrxvutxHkImp.addFrame((TrxvutxHk) uiFrame.tlm(), source, time);
            idbtrxvutxHkImpft.addFrameFrameTime((TrxvutxHk) uiFrame.tlm(),
                    source, timef);
            break;
        default:
            System.err.println("SID not found " + sid);
xtof's avatar
xtof committed
            System.err.println("ASCII  " + new String(tlm));
            idbtrxvutxHkImp.storeSid(sid, source, time);
xtof's avatar
xtof committed
        }

    }

    public byte[] hexStringToByteArray(String s) {
        byte[] b = new byte[s.length() / 2];
        for (int i = 0; i < b.length; i++) {
            int index = i * 2;
            int v = Integer.parseInt(s.substring(index, index + 2), 16);
            b[i] = (byte) v;
        }
        return b;
    }

xtof's avatar
xtof committed
}