Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 28 additions & 25 deletions src/main/java/naasa/gov/mission/control/CommandBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
import space.exploration.communications.protocol.security.SecureMessage;
import space.exploration.communications.protocol.service.SamQueryOuterClass;
import space.exploration.communications.protocol.service.WeatherQueryOuterClass;


import space.exploration.communications.protocol.softwareUpdate.SwUpdatePackageOuterClass;
import space.exploration.kernel.diagnostics.LogRequest;

Expand All @@ -22,51 +24,46 @@ public class CommandBuilder {
//public static final String CERT_FILE = "src/main/resources/certificates/client.ser";

public static final String CERT_FILE = "src/main/resources/certificates/clientOriginal.ser";

private static byte[] signAndEncryptMessage(InstructionPayloadOuterClass.InstructionPayload instructionPayload) {
byte[] message = null;

try {
message = EncryptionUtil.encryptData("mission.control@Houston", new File(CERT_FILE), instructionPayload
.toByteArray(), 3l).toByteArray();
.toByteArray(),3l,true).toByteArray();
} catch (Exception e) {
e.printStackTrace();
}
return message;
}

public static byte[] buildSoftwareUpdateCommand() {
String jarFile = "https://storage.googleapis.com/rover_artifacts/softwareUpdates/mars" +
".rover-1.8-SOLSHOT-shaded.jar";
public static byte[] buildSampleAnalysis(int sol) {
InstructionPayloadOuterClass.InstructionPayload.Builder iBuilder = InstructionPayloadOuterClass
.InstructionPayload.newBuilder();
iBuilder.setTimeStamp(System.currentTimeMillis());
iBuilder.setSOS(false);

InstructionPayloadOuterClass.InstructionPayload.TargetPackage.Builder tBuilder = InstructionPayloadOuterClass
.InstructionPayload.TargetPackage.newBuilder();

SwUpdatePackageOuterClass.SwUpdatePackage.Builder sBuilder = SwUpdatePackageOuterClass.SwUpdatePackage
.newBuilder();
sBuilder.setJarFileLocation(jarFile);
sBuilder.setLaunchScriptLocation("https://storage.googleapis" +
".com/rover_artifacts/softwareUpdates/softwareLaunch.sh");
sBuilder.setJarFileName("mars.rover-1.8-SOLSHOT-shaded.jar");
sBuilder.setVersion(1.9d);
sBuilder.setScriptFileName("softwareLaunch.sh");
tBuilder.setAuxiliaryData(sBuilder.build().toByteString());
SamQueryOuterClass.SamQuery.Builder sBuilder = SamQueryOuterClass.SamQuery.newBuilder();
sBuilder.setSol(sol);
sBuilder.setGetNearest(true);

tBuilder.setAction("Update Software");
tBuilder.setRoverModule(ModuleDirectory.Module.KERNEL.getValue());
tBuilder.setAuxiliaryData(sBuilder.build().toByteString());
tBuilder.setAction("Perform Sample Analysis");
tBuilder.setRoverModule(ModuleDirectory.Module.SAM_SPECTROMETER.getValue());
iBuilder.addTargets(tBuilder.build());
iBuilder.addTargets(tBuilder.build());

InstructionPayloadOuterClass.InstructionPayload instructionPayload = iBuilder.build();
//System.out.println(instructionPayload.toString());

return signAndEncryptMessage(instructionPayload);
}

public static byte[] buildSampleAnayslisCommand(int sol) {


public static byte[] buildSoftwareUpdateCommand() {
String jarFile = "https://storage.googleapis.com/rover_artifacts/softwareUpdates/mars" +
".rover-1.8-SOLSHOT-shaded.jar";
InstructionPayloadOuterClass.InstructionPayload.Builder iBuilder = InstructionPayloadOuterClass
.InstructionPayload.newBuilder();
iBuilder.setTimeStamp(System.currentTimeMillis());
Expand All @@ -75,16 +72,22 @@ public static byte[] buildSampleAnayslisCommand(int sol) {
InstructionPayloadOuterClass.InstructionPayload.TargetPackage.Builder tBuilder = InstructionPayloadOuterClass
.InstructionPayload.TargetPackage.newBuilder();

SamQueryOuterClass.SamQuery.Builder sBuilder = SamQueryOuterClass.SamQuery.newBuilder();
sBuilder.setSol(sol);
sBuilder.setGetNearest(true);

SwUpdatePackageOuterClass.SwUpdatePackage.Builder sBuilder = SwUpdatePackageOuterClass.SwUpdatePackage
.newBuilder();
sBuilder.setJarFileLocation(jarFile);
sBuilder.setLaunchScriptLocation("https://storage.googleapis" +
".com/rover_artifacts/softwareUpdates/softwareLaunch.sh");
sBuilder.setJarFileName("mars.rover-1.8-SOLSHOT-shaded.jar");
sBuilder.setVersion(1.9d);
sBuilder.setScriptFileName("softwareLaunch.sh");
tBuilder.setAuxiliaryData(sBuilder.build().toByteString());
tBuilder.setAction("Perform Sample Analysis");
tBuilder.setRoverModule(ModuleDirectory.Module.SAM_SPECTROMETER.getValue());

tBuilder.setAction("Update Software");
tBuilder.setRoverModule(ModuleDirectory.Module.KERNEL.getValue());
iBuilder.addTargets(tBuilder.build());

InstructionPayloadOuterClass.InstructionPayload instructionPayload = iBuilder.build();
//System.out.println(instructionPayload.toString());

return signAndEncryptMessage(instructionPayload);
}
Expand Down
3 changes: 1 addition & 2 deletions src/main/java/naasa/gov/mission/control/Driver.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package naasa.gov.mission.control;


import communications.protocol.KafkaConfig;
import org.apache.log4j.FileAppender;
import org.apache.log4j.Level;
Expand Down Expand Up @@ -34,7 +33,7 @@ public static void configureLogging(boolean debug) {

public static void main(String[] args) throws Exception {
configureLogging(Boolean.parseBoolean(args[1]));
Receiver receiver = new Receiver(KafkaConfig.getKafkaConfig("Mission.Control", args[2]), args[0]);
Receiver receiver = new Receiver(KafkaConfig.getKafkaConfig("Mission.Control"), args[0]);
receiver.start();
}
}
74 changes: 74 additions & 0 deletions src/main/java/naasa/gov/mission/control/FailedDialog.form
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="naasa.gov.mission.control.FailedDialog">
<grid id="cbd77" binding="failedContentPane" custom-create="true" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="10" left="10" bottom="10" right="10"/>
<constraints>
<xy x="48" y="54" width="486" height="297"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<grid id="94766" layout-manager="GridLayoutManager" row-count="1" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<hspacer id="98af6">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
</hspacer>
<grid id="9538f" layout-manager="GridLayoutManager" row-count="1" column-count="2" same-size-horizontally="true" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<component id="e7465" class="javax.swing.JButton" binding="buttonOK">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="OK"/>
</properties>
</component>
<component id="5723f" class="javax.swing.JButton" binding="buttonCancel">
<constraints>
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Cancel"/>
</properties>
</component>
</children>
</grid>
</children>
</grid>
<grid id="e3588" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="50" left="50" bottom="50" right="50"/>
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<component id="d01b" class="javax.swing.JLabel">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<autoscrolls value="true"/>
<background color="-14276309"/>
<text value="Failed to send message !!! "/>
</properties>
</component>
</children>
</grid>
</children>
</grid>
</form>
39 changes: 39 additions & 0 deletions src/main/java/naasa/gov/mission/control/FailedDialog.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package naasa.gov.mission.control;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class FailedDialog extends JDialog {
private JPanel failedContentPane;
private JButton buttonOK;
private JButton buttonCancel;

public FailedDialog() {
setContentPane(failedContentPane);
setModal(true);
getRootPane().setDefaultButton(buttonOK);

buttonOK.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onOK();
}
});
}

private void onOK() {
// add your code here
dispose();
}

public static void main(String[] args) {
FailedDialog dialog = new FailedDialog();
dialog.pack();
dialog.setVisible(true);
//System.exit(0);
}

private void createUIComponents() {
// TODO: place custom component creation code here
}
}
89 changes: 89 additions & 0 deletions src/main/java/naasa/gov/mission/control/LogsDialog.form
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="naasa.gov.mission.control.LogsDialog">
<grid id="27dc6" binding="LogsDialogPane" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="10" left="10" bottom="10" right="10"/>
<constraints>
<xy x="20" y="20" width="500" height="400"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<grid id="e43ea" layout-manager="GridLayoutManager" row-count="5" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<component id="938a9" class="javax.swing.JLabel">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Enter Start date:"/>
</properties>
</component>
<component id="62771" class="javax.swing.JLabel">
<constraints>
<grid row="3" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Enter End date:"/>
</properties>
</component>
<component id="cfebc" class="javax.swing.JLabel">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value=" Please enter dates in the following format :: yyyy-MM-dd~hh:mm:ss :"/>
</properties>
</component>
<component id="9419b" class="javax.swing.JTextField" binding="startdate">
<constraints>
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
<preferred-size width="150" height="-1"/>
</grid>
</constraints>
<properties/>
</component>
<component id="cc5e5" class="javax.swing.JTextField" binding="enddate">
<constraints>
<grid row="4" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
<preferred-size width="150" height="-1"/>
</grid>
</constraints>
<properties/>
</component>
</children>
</grid>
<grid id="bc755" layout-manager="GridLayoutManager" row-count="1" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<component id="4ac88" class="javax.swing.JButton" binding="buttonOK">
<constraints>
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Cancel"/>
</properties>
</component>
<component id="80405" class="javax.swing.JButton" binding="buttonCancel">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Ok"/>
</properties>
</component>
</children>
</grid>
</children>
</grid>
</form>
Loading