Commit 6de5408f authored by leon.huang's avatar leon.huang

Add North and south water repel each other

parent 41afdcdc
This diff is collapsed.
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
<DebugType>full</DebugType> <DebugType>full</DebugType>
<Optimize>false</Optimize> <Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath> <OutputPath>bin\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;DEBUG_TEST</DefineConstants> <DefineConstants>TRACE;DEBUG;DEBUG_TEST1</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit> <Prefer32Bit>false</Prefer32Bit>
......
...@@ -182,16 +182,16 @@ namespace ModbusDemo.Modular ...@@ -182,16 +182,16 @@ namespace ModbusDemo.Modular
switch (cx18x.beChannelType[i, j]) switch (cx18x.beChannelType[i, j])
{ {
case modual.eX18xSensorChannelType.Weiertai: case modual.eX18xSensorChannelType.Weiertai:
cx18x.sX18xDataStruct[i].dNowConvertData[j] = 8 - ((double.Parse(sTempString[i][j]) - 4) / 16 * 8); cx18x.sX18xDataStruct[i].dNowConvertData[j] = ((double.Parse(sTempString[i][j]) - 4) / 16 * 8);
break; break;
case modual.eX18xSensorChannelType.Mike_5: case modual.eX18xSensorChannelType.Mike_5:
cx18x.sX18xDataStruct[i].dNowConvertData[j] = 5 - ((double.Parse(sTempString[i][j]) - 4) / 16 * 5); cx18x.sX18xDataStruct[i].dNowConvertData[j] = ((double.Parse(sTempString[i][j]) - 4) / 16 * 5);
break; break;
case modual.eX18xSensorChannelType.Mike_6: case modual.eX18xSensorChannelType.Mike_6:
cx18x.sX18xDataStruct[i].dNowConvertData[j] = 6 - ((double.Parse(sTempString[i][j]) - 4) / 16 * 6); cx18x.sX18xDataStruct[i].dNowConvertData[j] = ((double.Parse(sTempString[i][j]) - 4) / 16 * 6);
break; break;
case modual.eX18xSensorChannelType.Mike_7: case modual.eX18xSensorChannelType.Mike_7:
cx18x.sX18xDataStruct[i].dNowConvertData[j] = 7 - ((double.Parse(sTempString[i][j]) - 4) / 16 * 7); cx18x.sX18xDataStruct[i].dNowConvertData[j] = ((double.Parse(sTempString[i][j]) - 4) / 16 * 7);
break; break;
case modual.eX18xSensorChannelType.NormalCurrent: case modual.eX18xSensorChannelType.NormalCurrent:
cx18x.sX18xDataStruct[i].dNowConvertData[j] = double.Parse(sTempString[i][j]); cx18x.sX18xDataStruct[i].dNowConvertData[j] = double.Parse(sTempString[i][j]);
...@@ -544,16 +544,16 @@ namespace ModbusDemo.Modular ...@@ -544,16 +544,16 @@ namespace ModbusDemo.Modular
switch (cx18x.beChannelType[i, k]) switch (cx18x.beChannelType[i, k])
{ {
case modual.eX18xSensorChannelType.Weiertai: case modual.eX18xSensorChannelType.Weiertai:
cx18x.sX18xDataStruct[i].dNowConvertData[k] = 8 - ((double.Parse(strCalculData[k]) - 4) / 16 * 8); cx18x.sX18xDataStruct[i].dNowConvertData[k] = ((double.Parse(strCalculData[k]) - 4) / 16 * 8);
break; break;
case modual.eX18xSensorChannelType.Mike_5: case modual.eX18xSensorChannelType.Mike_5:
cx18x.sX18xDataStruct[i].dNowConvertData[k] = 5 - ((double.Parse(strCalculData[k]) - 4) / 16 * 5); cx18x.sX18xDataStruct[i].dNowConvertData[k] = ((double.Parse(strCalculData[k]) - 4) / 16 * 5);
break; break;
case modual.eX18xSensorChannelType.Mike_6: case modual.eX18xSensorChannelType.Mike_6:
cx18x.sX18xDataStruct[i].dNowConvertData[k] = 6 - ((double.Parse(strCalculData[k]) - 6) / 16 * 6); cx18x.sX18xDataStruct[i].dNowConvertData[k] = ((double.Parse(strCalculData[k]) - 6) / 16 * 6);
break; break;
case modual.eX18xSensorChannelType.Mike_7: case modual.eX18xSensorChannelType.Mike_7:
cx18x.sX18xDataStruct[i].dNowConvertData[k] = 7 - ((double.Parse(strCalculData[k]) - 4) / 16 * 7); cx18x.sX18xDataStruct[i].dNowConvertData[k] = ((double.Parse(strCalculData[k]) - 4) / 16 * 7);
break; break;
case modual.eX18xSensorChannelType.NormalCurrent: case modual.eX18xSensorChannelType.NormalCurrent:
cx18x.sX18xDataStruct[i].dNowConvertData[k] = double.Parse(strCalculData[k]); cx18x.sX18xDataStruct[i].dNowConvertData[k] = double.Parse(strCalculData[k]);
......
This diff is collapsed.
...@@ -7,6 +7,7 @@ using ModbusDemo.application; ...@@ -7,6 +7,7 @@ using ModbusDemo.application;
using ModbusDemo.MessageFormat; using ModbusDemo.MessageFormat;
namespace ModbusDemo.application namespace ModbusDemo.application
{ {
#if DEBUG_TEST
public class ControlMap public class ControlMap
{ {
public delegate bool bDelege_Handle(bool[] bControlData); public delegate bool bDelege_Handle(bool[] bControlData);
...@@ -136,4 +137,133 @@ namespace ModbusDemo.application ...@@ -136,4 +137,133 @@ namespace ModbusDemo.application
return bMapStatus; return bMapStatus;
} }
} }
#else
public class ControlMap
{
public delegate bool bDelege_Handle(bool[] bControlData);
public static bDelege_Handle bDelege_Operation;
public static byte byMapIdleID;
public static bool[] byMapIdleControlData;
public static string[] strMapIdleChannelName;
public static bool bMap_Idle_Open_Control(bool[] bControldata)
{
bool[] bControlBit = new bool[bControldata.Count()];
bool bStatus;
bool bHadOperation;
for (int i = 0; i < bControldata.Count(); i++)
{
string str = "d" + i.ToString();
for (int j = 0; j < strMapIdleChannelName.Count(); j++)
{
if (str == strMapIdleChannelName[j])
{
bControlBit[i] = true;
bControldata[i] = byMapIdleControlData[i];
}
}
}
bStatus = ModualControl.bOperation_Machine(true, byMapIdleID, bControldata, bControlBit,out bHadOperation, 0, null);
return bStatus;
}
public static bool bMap_Idle_Close_Control(bool[] bControldata)
{
bool[] bControlBit = new bool[bControldata.Count()];
bool bStatus;
bool bHadOperation;
for (int i = 0; i < bControldata.Count(); i++)
{
string str = "d" + i.ToString();
for (int j = 0; j < strMapIdleChannelName.Count(); j++)
{
if (str == strMapIdleChannelName[j])
{
bControlBit[i] = true;
bControldata[i] = byMapIdleControlData[i];
}
}
}
bStatus = ModualControl.bOperation_Machine(true, byMapIdleID, bControldata, bControlBit,out bHadOperation, 0, null);
return bStatus;
}
public static bool bControl_Map(bool bOpen, byte byControlID,bool[] bControlData, params string[] strOperationChannelName)
{
bool bMapStatus = true;
if (bOpen == true)
{
#region 东中转池开映射
if (byControlID == 4 && strOperationChannelName[0] == "d0")
{
bDelege_Operation = AllPond.cEastTransitPool.cSouthWater.bOpen_Machine;
}
else if (byControlID == 4 && strOperationChannelName[0] == "d2")
{
bDelege_Operation = AllPond.cEastTransitPool.cNorthWater.bOpen_Machine;
}
#endregion
#region 西中转池开映射
else if (byControlID == 49 && strOperationChannelName[0] == "d0")
{
bDelege_Operation = AllPond.cWestTransitPool.cSouthWater.bOpen_Machine;
}
else if (byControlID == 49 && strOperationChannelName[0] == "d2")
{
bDelege_Operation = AllPond.cWestTransitPool.cNorthWater.bOpen_Machine;
}
#endregion
#region 中控柜开映射和暂停映射
else if (byControlID == 47 && strOperationChannelName[0] == "d0")
{
bDelege_Operation = AllPond.cCentralControlRoom.cStartButton1.bOpreation_Button;
}
else if (byControlID == 44 && strOperationChannelName[0] == "d0")
{
bDelege_Operation = AllPond.cCentralControlRoom.cPauseButton1.bOpreation_Button;
}
#endregion
else
{
bMapStatus = false;
}
}
else
{
#region 东中转池关映射
if (byControlID == 4 && strOperationChannelName[0] == "d0")
{
bDelege_Operation = AllPond.cEastTransitPool.cSouthWater.bClose_Machine;
}
else if (byControlID == 4 && strOperationChannelName[0] == "d2")
{
bDelege_Operation = AllPond.cEastTransitPool.cNorthWater.bClose_Machine;
}
#endregion
#region 西中转池开映射
else if (byControlID == 49 && strOperationChannelName[0] == "d0")
{
bDelege_Operation = AllPond.cWestTransitPool.cSouthWater.bClose_Machine;
}
else if (byControlID == 49 && strOperationChannelName[0] == "d2")
{
bDelege_Operation = AllPond.cWestTransitPool.cNorthWater.bClose_Machine;
}
#endregion
#region 中控柜关映射和手动映射
else if (byControlID == 47 && strOperationChannelName[0] == "d0")
{
bDelege_Operation = AllPond.cCentralControlRoom.cStopButton1.bOpreation_Button;
}
else if (byControlID == 44 && strOperationChannelName[0] == "d0")
{
bDelege_Operation = AllPond.cCentralControlRoom.cHandButton1.bOpreation_Button;
}
#endregion
else
{
bMapStatus = false;
}
}
return bMapStatus;
}
}
#endif
} }
...@@ -26,7 +26,7 @@ namespace ModbusDemo ...@@ -26,7 +26,7 @@ namespace ModbusDemo
{ {
public partial class Form1 : Form public partial class Form1 : Form
{ {
const bool LOCALDEBUG = false; const bool LOCALDEBUG = true;
private bool bStart = false; private bool bStart = false;
AutoResetEvent exitEvent; AutoResetEvent exitEvent;
private int waitTime; private int waitTime;
...@@ -1128,12 +1128,12 @@ namespace ModbusDemo ...@@ -1128,12 +1128,12 @@ namespace ModbusDemo
MqttReceiveThread.Priority = ThreadPriority.AboveNormal; MqttReceiveThread.Priority = ThreadPriority.AboveNormal;
Task task1 = Task.Factory.StartNew(async() => {await ModualControl.vControl_Res_Poll();}); Task task1 = Task.Factory.StartNew(async() => {await ModualControl.vControl_Res_Poll();});
t_AutoControl = new Thread(AtuoControl_run) // t_AutoControl = new Thread(AtuoControl_run)
{ //{
IsBackground = true // IsBackground = true
}; //};
t_AutoControl.Start(); //t_AutoControl.Start();
t_AutoControl.Priority = ThreadPriority.Normal; //t_AutoControl.Priority = ThreadPriority.Normal;
} }
totxt.Log(DateTime.Now.ToString() + " =>Open " + comPort.PortName + " sucessfully!"); totxt.Log(DateTime.Now.ToString() + " =>Open " + comPort.PortName + " sucessfully!");
await Subscribe(); await Subscribe();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment