本文整理汇总了C#中Topic.GetValue方法的典型用法代码示例。如果您正苦于以下问题:C# Topic.GetValue方法的具体用法?C# Topic.GetValue怎么用?C# Topic.GetValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Topic
的用法示例。
在下文中一共展示了Topic.GetValue方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Serialize
internal static byte[] Serialize(Topic t) {
List<byte> ret=new List<byte>();
switch(Type.GetTypeCode(t.valueType)) {
case TypeCode.Boolean:
ret.Add((byte)((t as DVar<bool>).value?1:0));
break;
case TypeCode.Int64: {
long vo=(t as DVar<long>).value;
long v=vo;
do {
ret.Add((byte)v);
v=v>>8;
} while(vo<0?(v<-1 || (ret[ret.Count-1]&0x80)==0):(v>0 || (ret[ret.Count-1]&0x80)!=0));
}
break;
//case TypeCode.Double:
case TypeCode.String: {
string v=(string)t.GetValue();
if(!string.IsNullOrEmpty(v)) {
ret.AddRange(Encoding.Default.GetBytes(v));
}
}
break;
case TypeCode.Object:
if(t.valueType==typeof(PLC.ByteArray) && t.GetValue()!=null) {
ret.AddRange(((PLC.ByteArray)t.GetValue()).GetBytes());
}
break;
}
return ret.ToArray();
}
示例2: root_changed
void root_changed(Topic sender, TopicChanged param) {
if(!_verbose) {
return;
}
var ir=param.Initiator;
switch(param.Art) {
case TopicChanged.ChangeArt.Add:
if(ir==null) {
Log.Debug("+ {0}[{1}]", sender.path, sender.valueType);
} else {
Log.Debug("+ {0}[{1}] : {2}", sender.path, sender.valueType, ir.name);
}
break;
case TopicChanged.ChangeArt.Value:
if(ir==null) {
if(!sender.path.StartsWith("/dev/.clock/")) {
Log.Debug("! {0}={1}", sender.path, sender.GetValue());
}
} else if(!ir.path.StartsWith("/dev/.clock/")) {
Log.Debug("! {0}={1} : {2}", sender.path, sender.GetValue(), ir.name);
}
break;
case TopicChanged.ChangeArt.Remove:
if(ir==null) {
Log.Debug("- {0}", sender.path, param.Initiator);
} else {
Log.Debug("- {0} : {1}", sender.path, ir.name);
}
break;
}
}