diff --git a/Display/ConsoleDisplay/ConsoleDisplay.Driver/ConsoleDisplay.Driver.csproj b/Display/ConsoleDisplay/ConsoleDisplay.Driver/ConsoleDisplay.Driver.csproj
new file mode 100644
index 0000000..bafd05b
--- /dev/null
+++ b/Display/ConsoleDisplay/ConsoleDisplay.Driver/ConsoleDisplay.Driver.csproj
@@ -0,0 +1,9 @@
+
+
+
+ net6.0
+ enable
+ enable
+
+
+
diff --git a/Display/ConsoleDisplay/ConsoleDisplay.Driver/IDisplay.cs b/Display/ConsoleDisplay/ConsoleDisplay.Driver/IDisplay.cs
new file mode 100644
index 0000000..b7e12e3
--- /dev/null
+++ b/Display/ConsoleDisplay/ConsoleDisplay.Driver/IDisplay.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ConsoleDisplay.Driver
+{
+
+ public interface IDisplay
+ {
+ int Width { get; }
+ int Height { get; }
+
+ bool IsEnabled { get; }
+ void Reset();
+ void Set(int iX, int iY, bool bState);
+
+ bool Get(int iX, int iY);
+
+ }
+}
diff --git a/Display/ConsoleDisplay/ConsoleDisplay.Driver/Virtual/VirtualBulb.cs b/Display/ConsoleDisplay/ConsoleDisplay.Driver/Virtual/VirtualBulb.cs
new file mode 100644
index 0000000..f4e3c78
--- /dev/null
+++ b/Display/ConsoleDisplay/ConsoleDisplay.Driver/Virtual/VirtualBulb.cs
@@ -0,0 +1,20 @@
+namespace ConsoleDisplay.Driver.Virtual
+{
+ internal class VirtualBulb
+ {
+ public VirtualBulb(
+ int x,
+ int y,
+ bool isEnabled = false)
+ {
+ X = x;
+ Y = y;
+ IsEnabled = isEnabled;
+ }
+
+ public int X { get; set; }
+ public int Y { get; set; }
+ public bool IsEnabled { get; set; }
+
+ }
+}
\ No newline at end of file
diff --git a/Display/ConsoleDisplay/ConsoleDisplay/ExternalDomain/VirtualDisplay.cs b/Display/ConsoleDisplay/ConsoleDisplay.Driver/Virtual/VirtualDisplay.cs
similarity index 85%
rename from Display/ConsoleDisplay/ConsoleDisplay/ExternalDomain/VirtualDisplay.cs
rename to Display/ConsoleDisplay/ConsoleDisplay.Driver/Virtual/VirtualDisplay.cs
index c06f0a1..ab8a2cb 100644
--- a/Display/ConsoleDisplay/ConsoleDisplay/ExternalDomain/VirtualDisplay.cs
+++ b/Display/ConsoleDisplay/ConsoleDisplay.Driver/Virtual/VirtualDisplay.cs
@@ -1,14 +1,13 @@
-
-namespace ConsoleDisplay.ExternalDomain
+namespace ConsoleDisplay.Driver.Virtual
{
- internal class VirtualDisplay : IDisplay
+ public class VirtualDisplay : IDisplay
{
private List BulbList;
public VirtualDisplay(int iWidth, int iHeight)
{
- this.Width = iWidth;
- this.Height = iHeight;
+ Width = iWidth;
+ Height = iHeight;
BulbList = new List();
h_Init(iWidth, iHeight);
diff --git a/Display/ConsoleDisplay/ConsoleDisplay.sln b/Display/ConsoleDisplay/ConsoleDisplay.sln
index ca0b5f7..321e5b8 100644
--- a/Display/ConsoleDisplay/ConsoleDisplay.sln
+++ b/Display/ConsoleDisplay/ConsoleDisplay.sln
@@ -3,7 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.3.32929.385
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleDisplay", "ConsoleDisplay\ConsoleDisplay.csproj", "{FB027AE4-23B7-4FF2-A29F-A2773A6D36AB}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConsoleDisplay", "ConsoleDisplay\ConsoleDisplay.csproj", "{FB027AE4-23B7-4FF2-A29F-A2773A6D36AB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleDisplay.Driver", "ConsoleDisplay.Driver\ConsoleDisplay.Driver.csproj", "{798ECA8C-D47D-4B53-8EDF-071CAD651053}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -15,6 +17,10 @@ Global
{FB027AE4-23B7-4FF2-A29F-A2773A6D36AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FB027AE4-23B7-4FF2-A29F-A2773A6D36AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FB027AE4-23B7-4FF2-A29F-A2773A6D36AB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {798ECA8C-D47D-4B53-8EDF-071CAD651053}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {798ECA8C-D47D-4B53-8EDF-071CAD651053}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {798ECA8C-D47D-4B53-8EDF-071CAD651053}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {798ECA8C-D47D-4B53-8EDF-071CAD651053}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Display/ConsoleDisplay/ConsoleDisplay/ConsoleDisplay.csproj b/Display/ConsoleDisplay/ConsoleDisplay/ConsoleDisplay.csproj
index 40c60dd..30e9cf6 100644
--- a/Display/ConsoleDisplay/ConsoleDisplay/ConsoleDisplay.csproj
+++ b/Display/ConsoleDisplay/ConsoleDisplay/ConsoleDisplay.csproj
@@ -7,4 +7,8 @@
enable
+
+
+
+
diff --git a/Display/ConsoleDisplay/ConsoleDisplay/ExternalDomain/IDisplay.cs b/Display/ConsoleDisplay/ConsoleDisplay/ExternalDomain/IDisplay.cs
deleted file mode 100644
index df2fac7..0000000
--- a/Display/ConsoleDisplay/ConsoleDisplay/ExternalDomain/IDisplay.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace ConsoleDisplay.ExternalDomain
-{
-
- internal interface IDisplay
- {
- int Width { get; }
- int Height { get; }
-
- bool IsEnabled { get; }
- void Reset();
- void Set(int iX, int iY, bool bState);
-
- bool Get(int iX, int iY);
-
- }
-}
diff --git a/Display/ConsoleDisplay/ConsoleDisplay/ExternalDomain/VirtualBulb.cs b/Display/ConsoleDisplay/ConsoleDisplay/ExternalDomain/VirtualBulb.cs
deleted file mode 100644
index d177295..0000000
--- a/Display/ConsoleDisplay/ConsoleDisplay/ExternalDomain/VirtualBulb.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-
-namespace ConsoleDisplay.ExternalDomain
-{
- internal class VirtualBulb
- {
- public VirtualBulb(
- int x,
- int y,
- bool isEnabled = false)
- {
- X = x;
- Y = y;
- IsEnabled = isEnabled;
- }
-
- public int X { get; set; }
- public int Y { get; set; }
- public bool IsEnabled { get; set; }
-
- }
-}
\ No newline at end of file
diff --git a/Display/ConsoleDisplay/ConsoleDisplay/Model/CSmartLetter.cs b/Display/ConsoleDisplay/ConsoleDisplay/Model/CSmartLetter.cs
new file mode 100644
index 0000000..d9454dd
--- /dev/null
+++ b/Display/ConsoleDisplay/ConsoleDisplay/Model/CSmartLetter.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ConsoleDisplay.Model
+{
+ internal class CSmartLetterPoint
+ {
+ internal int X;
+ internal int Y;
+ }
+
+ internal class CSmartLetter
+ {
+ private List Points = new List();
+ }
+}
diff --git a/Display/ConsoleDisplay/ConsoleDisplay/Model/SmartAlphabet.cs b/Display/ConsoleDisplay/ConsoleDisplay/Model/SmartAlphabet.cs
new file mode 100644
index 0000000..34a4774
--- /dev/null
+++ b/Display/ConsoleDisplay/ConsoleDisplay/Model/SmartAlphabet.cs
@@ -0,0 +1,68 @@
+
+#region Using
+
+using System;
+
+#endregion
+
+namespace ConsoleDisplay.Model
+{
+ #region Class CSmartAlphabet
+
+
+
+ ///
+ /// Шрифт
+ ///
+ internal class CSmartAlphabet
+ {
+ // TODO: загрузка алфавита
+ string s1 = @"
+.......0.......
+.......0.......
+......00.......
+.....0.0.......
+.......0.......
+.......0.......
+.......0.......
+.......0.......
+";
+
+ string s2 = @"
+....00000......
+...0....0......
+..........0....
+.........0.....
+.......00......
+.....000.......
+....0..........
+...0000000.....
+";
+
+
+ #region Variables
+
+ #endregion
+
+ #region constructor
+
+ #endregion
+
+ #region Properties
+
+ #endregion
+
+ #region Public methods
+
+ #endregion
+
+ #region Help methods
+
+ #endregion
+
+
+
+ }
+
+ #endregion
+}
\ No newline at end of file
diff --git a/Display/ConsoleDisplay/ConsoleDisplay/Model/SmartDisplay.cs b/Display/ConsoleDisplay/ConsoleDisplay/Model/SmartDisplay.cs
index f5b02ba..48ff22a 100644
--- a/Display/ConsoleDisplay/ConsoleDisplay/Model/SmartDisplay.cs
+++ b/Display/ConsoleDisplay/ConsoleDisplay/Model/SmartDisplay.cs
@@ -1,4 +1,5 @@
-using ConsoleDisplay.ExternalDomain;
+using ConsoleDisplay.Driver;
+using ConsoleDisplay.Driver.Virtual;
namespace ConsoleDisplay.Model
{
@@ -25,12 +26,23 @@ namespace ConsoleDisplay.Model
/// позиция левого верхнего края прямугольника - Y
public void Draw(char ch, int size, int x, int y)
{
+ // 8x16
// TODO:
// 1. Шрифт
// 2. загрузить символ
// 3. отмасштабировать символ
+ int iW = 16;
+ int iH = 8;
+ string sMap = ch == '1' ? s1 : s2;
+ CSmartLetter pLetter = new CSmartLetter();
// 4. последовательно очисить лампочки в прямоугольном поле
- // 4. последовательно включить лампочки в прямоугольнике
+ // 5. последовательно включить лампочки в прямоугольнике
+ for (int xx = 0; xx < iW; xx++) {
+ for (int yy = 0; yy < iH; yy++) {
+ // TODO: отрисовку буквы
+ }
+ }
+
}
///
@@ -53,7 +65,17 @@ namespace ConsoleDisplay.Model
{
if (m_pDisplay is VirtualDisplay) {
VirtualDisplay dd = m_pDisplay as VirtualDisplay;
- // TODO: отрисовка в консоли
+ int iW = dd.Width > 30 ? 30 : dd.Width;
+ int iH = dd.Height > 30 ? 30 : dd.Height;
+ for (int xx = 0; xx < iW; xx++) {
+ for (int yy = 0; yy < iH; yy++) {
+ Console.SetCursorPosition(xx, yy);
+ Console.Write(
+ dd.Get(xx, yy)
+ ? "O"
+ : ".");
+ }
+ }
}
}
diff --git a/Display/ConsoleDisplay/ConsoleDisplay/Program.cs b/Display/ConsoleDisplay/ConsoleDisplay/Program.cs
index 1e49236..525c3f2 100644
--- a/Display/ConsoleDisplay/ConsoleDisplay/Program.cs
+++ b/Display/ConsoleDisplay/ConsoleDisplay/Program.cs
@@ -1,4 +1,5 @@
-using ConsoleDisplay.ExternalDomain;
+using ConsoleDisplay.Driver.Virtual;
+using ConsoleDisplay.Driver;
using ConsoleDisplay.Model;
namespace ConsoleDisplay
diff --git a/Display/ConsoleDisplay/Display.Driver/Display.Driver.csproj b/Display/ConsoleDisplay/Display.Driver/Display.Driver.csproj
new file mode 100644
index 0000000..40c60dd
--- /dev/null
+++ b/Display/ConsoleDisplay/Display.Driver/Display.Driver.csproj
@@ -0,0 +1,10 @@
+
+
+
+ Exe
+ net6.0
+ enable
+ enable
+
+
+
diff --git a/Display/ConsoleDisplay/Display.Driver/Program.cs b/Display/ConsoleDisplay/Display.Driver/Program.cs
new file mode 100644
index 0000000..0cd4eb8
--- /dev/null
+++ b/Display/ConsoleDisplay/Display.Driver/Program.cs
@@ -0,0 +1,10 @@
+namespace Display.Driver
+{
+ internal class Program
+ {
+ static void Main(string[] args)
+ {
+ Console.WriteLine("Hello, World!");
+ }
+ }
+}
\ No newline at end of file