Reader Gogogogo

This commit is contained in:
2011-10-25 22:25:04 +00:00
parent 1b8f9132c3
commit 77ec113e0d
11 changed files with 138 additions and 41 deletions
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="com_display" value="COM1" />
<add key="com_rfid" value="COM2" />
</appSettings>
</configuration>
+15 -1
View File
@@ -2,14 +2,28 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.IO;
namespace Matomat namespace Matomat
{ {
class BarcodeReader class BarcodeReader
{ {
private TextReader r;
internal long getCodeID() internal long getCodeID()
{ {
return 4029764001807; r = Console.In;
string str = r.ReadLine();
try
{
return Convert.ToInt64(str);
}
catch (Exception) { }
return 0;
}
internal void Abort()
{
r.Close();
} }
} }
} }
+58
View File
@@ -0,0 +1,58 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Configuration;
namespace Matomat
{
class Config
{
private class instance
{
public Config config;
public string signature;
public instance(Config config, string signature)
{
this.config = config;
this.signature = signature;
}
}
static List<instance> instances;
private AppSettingsReader config;
public Config()
{
this.config = new AppSettingsReader();
loadFile();
}
private void loadFile()
{
try
{
this.com_display = (string)config.GetValue("com_display", typeof(string));
this.com_rfid = (string)config.GetValue("com_rfid", typeof(string));
}
catch (Exception) { }
}
internal static Config getInstance(string file)
{
if (instances == null)
instances = new List<instance>();
foreach (instance i in instances)
{
if (i.signature == file)
return i.config;
}
instance instance = new instance(new Config(), file);
instances.Add(instance);
return instance.config;
}
public string com_display { get; set; }
public string com_rfid { get; set; }
}
}
+14 -5
View File
@@ -9,6 +9,7 @@ namespace Matomat
{ {
static LCDDisplay lcd_i = null; static LCDDisplay lcd_i = null;
static Input inp_i = null; static Input inp_i = null;
static Config con_i = null;
internal static LCDDisplay getLCDDisplay() internal static LCDDisplay getLCDDisplay()
{ {
if (lcd_i == null) if (lcd_i == null)
@@ -18,9 +19,7 @@ namespace Matomat
private static LCDDisplay _createLCDDisplay() private static LCDDisplay _createLCDDisplay()
{ {
LCDDisplay.Comport comport = new LCDDisplay.Comport("COM1",19200, System.IO.Ports.Parity.None, 8, System.IO.Ports.StopBits.One); return LCDDisplay.getInstance(Factory.getConfig().com_display);
LCDDisplay lcd = LCDDisplay.getInstance(comport);
return lcd;
} }
internal static Input getInput() internal static Input getInput()
@@ -32,8 +31,18 @@ namespace Matomat
private static Input _createInput() private static Input _createInput()
{ {
Input inp = Input.getInstance(); return Input.getInstance();
return inp; }
internal static Config getConfig()
{
if (con_i == null)
con_i = Factory._createConfig("App.config");
return con_i;
}
private static Config _createConfig(string file)
{
return Config.getInstance(file);
} }
} }
} }
+1 -4
View File
@@ -11,10 +11,7 @@ namespace Matomat
{ {
class Helper class Helper
{ {
internal static string Serialize(LCDDisplay.Comport comport)
{
return comport.port + comport.bautrate.ToString() + comport.databits.ToString() + comport.parity.ToString() + comport.stopbits.ToString();
}
} }
public static class String public static class String
{ {
+9 -7
View File
@@ -51,10 +51,10 @@ namespace Matomat
while (true) while (true)
{ {
Thread.Sleep(1); Thread.Sleep(1);
char k = 'k'; long id = rfid.getCardID();
if (k == 'r') if (id != 0)
{ {
data.id = rfid.getCardID(); data.id = id;
data.type = InputData.types.Card; data.type = InputData.types.Card;
} }
} }
@@ -65,11 +65,10 @@ namespace Matomat
while (true) while (true)
{ {
Thread.Sleep(1); Thread.Sleep(1);
char k = Console.ReadKey(false).KeyChar; long id = code.getCodeID();
Console.WriteLine(); if (id != 0)
if (k == 'b')
{ {
data.id = code.getCodeID(); data.id = id;
data.type = InputData.types.Prod; data.type = InputData.types.Prod;
} }
} }
@@ -92,6 +91,8 @@ namespace Matomat
} }
wtCard.Abort(); wtCard.Abort();
wtCode.Abort(); wtCode.Abort();
rfid.Abort();
code.Abort();
return data; return data;
} }
@@ -109,6 +110,7 @@ namespace Matomat
Thread.Sleep(1); Thread.Sleep(1);
} }
wtCode.Abort(); wtCode.Abort();
code.Abort();
return data; return data;
} }
+9 -23
View File
@@ -34,32 +34,15 @@ namespace Matomat
this.time = time; this.time = time;
} }
} }
public class Comport
{
public string port;
public int bautrate;
public Parity parity;
public int databits;
public StopBits stopbits;
public Comport(string port, int bautrate, Parity parity, int databits, StopBits stopbits)
{
this.port = port;
this.bautrate = bautrate;
this.parity = parity;
this.databits = databits;
this.stopbits = stopbits;
}
}
static List<instance> instances; static List<instance> instances;
private Queue<Message> messages; private Queue<Message> messages;
private volatile bool _shouldStop; private volatile bool _shouldStop;
private SerialPort serialPort; private SerialPort serialPort;
private bool disable = false; private bool disable = false;
public LCDDisplay(Comport port) public LCDDisplay(string port)
{ {
this.serialPort = new SerialPort(port.port, port.bautrate, port.parity, port.databits, port.stopbits); this.serialPort = new SerialPort(port, 19200, Parity.None, 8, StopBits.One);
try try
{ {
this.serialPort.Open(); this.serialPort.Open();
@@ -148,6 +131,10 @@ namespace Matomat
private void createChars() private void createChars()
{ {
this.displayEscCode("GTO0@");
this.displayEscCode("UDC0GH_H_HG@");
this.displayEscCode("GTO2@");
this.displayEscCode("UDC0GH_H_HG@"); this.displayEscCode("UDC0GH_H_HG@");
} }
@@ -192,17 +179,16 @@ namespace Matomat
this.anzeige(text, status, time); this.anzeige(text, status, time);
} }
internal static LCDDisplay getInstance(Comport port) internal static LCDDisplay getInstance(string port)
{ {
if (instances == null) if (instances == null)
instances = new List<instance>(); instances = new List<instance>();
string signature = Helper.Serialize(port);
foreach (instance i in instances) foreach (instance i in instances)
{ {
if (i.signature == signature) if (i.signature == port)
return i.lCDDisplay; return i.lCDDisplay;
} }
instance instance = new instance(new LCDDisplay(port),signature); instance instance = new instance(new LCDDisplay(port), port);
instances.Add(instance); instances.Add(instance);
return instance.lCDDisplay; return instance.lCDDisplay;
} }
+4
View File
@@ -49,6 +49,7 @@
<ItemGroup> <ItemGroup>
<Compile Include="Automat.cs" /> <Compile Include="Automat.cs" />
<Compile Include="BarcodeReader.cs" /> <Compile Include="BarcodeReader.cs" />
<Compile Include="Config.cs" />
<Compile Include="Factory.cs" /> <Compile Include="Factory.cs" />
<Compile Include="Helper.cs" /> <Compile Include="Helper.cs" />
<Compile Include="Input.cs" /> <Compile Include="Input.cs" />
@@ -68,6 +69,9 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.
+1
View File
@@ -38,6 +38,7 @@ namespace Matomat
"² Produkt wurde nich gefunden ²"+ "² Produkt wurde nich gefunden ²"+
"² EAN13: "+(this.GetProdId().ToString()+" unbekannt").PadRight(29,' ')+" ²"+ "² EAN13: "+(this.GetProdId().ToString()+" unbekannt").PadRight(29,' ')+" ²"+
"²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²", LCDDisplay.Status.Error, 5); "²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²", LCDDisplay.Status.Error, 5);
System.Threading.Thread.Sleep(4500);
return false; return false;
} }
return true; return true;
+20 -1
View File
@@ -2,14 +2,33 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using RfidClass;
namespace Matomat namespace Matomat
{ {
class RFIDReader class RFIDReader
{ {
private RFIDReaderClass r;
public RFIDReader()
{
r = new RFIDReaderClass(Factory.getConfig().com_rfid);
}
internal long getCardID() internal long getCardID()
{ {
return 0xFFFFFFFF; try
{
return r.readKey();
}
catch (Exception) //e)
{
//Console.WriteLine(e);
}
return 0;
}
internal void Abort()
{
r.abort();
} }
} }
} }
Binary file not shown.