Browse Source

2022.12.10

master
vsa 3 years ago
parent
commit
e7e7f2466d
  1. 9
      Display/ConsoleDisplay/ConsoleDisplay.Driver/ConsoleDisplay.Driver.csproj
  2. 22
      Display/ConsoleDisplay/ConsoleDisplay.Driver/IDisplay.cs
  3. 20
      Display/ConsoleDisplay/ConsoleDisplay.Driver/Virtual/VirtualBulb.cs
  4. 9
      Display/ConsoleDisplay/ConsoleDisplay.Driver/Virtual/VirtualDisplay.cs
  5. 8
      Display/ConsoleDisplay/ConsoleDisplay.sln
  6. 4
      Display/ConsoleDisplay/ConsoleDisplay/ConsoleDisplay.csproj
  7. 22
      Display/ConsoleDisplay/ConsoleDisplay/ExternalDomain/IDisplay.cs
  8. 21
      Display/ConsoleDisplay/ConsoleDisplay/ExternalDomain/VirtualBulb.cs
  9. 19
      Display/ConsoleDisplay/ConsoleDisplay/Model/CSmartLetter.cs
  10. 68
      Display/ConsoleDisplay/ConsoleDisplay/Model/SmartAlphabet.cs
  11. 28
      Display/ConsoleDisplay/ConsoleDisplay/Model/SmartDisplay.cs
  12. 3
      Display/ConsoleDisplay/ConsoleDisplay/Program.cs
  13. 10
      Display/ConsoleDisplay/Display.Driver/Display.Driver.csproj
  14. 10
      Display/ConsoleDisplay/Display.Driver/Program.cs

9
Display/ConsoleDisplay/ConsoleDisplay.Driver/ConsoleDisplay.Driver.csproj

@ -0,0 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

22
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);
}
}

20
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; }
}
}

9
Display/ConsoleDisplay/ConsoleDisplay/ExternalDomain/VirtualDisplay.cs → Display/ConsoleDisplay/ConsoleDisplay.Driver/Virtual/VirtualDisplay.cs

@ -1,14 +1,13 @@
 namespace ConsoleDisplay.Driver.Virtual
namespace ConsoleDisplay.ExternalDomain
{ {
internal class VirtualDisplay : IDisplay public class VirtualDisplay : IDisplay
{ {
private List<VirtualBulb> BulbList; private List<VirtualBulb> BulbList;
public VirtualDisplay(int iWidth, int iHeight) public VirtualDisplay(int iWidth, int iHeight)
{ {
this.Width = iWidth; Width = iWidth;
this.Height = iHeight; Height = iHeight;
BulbList = new List<VirtualBulb>(); BulbList = new List<VirtualBulb>();
h_Init(iWidth, iHeight); h_Init(iWidth, iHeight);

8
Display/ConsoleDisplay/ConsoleDisplay.sln

@ -3,7 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17 # Visual Studio Version 17
VisualStudioVersion = 17.3.32929.385 VisualStudioVersion = 17.3.32929.385
MinimumVisualStudioVersion = 10.0.40219.1 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 EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution 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}.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.ActiveCfg = Release|Any CPU
{FB027AE4-23B7-4FF2-A29F-A2773A6D36AB}.Release|Any CPU.Build.0 = 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 EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE

4
Display/ConsoleDisplay/ConsoleDisplay/ConsoleDisplay.csproj

@ -7,4 +7,8 @@
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\ConsoleDisplay.Driver\ConsoleDisplay.Driver.csproj" />
</ItemGroup>
</Project> </Project>

22
Display/ConsoleDisplay/ConsoleDisplay/ExternalDomain/IDisplay.cs

@ -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);
}
}

21
Display/ConsoleDisplay/ConsoleDisplay/ExternalDomain/VirtualBulb.cs

@ -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; }
}
}

19
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<CSmartLetterPoint> Points = new List<CSmartLetterPoint>();
}
}

68
Display/ConsoleDisplay/ConsoleDisplay/Model/SmartAlphabet.cs

@ -0,0 +1,68 @@

#region Using
using System;
#endregion
namespace ConsoleDisplay.Model
{
#region Class CSmartAlphabet
/// <summary>
/// Шрифт
/// </summary>
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
}

28
Display/ConsoleDisplay/ConsoleDisplay/Model/SmartDisplay.cs

@ -1,4 +1,5 @@
using ConsoleDisplay.ExternalDomain; using ConsoleDisplay.Driver;
using ConsoleDisplay.Driver.Virtual;
namespace ConsoleDisplay.Model namespace ConsoleDisplay.Model
{ {
@ -25,12 +26,23 @@ namespace ConsoleDisplay.Model
/// <param name="y">позиция левого верхнего края прямугольника - Y</param> /// <param name="y">позиция левого верхнего края прямугольника - Y</param>
public void Draw(char ch, int size, int x, int y) public void Draw(char ch, int size, int x, int y)
{ {
// 8x16
// TODO: // TODO:
// 1. Шрифт // 1. Шрифт
// 2. загрузить символ // 2. загрузить символ
// 3. отмасштабировать символ // 3. отмасштабировать символ
int iW = 16;
int iH = 8;
string sMap = ch == '1' ? s1 : s2;
CSmartLetter pLetter = new CSmartLetter();
// 4. последовательно очисить лампочки в прямоугольном поле // 4. последовательно очисить лампочки в прямоугольном поле
// 4. последовательно включить лампочки в прямоугольнике // 5. последовательно включить лампочки в прямоугольнике
for (int xx = 0; xx < iW; xx++) {
for (int yy = 0; yy < iH; yy++) {
// TODO: отрисовку буквы
}
}
} }
/// <summary> /// <summary>
@ -53,7 +65,17 @@ namespace ConsoleDisplay.Model
{ {
if (m_pDisplay is VirtualDisplay) { if (m_pDisplay is VirtualDisplay) {
VirtualDisplay dd = m_pDisplay as 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"
: ".");
}
}
} }
} }

3
Display/ConsoleDisplay/ConsoleDisplay/Program.cs

@ -1,4 +1,5 @@
using ConsoleDisplay.ExternalDomain; using ConsoleDisplay.Driver.Virtual;
using ConsoleDisplay.Driver;
using ConsoleDisplay.Model; using ConsoleDisplay.Model;
namespace ConsoleDisplay namespace ConsoleDisplay

10
Display/ConsoleDisplay/Display.Driver/Display.Driver.csproj

@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

10
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!");
}
}
}
Loading…
Cancel
Save