restructerd projekt
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
<diagram program="umletino" version="14.4.0-SNAPSHOT"><zoom_level>10</zoom_level><element><id>UMLClass</id><coordinates><x>350</x><y>0</y><w>220</w><h>510</h></coordinates><panel_attributes><<hardware>>
|
||||
MotorControl
|
||||
--
|
||||
- name: String
|
||||
- debug: DebugMqtt*
|
||||
- target_power: int8_t = 0
|
||||
- power: int8_t = 0
|
||||
- direction: uint8_t = 0
|
||||
- last_millis: uint64_t = 0;
|
||||
- pwm_pin: uint8_t
|
||||
- pwm_channel: uint8_t
|
||||
- direction_pin_1: uint8_t
|
||||
- direction_pin_2: uint8_t
|
||||
--
|
||||
+ MotorControl()
|
||||
+ init(pwm_pin: uint8_t,
|
||||
pwm_channel: uint8_t,
|
||||
direction_1: uint8_t,
|
||||
direction_2: uint8_t,
|
||||
name: String)
|
||||
+ runMotorControl()
|
||||
+ setTargetPower(power: int8_t)
|
||||
+ stop()
|
||||
+ emergencyStop()
|
||||
+ toString()
|
||||
+ getPower(): int8_t
|
||||
+ getTargetPower(): int8_t
|
||||
+ isTargetPowerReached(): bool
|
||||
+ isAccelerationPositive(): bool
|
||||
+ isAccelerationNegative(): bool
|
||||
- setRealPower(power: int8_t)
|
||||
- increasePower(power: int8_t)</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>80</x><y>380</y><w>220</w><h>330</h></coordinates><panel_attributes><<hardware>>
|
||||
Speedometer
|
||||
--
|
||||
- encoder: ESP32Encoder
|
||||
- debug: DebugMqtt*
|
||||
- name: String
|
||||
- speed: double = 0
|
||||
- last_millis: uint64_t = 0;
|
||||
- bufPos: uint8_t
|
||||
- buf: int16_t[BUF_SIZE]
|
||||
--
|
||||
+ Speedometer()
|
||||
+ init(pinA: uint8_t,
|
||||
pinB: uint8_t,
|
||||
name: String)
|
||||
+ runSpeedometer()
|
||||
+ setTargetPower(power: int8_t)
|
||||
+ getSpeed(): double
|
||||
+ getDirection(): uint8_t
|
||||
- addValToBuf(val: int16_t)
|
||||
- getAverage(): int16_t</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>70</x><y>0</y><w>270</w><h>370</h></coordinates><panel_attributes>MoveControl
|
||||
--
|
||||
- debug: DebugMqtt*
|
||||
- left_motor: MotorControl*
|
||||
- right_motor: MotorControl*
|
||||
- left_speedometer: Speedometer*
|
||||
- right_speedometer: Speedometer*
|
||||
- driving_status: DrivingStatus = stop
|
||||
- x_speed: double = 0
|
||||
- rotation_speed: double = 0
|
||||
- wheelspeed_left_target: double = 0
|
||||
- wheelspeed_right_target: double = 0
|
||||
--
|
||||
+ MoveControl()
|
||||
+ init(left_motor: MotorControl*,
|
||||
right_motor: MotorControl*,
|
||||
left_speedometer: Speedometer*,
|
||||
right_speedometer: Speedometer*)
|
||||
+ runMoveControl()
|
||||
+ setDrivingStatus(status: DrivingStatus)
|
||||
+ setSpeed(speed: double)
|
||||
+ setRotationspeed(speed: double)
|
||||
- calcWheelSpeed()
|
||||
- regulateMotors()</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>580</x><y>0</y><w>220</w><h>330</h></coordinates><panel_attributes><<driveModi>>
|
||||
ManualControl
|
||||
--
|
||||
- encoder: ESP32Encoder
|
||||
- debug: DebugMqtt*
|
||||
- name: String
|
||||
- speed: double = 0
|
||||
- last_millis: uint64_t = 0;
|
||||
- bufPos: uint8_t
|
||||
- buf: int16_t[BUF_SIZE]
|
||||
--
|
||||
+ Speedometer()
|
||||
+ init(pinA: uint8_t,
|
||||
pinB: uint8_t,
|
||||
name: String)
|
||||
+ runSpeedometer()
|
||||
+ setTargetPower(power: int8_t)
|
||||
+ getSpeed(): double
|
||||
+ getDirection(): uint8_t
|
||||
- addValToBuf(val: int16_t)
|
||||
- getAverage(): int16_t</panel_attributes><additional_attributes></additional_attributes></element></diagram>
|
||||
@@ -0,0 +1,390 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<diagram program="umlet" version="14.3.0">
|
||||
<zoom_level>10</zoom_level>
|
||||
<element>
|
||||
<id>UMLSpecialState</id>
|
||||
<coordinates>
|
||||
<x>40</x>
|
||||
<y>20</y>
|
||||
<w>20</w>
|
||||
<h>20</h>
|
||||
</coordinates>
|
||||
<panel_attributes>type=initial</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>40</x>
|
||||
<y>20</y>
|
||||
<w>130</w>
|
||||
<h>30</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<-</panel_attributes>
|
||||
<additional_attributes>110.0;10.0;10.0;10.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLState</id>
|
||||
<coordinates>
|
||||
<x>150</x>
|
||||
<y>10</y>
|
||||
<w>100</w>
|
||||
<h>40</h>
|
||||
</coordinates>
|
||||
<panel_attributes>search next point
|
||||
bg=green</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLSpecialState</id>
|
||||
<coordinates>
|
||||
<x>180</x>
|
||||
<y>90</y>
|
||||
<w>40</w>
|
||||
<h>40</h>
|
||||
</coordinates>
|
||||
<panel_attributes>bg=green
|
||||
type=decision</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>190</x>
|
||||
<y>40</y>
|
||||
<w>30</w>
|
||||
<h>70</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<-</panel_attributes>
|
||||
<additional_attributes>10.0;50.0;10.0;10.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLState</id>
|
||||
<coordinates>
|
||||
<x>150</x>
|
||||
<y>180</y>
|
||||
<w>100</w>
|
||||
<h>40</h>
|
||||
</coordinates>
|
||||
<panel_attributes>detect alignment
|
||||
bg=green</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>190</x>
|
||||
<y>120</y>
|
||||
<w>130</w>
|
||||
<h>80</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<-
|
||||
[distance <= 5m]</panel_attributes>
|
||||
<additional_attributes>10.0;60.0;10.0;10.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLObject</id>
|
||||
<coordinates>
|
||||
<x>20</x>
|
||||
<y>0</y>
|
||||
<w>840</w>
|
||||
<h>590</h>
|
||||
</coordinates>
|
||||
<panel_attributes>Autopilot
|
||||
|
||||
valign=top</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>210</x>
|
||||
<y>90</y>
|
||||
<w>140</w>
|
||||
<h>40</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<-
|
||||
[distance > 5m]</panel_attributes>
|
||||
<additional_attributes>120.0;20.0;10.0;20.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLState</id>
|
||||
<coordinates>
|
||||
<x>330</x>
|
||||
<y>90</y>
|
||||
<w>100</w>
|
||||
<h>40</h>
|
||||
</coordinates>
|
||||
<panel_attributes>Error
|
||||
bg=red</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLState</id>
|
||||
<coordinates>
|
||||
<x>150</x>
|
||||
<y>270</y>
|
||||
<w>100</w>
|
||||
<h>40</h>
|
||||
</coordinates>
|
||||
<panel_attributes>correct alignment
|
||||
bg=green</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLState</id>
|
||||
<coordinates>
|
||||
<x>150</x>
|
||||
<y>360</y>
|
||||
<w>100</w>
|
||||
<h>40</h>
|
||||
</coordinates>
|
||||
<panel_attributes>drive to point
|
||||
bg=green</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>190</x>
|
||||
<y>210</y>
|
||||
<w>30</w>
|
||||
<h>80</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<-</panel_attributes>
|
||||
<additional_attributes>10.0;60.0;10.0;10.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>190</x>
|
||||
<y>300</y>
|
||||
<w>30</w>
|
||||
<h>80</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<-</panel_attributes>
|
||||
<additional_attributes>10.0;60.0;10.0;10.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>90</x>
|
||||
<y>280</y>
|
||||
<w>80</w>
|
||||
<h>120</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<-</panel_attributes>
|
||||
<additional_attributes>60.0;10.0;10.0;10.0;10.0;100.0;60.0;100.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLState</id>
|
||||
<coordinates>
|
||||
<x>440</x>
|
||||
<y>10</y>
|
||||
<w>410</w>
|
||||
<h>300</h>
|
||||
</coordinates>
|
||||
<panel_attributes>detect alignment
|
||||
valign=top</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLSpecialState</id>
|
||||
<coordinates>
|
||||
<x>460</x>
|
||||
<y>60</y>
|
||||
<w>20</w>
|
||||
<h>20</h>
|
||||
</coordinates>
|
||||
<panel_attributes>type=final</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>470</x>
|
||||
<y>60</y>
|
||||
<w>90</w>
|
||||
<h>30</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=-></panel_attributes>
|
||||
<additional_attributes>10.0;10.0;70.0;10.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLState</id>
|
||||
<coordinates>
|
||||
<x>540</x>
|
||||
<y>50</y>
|
||||
<w>110</w>
|
||||
<h>40</h>
|
||||
</coordinates>
|
||||
<panel_attributes>drive 1m forward</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLState</id>
|
||||
<coordinates>
|
||||
<x>540</x>
|
||||
<y>140</y>
|
||||
<w>110</w>
|
||||
<h>40</h>
|
||||
</coordinates>
|
||||
<panel_attributes>drive 2m backward</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLState</id>
|
||||
<coordinates>
|
||||
<x>540</x>
|
||||
<y>230</y>
|
||||
<w>110</w>
|
||||
<h>40</h>
|
||||
</coordinates>
|
||||
<panel_attributes>drive 1m forward</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLState</id>
|
||||
<coordinates>
|
||||
<x>700</x>
|
||||
<y>230</y>
|
||||
<w>120</w>
|
||||
<h>40</h>
|
||||
</coordinates>
|
||||
<panel_attributes>calculate straight line</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>580</x>
|
||||
<y>80</y>
|
||||
<w>30</w>
|
||||
<h>80</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<-</panel_attributes>
|
||||
<additional_attributes>10.0;60.0;10.0;10.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>580</x>
|
||||
<y>170</y>
|
||||
<w>30</w>
|
||||
<h>80</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<-</panel_attributes>
|
||||
<additional_attributes>10.0;60.0;10.0;10.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLSpecialState</id>
|
||||
<coordinates>
|
||||
<x>750</x>
|
||||
<y>150</y>
|
||||
<w>20</w>
|
||||
<h>20</h>
|
||||
</coordinates>
|
||||
<panel_attributes>type=termination</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>750</x>
|
||||
<y>160</y>
|
||||
<w>30</w>
|
||||
<h>90</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<-</panel_attributes>
|
||||
<additional_attributes>10.0;10.0;10.0;70.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLState</id>
|
||||
<coordinates>
|
||||
<x>440</x>
|
||||
<y>320</y>
|
||||
<w>410</w>
|
||||
<h>260</h>
|
||||
</coordinates>
|
||||
<panel_attributes>correct alignment
|
||||
valign=top</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLState</id>
|
||||
<coordinates>
|
||||
<x>540</x>
|
||||
<y>370</y>
|
||||
<w>190</w>
|
||||
<h>40</h>
|
||||
</coordinates>
|
||||
<panel_attributes>calculate relativ target position</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>470</x>
|
||||
<y>380</y>
|
||||
<w>90</w>
|
||||
<h>30</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=-></panel_attributes>
|
||||
<additional_attributes>10.0;10.0;70.0;10.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLSpecialState</id>
|
||||
<coordinates>
|
||||
<x>460</x>
|
||||
<y>380</y>
|
||||
<w>20</w>
|
||||
<h>20</h>
|
||||
</coordinates>
|
||||
<panel_attributes>type=final</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLState</id>
|
||||
<coordinates>
|
||||
<x>580</x>
|
||||
<y>460</y>
|
||||
<w>120</w>
|
||||
<h>40</h>
|
||||
</coordinates>
|
||||
<panel_attributes>rotate x degree</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>630</x>
|
||||
<y>400</y>
|
||||
<w>30</w>
|
||||
<h>80</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<-</panel_attributes>
|
||||
<additional_attributes>10.0;60.0;10.0;10.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>630</x>
|
||||
<y>490</y>
|
||||
<w>30</w>
|
||||
<h>80</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<-</panel_attributes>
|
||||
<additional_attributes>10.0;60.0;10.0;10.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLSpecialState</id>
|
||||
<coordinates>
|
||||
<x>630</x>
|
||||
<y>550</y>
|
||||
<w>20</w>
|
||||
<h>20</h>
|
||||
</coordinates>
|
||||
<panel_attributes>type=termination</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
</diagram>
|
||||
Reference in New Issue
Block a user