Skip to content

Instantly share code, notes, and snippets.

View wanghuaisheng's full-sized avatar

OutMan wanghuaisheng

View GitHub Profile
@wanghuaisheng
wanghuaisheng / RetryUntilTrue.cs
Created November 4, 2017 06:19
保证action方法成功执行一次
/// <summary>
/// 保证action方法成功执行一次
/// </summary>
/// <param name="action"></param>
/// <param name="timeOut">在指定时间内执行</param>
/// <exception cref="TimeoutException">在指定时间内未能成功执行完,则抛出异常</exception>
public static void RetryUntilTrue(Func<bool> action, TimeSpan? timeOut = null)
{
@wanghuaisheng
wanghuaisheng / CDC.sql
Created November 4, 2017 07:19
Sqlserver CDC 测试脚本存档
DECLARE @DatabaseName NVARCHAR(50);
SET @DatabaseName = 'DotNetSoft_Dcnc';
--检查是否启用CDC
SELECT is_cdc_enabled ,
CASE WHEN is_cdc_enabled = 0 THEN 'CDC功能禁用'
ELSE 'CDC功能启用'
END 备注
FROM sys.databases
WHERE name = @DatabaseName;
@wanghuaisheng
wanghuaisheng / ClearShareUpdate.sql
Created November 4, 2017 07:21
清理ShareUpdate特定版本
DECLARE @VersionNumber NVARCHAR(50);
DECLARE @AppKey NVARCHAR(50);
SET @VersionNumber='2016.10.27.1'--'2016.9.20.1','2016.9.22.1','2016.9.22.2','2016.9.30.1','2016.10.27.1'
SET @AppKey='KD';
SELECT * FROM [UPDATE_PatchFile] WHERE AppKey=@AppKey AND PackageId IN (SELECT PackageId FROM [Update_PatchPackage] WHERE AppKey=@AppKey AND VersionNumber=@VersionNumber)
SELECT * FROM [Update_PatchPackage] WHERE AppKey=@AppKey AND VersionNumber=@VersionNumber;
SELECT * FROM [Update_UpdateAppClient] WHERE AppKey=@AppKey AND VersionNumber=@VersionNumber;
@wanghuaisheng
wanghuaisheng / 调用IP库查询IP位置.txt
Created November 4, 2017 07:46
调用IP库(QQWry.Dat)查询IP位置
一、C# 调用IP库(QQWry.Dat)查询IP位置
①、下载QQWry.Dat到D盘根目录(用户可以随意放置,没有特殊规定),点击下载。
②、使用第三方dll(IPLocation.dll)调用返回信息,点击地址。
③、项目引用第三方dll(IPLocation.dll),然后调用代码:IPLocation.IPLocation.IPLocate("D:\\qqwry.dat", "123.125.114.144"); 直接返回位置地址。
@wanghuaisheng
wanghuaisheng / BatchCommandCD.md
Last active November 5, 2017 11:07
批处理中目录切换

0、先说帮助查看:格式:CD /?

1、同一个分区的切换

目录切换格式:格式:CD [盘符][路径]

例1

切换到C:\WINDOWS目录

@wanghuaisheng
wanghuaisheng / GFM语法梳理.md
Last active November 5, 2017 11:38
GFM语法梳理

1、大标题(推荐#代替)

2、中标题(推荐##代替)

3、补空行:是很常用的方法,通过空行跳出当前样式

比如:不会显示为大标题

====================

@wanghuaisheng
wanghuaisheng / Project.xml
Created November 5, 2017 10:53
请将项目文件中的AutoGenerateBindingRedirects属性设置为 true
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{F2AAA22A-3D9E-4DEC-9B3E-261D502999E6}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>

理解POCO先要理解POJO

1、什么是POJO

POJO的名称有多种,pure old java object 、plain ordinary java object 等。

按照Martin Fowler的解释是“Plain Old Java Object”,从字面上翻译为“纯洁老式的java对象”,但大家都使用“简单java对象”来称呼它。

POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。

@wanghuaisheng
wanghuaisheng / OwlCarousel2.md
Created November 10, 2017 06:04
owl carousel2 幻灯片/轮播插件
@wanghuaisheng
wanghuaisheng / 组态介绍.md
Last active November 13, 2017 05:14
组态Configure

组态用途

  在组态概念出现之前,要实现某一任务,都是通过编写程序(如使用BASIC , C , FORTRAN等)来实现的。编写程序不但工作量大、周期长,而且容易犯错误,不能保证工期。组态软件的出现,解决了这个问题。对于过去需要几个月的工作,通过组态几天就可以完成。 组态软件是有专业性的。一种组态软件只能适合某种领域的应用。组态的概念最早出现在工业计算机控制中。如DCS(集散控制系统)组态,PLC(可编程控制器)梯形图组态。人机界面生成软件就叫工控组态软件。其实在其他行业也有组态的概念,人们只是不这么叫而已。如AutoCAD,PhotoShop,办公软件(PowerPoint)都存在相似的操作,即用软件提供的工具来形成自己的作品,并以数据文件保存作品,而不是执行程序。组态形成的数据只有其制造工具或其他专用工具才能识别。但是不同之处在于,工业控制中形成的组态结果是用在实时监控的。组态工具的解释引擎,要根据这些组态结果实时运行。从表面上看,组态工具的运行程序就是执行自己特定的任务。 虽然说组态就是不需要编写程序就能完成特定的应用。但是为了提供一些灵活性,组态软件也提供了编程手段,一般都是内置编译系统,提供类BASIC语言,有的甚至支持VB。

组态产品

  在当今工控领域,一些常用的大型组态软件主要有:罗克韦尔(Rockwell)-SE,ABB-OptiMax,艾默生DeltaV,WinCC,ChinPMC,iCentroView, iFix,Wonderware Intouch,积成电子(E1000)组态王(KINGVIEW),紫金桥(RealInfo), 力控,易控,华富开物(controX),巨控组态(giantview),天工组态,Advantrol,VisualField,QTouch2跨平台HMI/SCDA组态软件等。免费的组态软件有uScada。

我的理解