Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit bc88f207 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

add new input fields to GUI (GBX) for shift strategy parameters

parent 39c9fb8d
Branches
Tags
No related merge requests found
...@@ -107,6 +107,16 @@ Partial Class F_GBX ...@@ -107,6 +107,16 @@ Partial Class F_GBX
Me.Label32 = New System.Windows.Forms.Label() Me.Label32 = New System.Windows.Forms.Label()
Me.PnInertiaTI = New System.Windows.Forms.Panel() Me.PnInertiaTI = New System.Windows.Forms.Panel()
Me.PicBox = New System.Windows.Forms.PictureBox() Me.PicBox = New System.Windows.Forms.PictureBox()
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
Me.Label19 = New System.Windows.Forms.Label()
Me.Label20 = New System.Windows.Forms.Label()
Me.Label21 = New System.Windows.Forms.Label()
Me.Label22 = New System.Windows.Forms.Label()
Me.Label23 = New System.Windows.Forms.Label()
Me.Label24 = New System.Windows.Forms.Label()
Me.tbDownshiftAfterUpshift = New System.Windows.Forms.TextBox()
Me.tbUpshiftAfterDownshift = New System.Windows.Forms.TextBox()
Me.tbUpshiftMinAcceleration = New System.Windows.Forms.TextBox()
Me.ToolStrip1.SuspendLayout() Me.ToolStrip1.SuspendLayout()
Me.StatusStrip1.SuspendLayout() Me.StatusStrip1.SuspendLayout()
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
...@@ -119,6 +129,7 @@ Partial Class F_GBX ...@@ -119,6 +129,7 @@ Partial Class F_GBX
Me.GroupBox4.SuspendLayout() Me.GroupBox4.SuspendLayout()
Me.PnInertiaTI.SuspendLayout() Me.PnInertiaTI.SuspendLayout()
CType(Me.PicBox, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.PicBox, System.ComponentModel.ISupportInitialize).BeginInit()
Me.GroupBox1.SuspendLayout()
Me.SuspendLayout() Me.SuspendLayout()
' '
'ToolStrip1 'ToolStrip1
...@@ -203,7 +214,7 @@ Partial Class F_GBX ...@@ -203,7 +214,7 @@ Partial Class F_GBX
'StatusStrip1 'StatusStrip1
' '
Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.LbStatus}) Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.LbStatus})
Me.StatusStrip1.Location = New System.Drawing.Point(0, 595) Me.StatusStrip1.Location = New System.Drawing.Point(0, 684)
Me.StatusStrip1.Name = "StatusStrip1" Me.StatusStrip1.Name = "StatusStrip1"
Me.StatusStrip1.Size = New System.Drawing.Size(877, 22) Me.StatusStrip1.Size = New System.Drawing.Size(877, 22)
Me.StatusStrip1.SizingGrip = False Me.StatusStrip1.SizingGrip = False
...@@ -220,7 +231,7 @@ Partial Class F_GBX ...@@ -220,7 +231,7 @@ Partial Class F_GBX
' '
Me.ButCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.ButCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.ButCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel Me.ButCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.ButCancel.Location = New System.Drawing.Point(790, 569) Me.ButCancel.Location = New System.Drawing.Point(790, 658)
Me.ButCancel.Name = "ButCancel" Me.ButCancel.Name = "ButCancel"
Me.ButCancel.Size = New System.Drawing.Size(75, 23) Me.ButCancel.Size = New System.Drawing.Size(75, 23)
Me.ButCancel.TabIndex = 7 Me.ButCancel.TabIndex = 7
...@@ -230,7 +241,7 @@ Partial Class F_GBX ...@@ -230,7 +241,7 @@ Partial Class F_GBX
'ButOK 'ButOK
' '
Me.ButOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.ButOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.ButOK.Location = New System.Drawing.Point(709, 569) Me.ButOK.Location = New System.Drawing.Point(709, 658)
Me.ButOK.Name = "ButOK" Me.ButOK.Name = "ButOK"
Me.ButOK.Size = New System.Drawing.Size(75, 23) Me.ButOK.Size = New System.Drawing.Size(75, 23)
Me.ButOK.TabIndex = 6 Me.ButOK.TabIndex = 6
...@@ -369,6 +380,7 @@ Partial Class F_GBX ...@@ -369,6 +380,7 @@ Partial Class F_GBX
' '
'GrGearShift 'GrGearShift
' '
Me.GrGearShift.Controls.Add(Me.GroupBox1)
Me.GrGearShift.Controls.Add(Me.PnTorqRes) Me.GrGearShift.Controls.Add(Me.PnTorqRes)
Me.GrGearShift.Controls.Add(Me.ChShiftInside) Me.GrGearShift.Controls.Add(Me.ChShiftInside)
Me.GrGearShift.Controls.Add(Me.TbShiftTime) Me.GrGearShift.Controls.Add(Me.TbShiftTime)
...@@ -378,7 +390,7 @@ Partial Class F_GBX ...@@ -378,7 +390,7 @@ Partial Class F_GBX
Me.GrGearShift.Controls.Add(Me.GroupBox2) Me.GrGearShift.Controls.Add(Me.GroupBox2)
Me.GrGearShift.Location = New System.Drawing.Point(12, 377) Me.GrGearShift.Location = New System.Drawing.Point(12, 377)
Me.GrGearShift.Name = "GrGearShift" Me.GrGearShift.Name = "GrGearShift"
Me.GrGearShift.Size = New System.Drawing.Size(441, 182) Me.GrGearShift.Size = New System.Drawing.Size(441, 291)
Me.GrGearShift.TabIndex = 3 Me.GrGearShift.TabIndex = 3
Me.GrGearShift.TabStop = False Me.GrGearShift.TabStop = False
Me.GrGearShift.Text = "Gear shift parameters" Me.GrGearShift.Text = "Gear shift parameters"
...@@ -479,7 +491,7 @@ Partial Class F_GBX ...@@ -479,7 +491,7 @@ Partial Class F_GBX
Me.GroupBox2.Controls.Add(Me.Label8) Me.GroupBox2.Controls.Add(Me.Label8)
Me.GroupBox2.Controls.Add(Me.Label5) Me.GroupBox2.Controls.Add(Me.Label5)
Me.GroupBox2.Controls.Add(Me.Label7) Me.GroupBox2.Controls.Add(Me.Label7)
Me.GroupBox2.Location = New System.Drawing.Point(6, 77) Me.GroupBox2.Location = New System.Drawing.Point(6, 186)
Me.GroupBox2.Name = "GroupBox2" Me.GroupBox2.Name = "GroupBox2"
Me.GroupBox2.Size = New System.Drawing.Size(429, 99) Me.GroupBox2.Size = New System.Drawing.Size(429, 99)
Me.GroupBox2.TabIndex = 4 Me.GroupBox2.TabIndex = 4
...@@ -783,13 +795,107 @@ Partial Class F_GBX ...@@ -783,13 +795,107 @@ Partial Class F_GBX
Me.PicBox.TabIndex = 48 Me.PicBox.TabIndex = 48
Me.PicBox.TabStop = False Me.PicBox.TabStop = False
' '
'GroupBox1
'
Me.GroupBox1.BackColor = System.Drawing.Color.AliceBlue
Me.GroupBox1.Controls.Add(Me.tbUpshiftMinAcceleration)
Me.GroupBox1.Controls.Add(Me.tbUpshiftAfterDownshift)
Me.GroupBox1.Controls.Add(Me.tbDownshiftAfterUpshift)
Me.GroupBox1.Controls.Add(Me.Label24)
Me.GroupBox1.Controls.Add(Me.Label23)
Me.GroupBox1.Controls.Add(Me.Label22)
Me.GroupBox1.Controls.Add(Me.Label21)
Me.GroupBox1.Controls.Add(Me.Label20)
Me.GroupBox1.Controls.Add(Me.Label19)
Me.GroupBox1.Location = New System.Drawing.Point(6, 82)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Size = New System.Drawing.Size(429, 100)
Me.GroupBox1.TabIndex = 10
Me.GroupBox1.TabStop = False
Me.GroupBox1.Text = "Shift Strategy Parameters"
'
'Label19
'
Me.Label19.AutoSize = True
Me.Label19.Location = New System.Drawing.Point(20, 25)
Me.Label19.Name = "Label19"
Me.Label19.Size = New System.Drawing.Size(137, 13)
Me.Label19.TabIndex = 0
Me.Label19.Text = "Downshift afer upshift delay"
'
'Label20
'
Me.Label20.AutoSize = True
Me.Label20.Location = New System.Drawing.Point(20, 48)
Me.Label20.Name = "Label20"
Me.Label20.Size = New System.Drawing.Size(137, 13)
Me.Label20.TabIndex = 1
Me.Label20.Text = "Upshift afer downshift delay"
'
'Label21
'
Me.Label21.AutoSize = True
Me.Label21.Location = New System.Drawing.Point(20, 74)
Me.Label21.Name = "Label21"
Me.Label21.Size = New System.Drawing.Size(146, 13)
Me.Label21.TabIndex = 2
Me.Label21.Text = "Min. acceleration after upshift"
'
'Label22
'
Me.Label22.AutoSize = True
Me.Label22.Location = New System.Drawing.Point(275, 25)
Me.Label22.Name = "Label22"
Me.Label22.Size = New System.Drawing.Size(18, 13)
Me.Label22.TabIndex = 3
Me.Label22.Text = "[s]"
'
'Label23
'
Me.Label23.AutoSize = True
Me.Label23.Location = New System.Drawing.Point(275, 48)
Me.Label23.Name = "Label23"
Me.Label23.Size = New System.Drawing.Size(18, 13)
Me.Label23.TabIndex = 4
Me.Label23.Text = "[s]"
'
'Label24
'
Me.Label24.AutoSize = True
Me.Label24.Location = New System.Drawing.Point(275, 74)
Me.Label24.Name = "Label24"
Me.Label24.Size = New System.Drawing.Size(34, 13)
Me.Label24.TabIndex = 5
Me.Label24.Text = "[m/s²]"
'
'tbDownshiftAfterUpshift
'
Me.tbDownshiftAfterUpshift.Location = New System.Drawing.Point(209, 20)
Me.tbDownshiftAfterUpshift.Name = "tbDownshiftAfterUpshift"
Me.tbDownshiftAfterUpshift.Size = New System.Drawing.Size(57, 20)
Me.tbDownshiftAfterUpshift.TabIndex = 6
'
'tbUpshiftAfterDownshift
'
Me.tbUpshiftAfterDownshift.Location = New System.Drawing.Point(209, 45)
Me.tbUpshiftAfterDownshift.Name = "tbUpshiftAfterDownshift"
Me.tbUpshiftAfterDownshift.Size = New System.Drawing.Size(57, 20)
Me.tbUpshiftAfterDownshift.TabIndex = 7
'
'tbUpshiftMinAcceleration
'
Me.tbUpshiftMinAcceleration.Location = New System.Drawing.Point(209, 71)
Me.tbUpshiftMinAcceleration.Name = "tbUpshiftMinAcceleration"
Me.tbUpshiftMinAcceleration.Size = New System.Drawing.Size(57, 20)
Me.tbUpshiftMinAcceleration.TabIndex = 8
'
'F_GBX 'F_GBX
' '
Me.AcceptButton = Me.ButOK Me.AcceptButton = Me.ButOK
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.CancelButton = Me.ButCancel Me.CancelButton = Me.ButCancel
Me.ClientSize = New System.Drawing.Size(877, 617) Me.ClientSize = New System.Drawing.Size(877, 706)
Me.Controls.Add(Me.PicBox) Me.Controls.Add(Me.PicBox)
Me.Controls.Add(Me.PnInertiaTI) Me.Controls.Add(Me.PnInertiaTI)
Me.Controls.Add(Me.GroupBox4) Me.Controls.Add(Me.GroupBox4)
...@@ -831,6 +937,8 @@ Partial Class F_GBX ...@@ -831,6 +937,8 @@ Partial Class F_GBX
Me.PnInertiaTI.ResumeLayout(False) Me.PnInertiaTI.ResumeLayout(False)
Me.PnInertiaTI.PerformLayout() Me.PnInertiaTI.PerformLayout()
CType(Me.PicBox, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.PicBox, System.ComponentModel.ISupportInitialize).EndInit()
Me.GroupBox1.ResumeLayout(False)
Me.GroupBox1.PerformLayout()
Me.ResumeLayout(False) Me.ResumeLayout(False)
Me.PerformLayout() Me.PerformLayout()
...@@ -908,4 +1016,14 @@ Partial Class F_GBX ...@@ -908,4 +1016,14 @@ Partial Class F_GBX
Friend WithEvents Label1 As System.Windows.Forms.Label Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Label18 As System.Windows.Forms.Label Friend WithEvents Label18 As System.Windows.Forms.Label
Friend WithEvents ColumnHeader6 As System.Windows.Forms.ColumnHeader Friend WithEvents ColumnHeader6 As System.Windows.Forms.ColumnHeader
Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox
Friend WithEvents tbUpshiftMinAcceleration As System.Windows.Forms.TextBox
Friend WithEvents tbUpshiftAfterDownshift As System.Windows.Forms.TextBox
Friend WithEvents tbDownshiftAfterUpshift As System.Windows.Forms.TextBox
Friend WithEvents Label24 As System.Windows.Forms.Label
Friend WithEvents Label23 As System.Windows.Forms.Label
Friend WithEvents Label22 As System.Windows.Forms.Label
Friend WithEvents Label21 As System.Windows.Forms.Label
Friend WithEvents Label20 As System.Windows.Forms.Label
Friend WithEvents Label19 As System.Windows.Forms.Label
End Class End Class
...@@ -87,6 +87,10 @@ Public Class F_GBX ...@@ -87,6 +87,10 @@ Public Class F_GBX
Me.TbStartSpeed.Text = cDeclaration.StartSpeed Me.TbStartSpeed.Text = cDeclaration.StartSpeed
Me.TbStartAcc.Text = cDeclaration.StartAcc Me.TbStartAcc.Text = cDeclaration.StartAcc
tbUpshiftMinAcceleration.Text = cDeclaration.UpshiftMinAcceleration
tbDownshiftAfterUpshift.Text = cDeclaration.DownshiftAfterUpshiftDelay
tbUpshiftAfterDownshift.Text = cDeclaration.UpshiftAfterDownshiftDelay
For Each lv0 In Me.LvGears.Items For Each lv0 In Me.LvGears.Items
lv0.SubItems(4).Text = "-" lv0.SubItems(4).Text = "-"
Next Next
...@@ -269,6 +273,10 @@ Public Class F_GBX ...@@ -269,6 +273,10 @@ Public Class F_GBX
Me.TbTCrefrpm.Text = GBX0.TCrefrpm Me.TbTCrefrpm.Text = GBX0.TCrefrpm
Me.TbTCinertia.Text = GBX0.TCinertia Me.TbTCinertia.Text = GBX0.TCinertia
tbUpshiftMinAcceleration.Text = GBX0.UpshiftMinAcceleration
tbDownshiftAfterUpshift.Text = GBX0.DownshiftAfterUpshift
tbUpshiftAfterDownshift.Text = GBX0.UpshiftAfterDownshift
If CType(GBX0.gs_Type, Integer) <= Me.CbGStype.Items.Count - 1 Then If CType(GBX0.gs_Type, Integer) <= Me.CbGStype.Items.Count - 1 Then
Me.CbGStype.SelectedIndex = CType(GBX0.gs_Type, Integer) Me.CbGStype.SelectedIndex = CType(GBX0.gs_Type, Integer)
Else Else
...@@ -340,6 +348,10 @@ Public Class F_GBX ...@@ -340,6 +348,10 @@ Public Class F_GBX
GBX0.TCrefrpm = fTextboxToNumString(Me.TbTCrefrpm.Text) GBX0.TCrefrpm = fTextboxToNumString(Me.TbTCrefrpm.Text)
GBX0.TCinertia = fTextboxToNumString(Me.TbTCinertia.Text) GBX0.TCinertia = fTextboxToNumString(Me.TbTCinertia.Text)
GBX0.DownshiftAfterUpshift = fTextboxToNumString(tbDownshiftAfterUpshift.Text)
GBX0.UpshiftAfterDownshift = fTextboxToNumString(tbUpshiftAfterDownshift.Text)
GBX0.UpshiftMinAcceleration = fTextboxToNumString(tbUpshiftMinAcceleration.Text)
If Not GBX0.SaveFile Then If Not GBX0.SaveFile Then
MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical) MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical)
Return False Return False
...@@ -980,4 +992,15 @@ Public Class F_GBX ...@@ -980,4 +992,15 @@ Public Class F_GBX
#End Region #End Region
Private Sub GroupBox1_Enter(sender As Object, e As EventArgs) Handles GroupBox1.Enter
End Sub
Public Sub New()
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
End Class End Class
...@@ -74,6 +74,9 @@ Public Class cGBX ...@@ -74,6 +74,9 @@ Public Class cGBX
Private MyFileList As List(Of String) Private MyFileList As List(Of String)
Public SavedInDeclMode As Boolean Public SavedInDeclMode As Boolean
Public UpshiftMinAcceleration As Single
Public DownshiftAfterUpshift As String
Public UpshiftAfterDownshift As Single
Public Function CreateFileList() As Boolean Public Function CreateFileList() As Boolean
...@@ -207,6 +210,10 @@ Public Class cGBX ...@@ -207,6 +210,10 @@ Public Class cGBX
dic0.Add("Inertia", TCinertia) dic0.Add("Inertia", TCinertia)
dic.Add("TorqueConverter", dic0) dic.Add("TorqueConverter", dic0)
dic.Add("DownshiftAferUpshiftDelay", DownshiftAfterUpshift)
dic.Add("UpshiftAfterDownshiftDelay", UpshiftAfterDownshift)
dic.Add("UpshiftMinAcceleration", UpshiftMinAcceleration)
JSON.Content.Add("Body", dic) JSON.Content.Add("Body", dic)
Return JSON.WriteFile(sFilePath) Return JSON.WriteFile(sFilePath)
...@@ -285,6 +292,24 @@ Public Class cGBX ...@@ -285,6 +292,24 @@ Public Class cGBX
gs_Type = GearboxConv(JSON.Content("Body")("GearboxType").ToString) gs_Type = GearboxConv(JSON.Content("Body")("GearboxType").ToString)
If JSON.Content("Body")("UpshiftMinAcceleration") Is Nothing Then
UpshiftMinAcceleration = 0.1
Else
UpshiftMinAcceleration = JSON.Content("Body")("UpshiftMinAcceleration")
End If
If JSON.Content("Body")("DownshiftAferUpshiftDelay") Is Nothing Then
DownshiftAfterUpshift = 10
Else
DownshiftAfterUpshift = JSON.Content("Body")("DownshiftAferUpshiftDelay")
End If
If JSON.Content("Body")("UpshiftAfterDownshiftDelay") Is Nothing Then
UpshiftAfterDownshift = 10
Else
UpshiftAfterDownshift = JSON.Content("Body")("UpshiftAfterDownshiftDelay")
End If
If JSON.Content("Body")("TorqueConverter") Is Nothing Then If JSON.Content("Body")("TorqueConverter") Is Nothing Then
TCon = False TCon = False
Else Else
...@@ -323,6 +348,10 @@ Public Class cGBX ...@@ -323,6 +348,10 @@ Public Class cGBX
gs_StartSpeed = cDeclaration.StartSpeed gs_StartSpeed = cDeclaration.StartSpeed
gs_StartAcc = cDeclaration.StartAcc gs_StartAcc = cDeclaration.StartAcc
UpshiftAfterDownshift = 10
DownshiftAfterUpshift = 10
UpshiftMinAcceleration = 0.1
TCon = (gs_Type = tGearbox.Automatic) TCon = (gs_Type = tGearbox.Automatic)
For i = 1 To GearCount() For i = 1 To GearCount()
...@@ -502,7 +531,6 @@ Public Class cGBX ...@@ -502,7 +531,6 @@ Public Class cGBX
Loop Loop
Do Do
iOptPassed = -1 iOptPassed = -1
...@@ -559,7 +587,6 @@ Public Class cGBX ...@@ -559,7 +587,6 @@ Public Class cGBX
mAAUX_Global.PreExistingAuxPower = MODdata.Vh.Padd(t) mAAUX_Global.PreExistingAuxPower = MODdata.Vh.Padd(t)
'MinMax 'MinMax
Paux = MODdata.Px.fPaux(t, Math.Max(nUin, ENG.Nidle)) Paux = MODdata.Px.fPaux(t, Math.Max(nUin, ENG.Nidle))
If LastnU Is Nothing Then If LastnU Is Nothing Then
...@@ -597,7 +624,9 @@ Public Class cGBX ...@@ -597,7 +624,9 @@ Public Class cGBX
iMin = iDim iMin = iDim
End If End If
If McalcRatio(iDim) > McalcRatMax Then McalcRatMax = McalcRatio(iDim) If McalcRatio(iDim) > McalcRatMax Then McalcRatMax = McalcRatio(iDim)
If (McalcRatio(iDim) > 1 AndAlso McalcRatio(iDim - 1) < 1) OrElse (McalcRatio(iDim) < 1 AndAlso McalcRatio(iDim - 1) > 1) Then If _
(McalcRatio(iDim) > 1 AndAlso McalcRatio(iDim - 1) < 1) OrElse
(McalcRatio(iDim) < 1 AndAlso McalcRatio(iDim - 1) > 1) Then
iOptPassed = iDim iOptPassed = iDim
End If End If
Else Else
......
...@@ -76,6 +76,12 @@ Public Class cDeclaration ...@@ -76,6 +76,12 @@ Public Class cDeclaration
Private VCDVvehClassParam As Dictionary(Of String, List(Of Single)) Private VCDVvehClassParam As Dictionary(Of String, List(Of Single))
Public Const UpshiftAfterDownshiftDelay As Single = 10
Public Const DownshiftAfterUpshiftDelay As Single = 10
Public Const UpshiftMinAcceleration As Single = 0.1
Public Function VCDVparamPerCat(ByVal VehCat As tVehCat) As List(Of Single) Public Function VCDVparamPerCat(ByVal VehCat As tVehCat) As List(Of Single)
Select Case VehCat Select Case VehCat
Case tVehCat.Citybus, tVehCat.Coach, tVehCat.InterurbanBus Case tVehCat.Citybus, tVehCat.Coach, tVehCat.InterurbanBus
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment