Global Numeric ZXZHI;
Global Map<String,String> map_daxiao;
Events
OnBar(ArrayRef<Integer> indexes)
{
if (H < H[2] And H[1] < H[2]) H1 = H[2];
else H1 = 0;
if (L > L[2] And L[1] > L[2]) L1 = L[2];
else L1 = 0;
if(H1 > 0) H2 = H1;
If(L1 > 0) L2 = L1;
If(Close > H2) K1= -3;
ELSE IF (Close < L2) K1=1;
Else K1 = 0;
if(K1 <> 0) k2 = k1;
TMP1=K2;
shangc = CrossUnder(TMP1, 0); //死叉
xiac = CrossOver(TMP1, 0); //金叉
LSHANGC=NthCon(shangc[1],1);
LXIAC= NthCon(xiac[1],1);
ZXZHI = Min(LSHANGC,LXIAC);
map_daxiao["最近距离"] = "ZXZHI";
PublishEvent("比大小",map_daxiao,"所有订阅者"); Print("ZXZHI="+Text(ZXZHI)); 发送端把 ZXZHI 变输出是有值的
下面代码是接受端
Global Numeric TIMEXX;
Global Numeric tttt;
Events
OnInit()
{
CreateTimer(1200);
SubscribeEvent("比大小");
}
OnEvent(StringRef evtName, MapRef<String, String> evtValue)
{
if(evtName == "比大小")
{
TIMEXX = Value(evtValue["最近距离"]);
print(evtName + " " + TextMap(evtValue));
Print("TIMEXX="+Text(TIMEXX));
}
}
在接受 其实信息输出都正确的 TIMEXX 输出是0的 是什么原因 老师帮忙看一下
map_daxiao["最近距离"] = "ZXZHI";
首先你赋值时,赋了一个字符串,意义不明
TIMEXX = Value(evtValue["最近距离"]);
接受端你企图把,字符串 "ZXZHI" ,变成1个数字。 显然不可能。
map_daxiao["最近距离"] = text(ZXZHI); 更像那么回事