Start on doc, color devices
This commit is contained in:
parent
077560227a
commit
9b50875c2c
@ -7,7 +7,7 @@ using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Xml;
|
||||
|
||||
using System.Drawing.Imaging;
|
||||
|
||||
namespace EduNetworkBuilder
|
||||
{
|
||||
@ -32,6 +32,7 @@ namespace EduNetworkBuilder
|
||||
public bool MustUseDHCP = false;
|
||||
public bool CanAddNics = false;
|
||||
public Color BackgroundColor = Color.Empty;
|
||||
protected Color MorphColor = Color.Empty;
|
||||
|
||||
public NetworkDevice(NetworkComponentType what, string tHostname, Point tLocation, NicType firstNic = NicType.eth)
|
||||
{
|
||||
@ -371,6 +372,9 @@ namespace EduNetworkBuilder
|
||||
IPAddress dhcpip = new IPAddress(Individual);
|
||||
DHCPRanges.Add(dhcpip);
|
||||
break;
|
||||
case "morphcolor":
|
||||
MorphColor = Color.FromName(Individual.InnerText);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -387,6 +391,8 @@ namespace EduNetworkBuilder
|
||||
writer.WriteElementString("mytype", myType.ToString());
|
||||
writer.WriteElementString("isdns", isDNSServer.ToString());
|
||||
writer.WriteElementString("isdhcp", isDHCPServer.ToString());
|
||||
if(MorphColor != Color.Empty)
|
||||
writer.WriteElementString("morphcolor", MorphColor.Name);
|
||||
DefaultGW.Save(writer, "gateway");
|
||||
foreach (NetworkCard nic in NICs)
|
||||
{
|
||||
@ -597,6 +603,43 @@ namespace EduNetworkBuilder
|
||||
}
|
||||
}
|
||||
|
||||
//This function heavily borrowed from: http://stackoverflow.com/questions/1563038/fast-work-with-bitmaps-in-c-sharp
|
||||
public Image ColoredImage(Image BaseImage)
|
||||
{
|
||||
Bitmap b = new Bitmap(BaseImage);
|
||||
|
||||
BitmapData bData = b.LockBits(new Rectangle(0, 0, BaseImage.Width, BaseImage.Height), ImageLockMode.ReadWrite, b.PixelFormat);
|
||||
|
||||
/* GetBitsPerPixel just does a switch on the PixelFormat and returns the number */
|
||||
int bitsPerPixel = Image.GetPixelFormatSize(bData.PixelFormat);
|
||||
|
||||
/*the size of the image in bytes */
|
||||
int size = bData.Stride * bData.Height;
|
||||
|
||||
/*Allocate buffer for image*/
|
||||
byte[] data = new byte[size];
|
||||
|
||||
/*This overload copies data of /size/ into /data/ from location specified (/Scan0/)*/
|
||||
System.Runtime.InteropServices.Marshal.Copy(bData.Scan0, data, 0, size);
|
||||
|
||||
for (int i = 0; i < size; i += bitsPerPixel / 8)
|
||||
{
|
||||
//double magnitude = 1 / 3d * (data[i] + data[i + 1] + data[i + 2]);
|
||||
|
||||
//data[i] is the first of 3 bytes of color
|
||||
data[i] = (byte)((data[i] + MorphColor.B) /2);
|
||||
data[i+1] = (byte)((data[i+1] + MorphColor.G) / 2);
|
||||
data[i+2] = (byte)((data[i+2] + MorphColor.R) / 2);
|
||||
}
|
||||
|
||||
/* This override copies the data back into the location specified */
|
||||
System.Runtime.InteropServices.Marshal.Copy(data, 0, bData.Scan0, data.Length);
|
||||
|
||||
b.UnlockBits(bData);
|
||||
|
||||
return b;
|
||||
}
|
||||
|
||||
public bool AtLocation(Point location)
|
||||
{
|
||||
if (location.X >= MyLocation.X && location.X <= MyLocation.X + Size &&
|
||||
@ -902,8 +945,56 @@ namespace EduNetworkBuilder
|
||||
Network myNet = NB.GetNetwork();
|
||||
myNet.Invalidate(Location);
|
||||
}
|
||||
if(MorphColor == Color.Empty)
|
||||
Graphics.FromImage(BaseImage).DrawImage(MyImage, MyLocation.X, MyLocation.Y, Size, Size);
|
||||
else
|
||||
{
|
||||
//ColorMap colorMap = new ColorMap();
|
||||
//int width = MyImage.Width;
|
||||
//int height = MyImage.Height;
|
||||
|
||||
Graphics.FromImage(BaseImage).DrawImage(MyImage, MyLocation.X, MyLocation.Y, Size, Size);
|
||||
//colorMap.OldColor = Color.FromArgb(33,39,63); // opaque red
|
||||
//colorMap.NewColor = MorphColor; // opaque blue
|
||||
|
||||
//ColorMap[] remapTable = { colorMap };
|
||||
//ImageAttributes imageAttributes = new ImageAttributes();
|
||||
//imageAttributes.SetRemapTable(remapTable, ColorAdjustType.Bitmap);
|
||||
//using (Graphics G = Graphics.FromImage(BaseImage))
|
||||
//{
|
||||
// G.DrawImage(
|
||||
// MyImage,
|
||||
// new Rectangle(MyLocation.X, MyLocation.Y, Size, Size), // destination rectangle
|
||||
// 0, 0, // upper-left corner of source rectangle
|
||||
// width, // width of source rectangle
|
||||
// height, // height of source rectangle
|
||||
// GraphicsUnit.Pixel,
|
||||
// imageAttributes);
|
||||
//}
|
||||
//---------------------------
|
||||
//Color color = MorphColor; //Your desired colour
|
||||
//Bitmap bmp = new Bitmap(MyImage);
|
||||
//for (int x = 0; x < bmp.Width; x++)
|
||||
//{
|
||||
// for (int y = 0; y < bmp.Height; y++)
|
||||
// {
|
||||
// int a = 0;
|
||||
// int r = 0;
|
||||
// int g = 0;
|
||||
// int b = 0;
|
||||
// Color gotColor = bmp.GetPixel(x, y);
|
||||
// a = gotColor.A;
|
||||
// r = (gotColor.R + color.R) / 2;
|
||||
// g = (gotColor.G + color.G) / 2;
|
||||
// b = (gotColor.B + color.B) / 2;
|
||||
// gotColor = Color.FromArgb(a, r, g, b);
|
||||
// bmp.SetPixel(x, y, gotColor);
|
||||
// }
|
||||
//}
|
||||
//Graphics.FromImage(BaseImage).DrawImage(bmp, MyLocation.X, MyLocation.Y, Size, Size);
|
||||
//------------------------------------
|
||||
Image NewBMP = ColoredImage(MyImage);
|
||||
Graphics.FromImage(BaseImage).DrawImage(NewBMP, MyLocation.X, MyLocation.Y, Size, Size);
|
||||
}
|
||||
if(DrawTitle)
|
||||
{
|
||||
int x = MyLocation.X + (Size / 2);
|
||||
|
@ -76,8 +76,14 @@ namespace EduNetworkBuilder
|
||||
{
|
||||
bool foundit = false;
|
||||
Network theNet = NB.GetNetwork();
|
||||
if (theNet == null)
|
||||
return;
|
||||
NetworkDevice ND = theNet.GetDeviceFromID(AttachedToHostNic);
|
||||
if (ND == null)
|
||||
return;
|
||||
NetworkCard NC = ND.NicFromID(AttachedToHostNic);
|
||||
if (NC == null)
|
||||
return;
|
||||
NicType NT = NC.GetNicType;
|
||||
bool isPort = NT == NicType.port;
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033\deflangfe1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Calibri;}{\f1\fnil\fcharset0 Calibri;}{\f2\fmodern\fprq1\fcharset0 Courier New;}{\f3\fmodern\fprq1\fcharset0 Consolas;}}
|
||||
{\colortbl ;\red0\green0\blue255;}
|
||||
{\*\generator Riched20 10.0.10240}{\*\mmathPr\mdispDef1\mwrapIndent1440 }\viewkind4\uc1
|
||||
{\*\generator Riched20 10.0.14393}{\*\mmathPr\mdispDef1\mwrapIndent1440 }\viewkind4\uc1
|
||||
\pard\widctlpar\sa200\sl276\slmult1\b\f0\fs22\lang9 Help:\b0\par
|
||||
This is a basic help document for EduNetworkBuilder. You can get to this by going to "Help" -> "Help" from the main network-builder window. Or, if you are working on a puzzle, the number buttons on the right-side should open context help. (Help topics that somehow relate to the specific puzzle).\par
|
||||
\b Overview:\par
|
||||
@ -13,7 +13,7 @@ Each network card can have multiple IP addresses. This allows you to have one n
|
||||
\b Building a network:\b0\par
|
||||
|
||||
\pard\widctlpar\sa200\f1{\pict{\*\picprop{\sp{\sn wzDescription}{\sv Image}}{\sp{\sn posv}{\sv 1}}
|
||||
}\pngblip\picw1056\pich1056\picwgoal599\pichgoal599
|
||||
}\pngblip\picw1057\pich1057\picwgoal599\pichgoal599
|
||||
89504e470d0a1a0a0000000d494844520000003f0000003f0802000000d83d8788000000017352
|
||||
474200aece1ce90000000467414d410000b18f0bfc610500000009704859730000171100001711
|
||||
01ca26f33f00000d8a494441546843ed595b8c5de575fefecbde67cecc3967c633f6788cb1198f
|
||||
@ -168,7 +168,7 @@ cbb1afaee0eb6fc6bedd1dfbee7bfcf0e3d84f3fe3975fc77efb7dec8f3ff117d7cf8deb3bf299
|
||||
664b94d91265b644992d51664b94d91265b644992d3914996b6bff017677e26ba12d6815000000
|
||||
0049454e44ae426082
|
||||
}{\pict{\*\picprop{\sp{\sn wzDescription}{\sv Image}}{\sp{\sn posv}{\sv 1}}
|
||||
}\pngblip\picw1056\pich1056\picwgoal599\pichgoal599
|
||||
}\pngblip\picw1057\pich1057\picwgoal599\pichgoal599
|
||||
89504e470d0a1a0a0000000d494844520000003f0000003f0403000000a5710dec000000017352
|
||||
474200aece1ce90000000467414d410000b18f0bfc610500000030504c5445000000ffffff2127
|
||||
3f5c7df92e3a694b64c45a7af33a4b8e2a355d445aad5776ea0000000000000000000000000000
|
||||
@ -179,7 +179,7 @@ ec2634a1c8632a102f87011c6e10524205642858040b225c0a96b840c024b24d181e0a968642c0
|
||||
241479ec264c14c4a6003394712940911f12d5a2a00000a6e0d650561e0a840000000049454e44
|
||||
ae426082
|
||||
}{\pict{\*\picprop{\sp{\sn wzDescription}{\sv Image}}{\sp{\sn posv}{\sv 1}}
|
||||
}\pngblip\picw1056\pich1056\picwgoal599\pichgoal599
|
||||
}\pngblip\picw1057\pich1057\picwgoal599\pichgoal599
|
||||
89504e470d0a1a0a0000000d494844520000003f0000003f0802000000d83d8788000000017352
|
||||
474200aece1ce90000000467414d410000b18f0bfc610500000009704859730000171100001711
|
||||
01ca26f33f00000ee2494441546843ed9a7b88ddd511c77fef7b77efeee661d6687dc45a4dd618
|
||||
@ -979,7 +979,7 @@ c0ff864213588d0000000049454e44ae426082
|
||||
|
||||
\pard\widctlpar\sa200\sl276\slmult1 Switches:\par
|
||||
\b0\f1{\pict{\*\picprop{\sp{\sn wzDescription}{\sv Image}}{\sp{\sn posv}{\sv 1}}
|
||||
}\pngblip\picw1056\pich1056\picwgoal599\pichgoal599
|
||||
}\pngblip\picw1057\pich1057\picwgoal599\pichgoal599
|
||||
89504e470d0a1a0a0000000d494844520000003f0000003f0403000000a5710dec000000017352
|
||||
474200aece1ce90000000467414d410000b18f0bfc610500000030504c5445000000ffffff2127
|
||||
3f5c7df946d91f0000000000000000000000000000000000000000000000000000000000000000
|
||||
@ -1082,7 +1082,7 @@ bc4630278e173b4214afda2c89e1e5a7778549c8d898848c8d49c8d898848c8d49c8d898848c8d
|
||||
\b Firewall:\par
|
||||
|
||||
\pard\widctlpar\sa200\b0\f1{\pict{\*\picprop{\sp{\sn wzDescription}{\sv Image}}{\sp{\sn posv}{\sv 1}}
|
||||
}\pngblip\picw1056\pich1056\picwgoal599\pichgoal599
|
||||
}\pngblip\picw1057\pich1057\picwgoal599\pichgoal599
|
||||
89504e470d0a1a0a0000000d494844520000003f0000003f0802000000d83d8788000000017352
|
||||
474200aece1ce90000000467414d410000b18f0bfc610500000009704859730000171100001711
|
||||
01ca26f33f00000d8a494441546843ed595b8c5de575fefecbde67cecc3967c633f6788cb1198f
|
||||
@ -1180,7 +1180,7 @@ f56292e8fc581afaefef98a1309f2806c81bc62976c503e54beff2bcc1f963d9a015dd7a0cd6e6
|
||||
\pard\widctlpar\sa200\sl276\slmult1 The firewall can also do VPNs (see the help topic on VPNs for more information). The VPN allows devices behind one firewall to talk to devices behind another firewall.\par
|
||||
\b Wireless Router:\par
|
||||
\b0\f1{\pict{\*\picprop{\sp{\sn wzDescription}{\sv Image}}{\sp{\sn posv}{\sv 1}}
|
||||
}\pngblip\picw1056\pich1056\picwgoal599\pichgoal599
|
||||
}\pngblip\picw1057\pich1057\picwgoal599\pichgoal599
|
||||
89504e470d0a1a0a0000000d494844520000003f0000003f0806000000575f10df000000017352
|
||||
474200aece1ce90000000467414d410000b18f0bfc610500000009704859730000171100001711
|
||||
01ca26f33f00000e64494441546843ed5a097454d519feef7b3399259330213184408024800412
|
||||
@ -1281,7 +1281,7 @@ cfc079dfa8fe9102485fca3d4d6842139ad0842634a1094444ff065e6a1a5c3f46d13800000000
|
||||
49454e44ae426082
|
||||
}\f0 The wireless router is the most complex device on the network. It functions as a firewall, as a switch (on the wired side) and as a hub (on the wireless side). It has VPN capability and can serve DHCP.\par
|
||||
\f1{\pict{\*\picprop{\sp{\sn wzDescription}{\sv Image}}{\sp{\sn posv}{\sv 1}}
|
||||
}\pngblip\picw1056\pich1056\picwgoal599\pichgoal599
|
||||
}\pngblip\picw1057\pich1057\picwgoal599\pichgoal599
|
||||
89504e470d0a1a0a0000000d494844520000003f0000003f0806000000575f10df000000017352
|
||||
474200aece1ce90000000467414d410000b18f0bfc610500000009704859730000171100001711
|
||||
01ca26f33f00000a4e494441546843ed9a795414471ec76bbae78019601886fb3e74503080881a
|
||||
@ -1356,7 +1356,7 @@ f69fe3440aa6b10f122b43d12edd9d7bb810e5851f85ea71c619679c71c40180ff02c1d321eeef
|
||||
}\b\f0 Wireless Access Point:\par
|
||||
\b0 The WAP (Wireless Access Point) is a simple device, which allows you to plug one Ethernet port into a wire, and attach multiple wireless devices to it. Read up on General Wireless for more information on how to configure it. \b \par
|
||||
\b0\f1{\pict{\*\picprop{\sp{\sn wzDescription}{\sv Image}}{\sp{\sn posv}{\sv 1}}
|
||||
}\pngblip\picw1056\pich1056\picwgoal599\pichgoal599
|
||||
}\pngblip\picw1057\pich1057\picwgoal599\pichgoal599
|
||||
89504e470d0a1a0a0000000d494844520000003f0000003f0806000000575f10df000000017352
|
||||
474200aece1ce90000000467414d410000b18f0bfc610500000009704859730000171100001711
|
||||
01ca26f33f00000a1e494441546843ed9a0954145716866ff542374d2320822ca2b28882a028b8
|
||||
@ -1430,7 +1430,7 @@ f7d5bf1beea1a8f727e76db4d1461b6db4d1461bef3b00ff03f5ef6e4c8c6d9563000000004945
|
||||
}\b\f0 Wireless Bridge:\par
|
||||
\b0 A Wireless Bridge is the opposite end of a Wireless Access Point. It has one wireless client connection, to connect to something that serves a wireless signal, and a built in Ethernet switch to connect to the wired connections. It goes at the far end of a wireless link, and allows you to attach multiple wired devices. The Wireless Bridge is also called Wireless Client Mode (when referring to wireless devices.)\par
|
||||
\f1{\pict{\*\picprop{\sp{\sn wzDescription}{\sv Image}}{\sp{\sn posv}{\sv 1}}
|
||||
}\pngblip\picw1056\pich1056\picwgoal599\pichgoal599
|
||||
}\pngblip\picw1057\pich1057\picwgoal599\pichgoal599
|
||||
89504e470d0a1a0a0000000d494844520000003f0000003f0806000000575f10df000000017352
|
||||
474200aece1ce90000000467414d410000b18f0bfc610500000009704859730000171100001711
|
||||
01ca26f33f00000d33494441546843ed9a095813d716c7cf6481008184a08080b28a88b2098a8a
|
||||
@ -1634,5 +1634,8 @@ There are a few main rules for how to subnet:\par
|
||||
\b0 If you plan it right, you should be able to supernet your subnets, and have one route or rule for them. For example, you may have your networking equipment in 1-63, and your printers from 65-127. That means you can have one route or rule that matches all 128 IPs. This makes life a lot simpler for creating many sorts of rules.\b\par
|
||||
Smaller routing tables require less management and resources.\par
|
||||
\b0 Again, with the onset of more powerful routers, firewalls, and faster networking speeds, this is no longer quite as critical as it once was. But if you have a finely tuned firewall, you can end up with many rules. Often it is very nice to block all access to a whole range instead of blocking access to each machine one IP at a time. Often, the "less management" simply means less work for the techies who are keeping things running smoothly.\par
|
||||
\par
|
||||
\b VLANs:\line\b0 Virtual Local Area Networks (Virtual LANs) allow you to segment your network for security sake. Most managed switches can be configured for VLANs.\par
|
||||
\par
|
||||
}
|
||||
|