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
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,17 @@

import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

import org.apache.commons.lang3.StringUtils;

import com.ibm.icu.text.UTF16.StringComparator;

import de.fhg.iais.roberta.syntax.configuration.ConfigurationComponent;
import de.fhg.iais.roberta.util.dbc.Assert;
import de.fhg.iais.roberta.util.dbc.DbcException;
Expand Down Expand Up @@ -170,6 +175,16 @@ public ConfigurationComponent optConfigurationComponentByType(String type) {
public Collection<ConfigurationComponent> getActors() {
return new HashMap<>(this.configurationComponents).values().stream().filter(ConfigurationComponent::isActor).collect(Collectors.toList());
}

public Collection<ConfigurationComponent> getActors(String type) {
return configurationComponents
.values()
.stream()
.filter(ConfigurationComponent::isActor)
.filter(actor -> type.equals(actor.componentType))
.sorted((actor1, actor2) -> StringUtils.compare(actor1.internalPortName, actor2.internalPortName))
.collect(Collectors.toList());
}

/**
* Returns all sensors in the configuration component map. While insertion order is preserved internally, it is unnecessary for code generation and similar
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,5 +138,7 @@ public interface SC {
String HTS221 = "HTS221";

String OLEDSSD1306I2C = "OLEDSSD1306I2C";

String DCMOTOR = "DCMOTOR";

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
DcMotorSetAction [DCM0, NumConst[value: 1], Backward, NumConst[value: 50]]
DcMotorSetAction [DCM0, NumConst[value: 1], Backward, NumConst[value: 120]]
DcMotorSetAction [DCM0, NumConst[value: 1], Backward, NumConst[value: -50]]
DcMotorSetAction [DCM0, NumConst[value: 2], Stop, NumConst[value: 75]]
DcMotorSetAction [DCM0, NumConst[value: 3], Forward, NumConst[value: 100]]
DcMotorSetAction [DCM0, NumConst[value: 3], Numeric, NumConst[value: -100]]
DcMotorSetAction [DCM0, NumConst[value: 3], Numeric, NumConst[value: 0]]
DcMotorSetAction [DCM0, NumConst[value: 3], Numeric, NumConst[value: 80]]
DcMotorSetAction [DCM0, NumConst[value: 1], Numeric, NumConst[value: 200]]
DcMotorSetAction [DCM0, Binary [ADD, Var [motor2], NumConst[value: 1]], Numeric, Var [speed]]
WaitTimeStmt[time: NumConst[value: 500]]
DcMotorSetAction [DCM1, NumConst[value: 2], Backward, NumConst[value: 50]]
DcMotorSetAction [DCM1, NumConst[value: 2], Stop, NumConst[value: 75]]
DcMotorSetAction [DCM1, NumConst[value: 2], Forward, NumConst[value: 75]]
WaitTimeStmt[time: NumConst[value: 500]]
DcMotorSetAction [DCM2, NumConst[value: 3], Backward, NumConst[value: 50]]
DcMotorSetAction [DCM2, NumConst[value: 3], Stop, NumConst[value: 80]]
DcMotorSetAction [DCM2, NumConst[value: 3], Forward, NumConst[value: 80]]
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
DcMotorSetAction [DCM0, NumConst[value: 1], Backward, NumConst[value: 50]]
DcMotorSetAction [DCM0, NumConst[value: 1], Backward, NumConst[value: 120]]
DcMotorSetAction [DCM0, NumConst[value: 1], Backward, NumConst[value: -50]]
DcMotorSetAction [DCM0, NumConst[value: 2], Stop, NumConst[value: 75]]
DcMotorSetAction [DCM0, NumConst[value: 3], Forward, NumConst[value: 100]]
DcMotorSetAction [DCM0, NumConst[value: 3], Numeric, NumConst[value: -100]]
DcMotorSetAction [DCM0, NumConst[value: 3], Numeric, NumConst[value: 0]]
DcMotorSetAction [DCM0, NumConst[value: 3], Numeric, NumConst[value: 80]]
DcMotorSetAction [DCM0, NumConst[value: 1], Numeric, NumConst[value: 200]]
DcMotorSetAction [DCM0, Binary [ADD, Var [motor2], NumConst[value: 1]], Numeric, Var [speed]]
WaitTimeStmt[time: NumConst[value: 500]]
DcMotorSetAction [DCM1, NumConst[value: 2], Backward, NumConst[value: 50]]
DcMotorSetAction [DCM1, NumConst[value: 2], Stop, NumConst[value: 75]]
DcMotorSetAction [DCM1, NumConst[value: 2], Forward, NumConst[value: 75]]
WaitTimeStmt[time: NumConst[value: 500]]
DcMotorSetAction [DCM2, NumConst[value: 3], Backward, NumConst[value: 50]]
DcMotorSetAction [DCM2, NumConst[value: 3], Stop, NumConst[value: 80]]
DcMotorSetAction [DCM2, NumConst[value: 3], Forward, NumConst[value: 80]]
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
DcMotorSetAction [DCM0, NumConst[value: 1], Backward, NumConst[value: 50]]
DcMotorSetAction [DCM0, NumConst[value: 1], Backward, NumConst[value: 120]]
DcMotorSetAction [DCM0, NumConst[value: 1], Backward, NumConst[value: -50]]
DcMotorSetAction [DCM0, NumConst[value: 2], Stop, NumConst[value: 75]]
DcMotorSetAction [DCM0, NumConst[value: 3], Forward, NumConst[value: 100]]
DcMotorSetAction [DCM0, NumConst[value: 3], Numeric, NumConst[value: -100]]
DcMotorSetAction [DCM0, NumConst[value: 3], Numeric, NumConst[value: 0]]
DcMotorSetAction [DCM0, NumConst[value: 3], Numeric, NumConst[value: 80]]
DcMotorSetAction [DCM0, NumConst[value: 1], Numeric, NumConst[value: 200]]
DcMotorSetAction [DCM0, Binary [ADD, Var [motor2], NumConst[value: 1]], Numeric, Var [speed]]
WaitTimeStmt[time: NumConst[value: 500]]
DcMotorSetAction [DCM1, NumConst[value: 2], Backward, NumConst[value: 50]]
DcMotorSetAction [DCM1, NumConst[value: 2], Stop, NumConst[value: 75]]
DcMotorSetAction [DCM1, NumConst[value: 2], Forward, NumConst[value: 75]]
WaitTimeStmt[time: NumConst[value: 500]]
DcMotorSetAction [DCM2, NumConst[value: 3], Backward, NumConst[value: 50]]
DcMotorSetAction [DCM2, NumConst[value: 3], Stop, NumConst[value: 80]]
DcMotorSetAction [DCM2, NumConst[value: 3], Forward, NumConst[value: 80]]
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Sensors:
[]
Actors:
[UsedActor [, DCMOTOR]]
Methods:
[]
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Sensors:
[]
Actors:
[UsedActor [, DCMOTOR]]
Methods:
[]
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Sensors:
[]
Actors:
[UsedActor [, DCMOTOR]]
Methods:
[]
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#define _GNU_SOURCE

#include "MicroBit.h"
#include "NEPODefs.h"
#include <list>
#include <array>
#include <stdlib.h>
MicroBit _uBit;

#include "DcMotor.h"
DcMotor dcMotor_DCM0(0x60);
DcMotor dcMotor_DCM1(0x61);
DcMotor dcMotor_DCM2(0x62);


double ___speed;
double ___motor2;

int main()
{
_uBit.init();
___speed = 9.5;
___motor2 = 4;

dcMotor_DCM0.init();
dcMotor_DCM1.init();
dcMotor_DCM2.init();

dcMotor_DCM0.setPercent(1, Direction::Backward, 50);
dcMotor_DCM0.setPercent(1, Direction::Backward, 120);
dcMotor_DCM0.setPercent(1, Direction::Backward, -50);
dcMotor_DCM0.setPercent(2, Direction::Stop, 0);
dcMotor_DCM0.setPercent(3, Direction::Forward, 100);
dcMotor_DCM0.setPercent(3, -100);
dcMotor_DCM0.setPercent(3, 0);
dcMotor_DCM0.setPercent(3, 80);
dcMotor_DCM0.setPercent(1, 200);
dcMotor_DCM0.setPercent(___motor2 + 1, ___speed);
_uBit.sleep(500);
dcMotor_DCM1.setPercent(2, Direction::Backward, 50);
dcMotor_DCM1.setPercent(2, Direction::Stop, 0);
dcMotor_DCM1.setPercent(2, Direction::Forward, 75);
_uBit.sleep(500);
dcMotor_DCM2.setPercent(3, Direction::Backward, 50);
dcMotor_DCM2.setPercent(3, Direction::Stop, 0);
dcMotor_DCM2.setPercent(3, Direction::Forward, 80);

dcMotor_DCM0.release();
dcMotor_DCM1.release();
dcMotor_DCM2.release();

release_fiber();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#define _GNU_SOURCE

#include "MicroBit.h"
#include "NEPODefs.h"
#include <list>
#include <array>
#include <stdlib.h>
MicroBit _uBit;

#include "DcMotor.h"
DcMotor dcMotor_DCM0(0x60);
DcMotor dcMotor_DCM1(0x61);
DcMotor dcMotor_DCM2(0x62);


double ___speed;
double ___motor2;

int main()
{
_uBit.init();
___speed = 9.5;
___motor2 = 4;

dcMotor_DCM0.init();
dcMotor_DCM1.init();
dcMotor_DCM2.init();

dcMotor_DCM0.setPercent(1, Direction::Backward, 50);
dcMotor_DCM0.setPercent(1, Direction::Backward, 120);
dcMotor_DCM0.setPercent(1, Direction::Backward, -50);
dcMotor_DCM0.setPercent(2, Direction::Stop, 0);
dcMotor_DCM0.setPercent(3, Direction::Forward, 100);
dcMotor_DCM0.setPercent(3, -100);
dcMotor_DCM0.setPercent(3, 0);
dcMotor_DCM0.setPercent(3, 80);
dcMotor_DCM0.setPercent(1, 200);
dcMotor_DCM0.setPercent(___motor2 + 1, ___speed);
_uBit.sleep(500);
dcMotor_DCM1.setPercent(2, Direction::Backward, 50);
dcMotor_DCM1.setPercent(2, Direction::Stop, 0);
dcMotor_DCM1.setPercent(2, Direction::Forward, 75);
_uBit.sleep(500);
dcMotor_DCM2.setPercent(3, Direction::Backward, 50);
dcMotor_DCM2.setPercent(3, Direction::Stop, 0);
dcMotor_DCM2.setPercent(3, Direction::Forward, 80);

dcMotor_DCM0.release();
dcMotor_DCM1.release();
dcMotor_DCM2.release();

release_fiber();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#define _GNU_SOURCE

#include "MicroBit.h"
#include "NEPODefs.h"
#include <list>
#include <array>
#include <stdlib.h>
MicroBit _uBit;

#include "DcMotor.h"
DcMotor dcMotor_DCM0(0x60);
DcMotor dcMotor_DCM1(0x61);
DcMotor dcMotor_DCM2(0x62);


double ___speed;
double ___motor2;

int main()
{
_uBit.init();
___speed = 9.5;
___motor2 = 4;

dcMotor_DCM0.init();
dcMotor_DCM1.init();
dcMotor_DCM2.init();

dcMotor_DCM0.setPercent(1, Direction::Backward, 50);
dcMotor_DCM0.setPercent(1, Direction::Backward, 120);
dcMotor_DCM0.setPercent(1, Direction::Backward, -50);
dcMotor_DCM0.setPercent(2, Direction::Stop, 0);
dcMotor_DCM0.setPercent(3, Direction::Forward, 100);
dcMotor_DCM0.setPercent(3, -100);
dcMotor_DCM0.setPercent(3, 0);
dcMotor_DCM0.setPercent(3, 80);
dcMotor_DCM0.setPercent(1, 200);
dcMotor_DCM0.setPercent(___motor2 + 1, ___speed);
_uBit.sleep(500);
dcMotor_DCM1.setPercent(2, Direction::Backward, 50);
dcMotor_DCM1.setPercent(2, Direction::Stop, 0);
dcMotor_DCM1.setPercent(2, Direction::Forward, 75);
_uBit.sleep(500);
dcMotor_DCM2.setPercent(3, Direction::Backward, 50);
dcMotor_DCM2.setPercent(3, Direction::Stop, 0);
dcMotor_DCM2.setPercent(3, Direction::Forward, 80);

dcMotor_DCM0.release();
dcMotor_DCM1.release();
dcMotor_DCM2.release();

release_fiber();
}
Loading