|
@@ -0,0 +1,493 @@
|
|
|
+package com.rtdb.test;
|
|
|
+
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Random;
|
|
|
+
|
|
|
+import com.rtdb.api.callbackInter.RSDataChange;
|
|
|
+import com.rtdb.api.callbackInter.RSDataChangeEx;
|
|
|
+import com.rtdb.api.model.MemoryStream;
|
|
|
+import com.rtdb.api.model.NamedDataTypeField;
|
|
|
+import com.rtdb.api.model.NamedType;
|
|
|
+import com.rtdb.api.model.NamedTypeNameToFieldsCount;
|
|
|
+import com.rtdb.api.model.RtdbData;
|
|
|
+import com.rtdb.api.util.BytesConvertUtil;
|
|
|
+import com.rtdb.api.util.DateUtil;
|
|
|
+import com.rtdb.enums.DataSort;
|
|
|
+import com.rtdb.enums.Quality;
|
|
|
+import com.rtdb.model.BlobData;
|
|
|
+import com.rtdb.model.CoorData;
|
|
|
+import com.rtdb.model.DatetimeData;
|
|
|
+import com.rtdb.model.DoubleData;
|
|
|
+import com.rtdb.model.Entity;
|
|
|
+import com.rtdb.model.ErrorParse;
|
|
|
+import com.rtdb.model.IntData;
|
|
|
+import com.rtdb.model.NamedTypeData;
|
|
|
+import com.rtdb.model.SearchCondition;
|
|
|
+import com.rtdb.service.impl.BaseImpl;
|
|
|
+import com.rtdb.service.impl.ServerImpl;
|
|
|
+import com.rtdb.service.impl.ServerImplPool;
|
|
|
+import com.rtdb.service.impl.SnapshotImpl;
|
|
|
+import com.rtdb.service.inter.Base;
|
|
|
+import com.rtdb.service.inter.Server;
|
|
|
+import com.rtdb.service.inter.Snapshot;
|
|
|
+
|
|
|
+/**
|
|
|
+ * <p>
|
|
|
+ * Description:快照服务类测试
|
|
|
+ * </p>
|
|
|
+ * <p>
|
|
|
+ * Copyright: Copyright (c) 2012 GoldenAPI_Java , 北京庚顿数据科技有限公司
|
|
|
+ * </p>
|
|
|
+ * <p>
|
|
|
+ * Company: 北京庚顿数据科技有限公司(www.golden-data.com.cn)
|
|
|
+ * </p>
|
|
|
+ */
|
|
|
+@SuppressWarnings("unused")
|
|
|
+public class SnapshotTest {
|
|
|
+ private static Snapshot snap = null;
|
|
|
+ private static Base base = null;
|
|
|
+ //private static ServerImpl server = null;
|
|
|
+
|
|
|
+ public static void main(String[] args) {
|
|
|
+ try {
|
|
|
+ //ServerImplPool pool = new ServerImplPool("192.168.1.144", 6327, "sa", "golden", 1, 8);
|
|
|
+ ServerImpl server = new ServerImpl("172.168.1.3", 6327, "sa", "golden");
|
|
|
+ //server = pool.getServerImpl();
|
|
|
+ snap = new SnapshotImpl(server);
|
|
|
+
|
|
|
+ base = new BaseImpl(server);
|
|
|
+ // cancelSubscribeSnapshots();
|
|
|
+ // fixCoorSnapshots();//3.0测试完成
|
|
|
+ // fixDoubleSnapshot();//3.0测试完成
|
|
|
+ // fixIntSnapshot();//3.0测试完成
|
|
|
+ // getBlobSnapshot();//3.0测试完成
|
|
|
+ // getBlobSnapshots();//3.0测试完成与GEM显示数据不同
|
|
|
+ // getCoorSnapshots();//3.0测试完成
|
|
|
+ // getDateTimeSnapshots();//3.0测试完成
|
|
|
+ // getDoubleSnapshots();// 3.0测试完成
|
|
|
+ // getIntSnapshots();//3.0测试完成
|
|
|
+ // getNamedTypeSnapshot();//此API暂缓测试
|
|
|
+ // getNamedTypeSnapshots();//此API暂缓测试
|
|
|
+ // pubDateTimeSnapshots();//3.0测试完成
|
|
|
+ //putBlobSnapshot();//3.0测试完成
|
|
|
+ // putBlobSnapshots();//3.0测试完成
|
|
|
+ //putCoorSnapshots();//3.0测试完成
|
|
|
+ // putDoubleSnapshots();//3.0测试完成
|
|
|
+ // putIntSnapshots();//3.0测试完成。
|
|
|
+ //putNamedTypeSnapshot();// 此API暂缓测试
|
|
|
+ // putNamedTypeSnapshots();//此API暂缓测试
|
|
|
+ // subscribeSnapshots();//3.0测试完成
|
|
|
+ subscribsnapshotsEx();//3.0测试完成
|
|
|
+ //server.close();
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void getBlobSnapshot() throws Exception {
|
|
|
+ int id = 233;
|
|
|
+ BlobData b = snap.getBlobSnapshot(id);
|
|
|
+ byte[] blob = b.getBlob();
|
|
|
+ System.out.println(new String(blob, "gbk"));
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 批量读取dateTime类型标签点实时数据
|
|
|
+ public static void getDateTimeSnapshots() throws Exception {
|
|
|
+ int[] ids = { 10115, 10116 };
|
|
|
+ Entity<DatetimeData> en = snap.getDateTimeSnapshots(ids);
|
|
|
+ List<DatetimeData> list = en.getList();
|
|
|
+ for (DatetimeData d : list) {
|
|
|
+ Date value = d.getValue();
|
|
|
+ System.out
|
|
|
+ .println(DateUtil.getGMTTime(value) + " " + ErrorParse.getGoldenError(d.getError()).getErrmsg());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取自定义类型测点的单个快照
|
|
|
+ @SuppressWarnings("null")
|
|
|
+ private static void getNamedTypeSnapshot() throws Exception {
|
|
|
+ int id = 6022;
|
|
|
+ short length = 12;
|
|
|
+
|
|
|
+ NamedTypeData t = snap.getNamedTypeSnapshot(id, length);
|
|
|
+ // 获取快照数据
|
|
|
+ byte[] bz = t.getValue();
|
|
|
+ // 根据列名,列数据类型读数据
|
|
|
+ MemoryStream m = new MemoryStream(bz);
|
|
|
+ float readFloat = m.readFloat();
|
|
|
+ float readFloat2 = m.readFloat();
|
|
|
+ float readFloat3 = m.readFloat();
|
|
|
+ int[] ids = { id };
|
|
|
+
|
|
|
+ // 1.根据id获取自定义类型的名称
|
|
|
+ List<NamedTypeNameToFieldsCount> p = base.getNamedTypeNamesProperty(ids);
|
|
|
+
|
|
|
+ String[] name = new String[p.size()];
|
|
|
+ int[] lens = new int[p.size()];
|
|
|
+ for (int i = 0; i < p.size(); i++) {
|
|
|
+ NamedTypeNameToFieldsCount nt = p.get(i);
|
|
|
+ // 获取自定义类型的名称
|
|
|
+ name[i] = nt.getName().trim();
|
|
|
+ // 获取自定义类型的长度
|
|
|
+ lens[i] = nt.getLen();
|
|
|
+ }
|
|
|
+ // 获取自定义类型数据的列属性(如几列,列名称,该列的字节长度,该列的数据类型
|
|
|
+ NamedType namedType = base.getNamedType(name[0]);
|
|
|
+ List<NamedDataTypeField> list = namedType.getTypeFields();
|
|
|
+ String[] fName = null;
|
|
|
+ int[] len = new int[list.size()];
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ fName[i] = list.get(i).getFieldName();
|
|
|
+ len[i] = list.get(i).getLength();
|
|
|
+ }
|
|
|
+ byte[] value = t.getValue();
|
|
|
+ MemoryStream stream = new MemoryStream(value);
|
|
|
+ boolean v1 = ((stream.readByte() > 0) ? true : false);
|
|
|
+ float v2 = stream.readFloat();
|
|
|
+
|
|
|
+ System.out.println(v1);
|
|
|
+ System.out.println(v2);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 批量获取自定义类型测点的快照
|
|
|
+ private static void getNamedTypeSnapshots() throws Exception {
|
|
|
+ int[] ids = { 116510 };
|
|
|
+ short[] lengths = {};
|
|
|
+
|
|
|
+ Entity<NamedTypeData> nd = snap.getNamedTypeSnapshots(ids, lengths);
|
|
|
+ List<NamedTypeData> list = nd.getList();
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ byte[] value = list.get(i).getValue();
|
|
|
+ for (int j = 0; j < value.length; j++) {
|
|
|
+
|
|
|
+ System.out.println(value[i]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private static void pubDateTimeSnapshots() throws Exception {
|
|
|
+ List<DatetimeData> list = new ArrayList<DatetimeData>();
|
|
|
+ DatetimeData d = new DatetimeData();
|
|
|
+ String date = "2018-10-16 11:45:00";
|
|
|
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+
|
|
|
+ d.setDateTime(new Date());
|
|
|
+ d.setId(6);
|
|
|
+ d.setValue(format.parse(date));
|
|
|
+ d.setMs((short) 999);
|
|
|
+ d.setQuality(Quality.GOOD.getNum());
|
|
|
+ list.add(d);
|
|
|
+ Entity<DatetimeData> entity = snap.putDatetimeSnapshots(list);
|
|
|
+ List<DatetimeData> res = entity.getList();
|
|
|
+ for (DatetimeData data : res) {
|
|
|
+ System.out.println(data.getId() + " " + ErrorParse.getGoldenError(data.getError()).getErrmsg());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 写入单个自定义类型标签点的快照
|
|
|
+ private static void putNamedTypeSnapshot() throws Exception {
|
|
|
+ NamedTypeData named = new NamedTypeData();
|
|
|
+ named.setId(39440);
|
|
|
+ named.setLen(12);
|
|
|
+ byte[] by = new byte[12];
|
|
|
+ int c = 3;
|
|
|
+ float d = 38;
|
|
|
+ int e = 29;
|
|
|
+ byte[] es = BytesConvertUtil.intToBytes(e);
|
|
|
+ byte[] ds = BytesConvertUtil.floatToBytes(d,0);
|
|
|
+ byte[] cs = BytesConvertUtil.intToBytes(c);
|
|
|
+ System.arraycopy(cs, 0, by, 0, cs.length);
|
|
|
+ System.arraycopy(ds, 0, by, cs.length, ds.length);
|
|
|
+ System.arraycopy(es, 0, by, cs.length+ds.length, es.length);
|
|
|
+
|
|
|
+ named.setValue(by);
|
|
|
+ named.setQuality((short) 0);
|
|
|
+ named.setDatetime(new Date());
|
|
|
+ snap.putNamedTypeSnapshot(named);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 批量写入自定义类型标签点的快照
|
|
|
+ private static void putNamedTypeSnapshots() throws Exception {
|
|
|
+ List<NamedTypeData> list = new ArrayList<NamedTypeData>();
|
|
|
+ NamedTypeData named = new NamedTypeData();
|
|
|
+ named.setId(116393);
|
|
|
+ named.setLen(20);
|
|
|
+
|
|
|
+ named.setValue("112".getBytes());
|
|
|
+ named.setQuality((short) 2);
|
|
|
+
|
|
|
+ named.setDatetime(new Date());
|
|
|
+ list.add(named);
|
|
|
+
|
|
|
+ snap.putNamedTypeSnapshots(list);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 批量标签点快照改变的通知订阅
|
|
|
+ public static void subscribsnapshotsEx() throws Exception {
|
|
|
+ /*
|
|
|
+ * Base base = new BaseImpl(new ServerImpl("127.0.0.1", 6327, "sa",
|
|
|
+ * "golden")); int[] ids = { 1, 2, 3, 4, 5 };
|
|
|
+ */
|
|
|
+ int count = base.getTableSizeByName("QSFJ");
|
|
|
+ Object param = " abc ";
|
|
|
+ SearchCondition s = new SearchCondition();
|
|
|
+ s.setTablemask("QSFJ");
|
|
|
+ int[] ids = base.search(s, count, DataSort.SORT_BY_ID);
|
|
|
+ int[] errors = new int[ids.length];
|
|
|
+ snap.subscribeSnapshotsEx(param, ids, new RSDataChangeEx() {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void run(Object param, RtdbData[] goldenDatas) {
|
|
|
+ System.out.print(param + ": \t" + goldenDatas.length);
|
|
|
+ for (int i = 0; i < goldenDatas.length; i++) {
|
|
|
+ System.out.println(",id: " + goldenDatas[i].getId() + " :: " + goldenDatas[i].getValue() + " :: "
|
|
|
+ + DateUtil.dateToString(goldenDatas[i].getDate()) + " ");
|
|
|
+ }
|
|
|
+ System.out.println(" end");
|
|
|
+
|
|
|
+ }
|
|
|
+ }, errors);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获得int类型的快照值
|
|
|
+ public static void getIntSnapshots() throws Exception {
|
|
|
+ Entity<IntData> ents = snap.getIntSnapshots(new int[] { 10113 });
|
|
|
+ for (IntData db : ents.getList())
|
|
|
+ System.out.println(db.getId() + "---" + db.getValue() + "---" + DateUtil.getGMTTime(db.getDateTime()));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 批量插入int类型的快照
|
|
|
+ public static void putIntSnapshots() throws Exception {
|
|
|
+ List<IntData> list = new ArrayList<IntData>();
|
|
|
+ IntData data = new IntData();
|
|
|
+ data.setDateTime(new Date());
|
|
|
+ data.setState(22);
|
|
|
+ data.setId(239);
|
|
|
+ data.setQuality((short) 0);
|
|
|
+ data.setError(0);
|
|
|
+ list.add(data);
|
|
|
+ IntData data1 = new IntData();
|
|
|
+ data1.setDateTime(new Date());
|
|
|
+ data1.setState(13);
|
|
|
+ data1.setId(241);
|
|
|
+ data1.setQuality((short) 0);
|
|
|
+ data1.setError(0);
|
|
|
+ list.add(data1);
|
|
|
+ IntData data2 = new IntData();
|
|
|
+ data2.setDateTime(new Date());
|
|
|
+ data2.setState(13);
|
|
|
+ data2.setId(242);
|
|
|
+ data2.setQuality((short) 0);
|
|
|
+ data2.setError(0);
|
|
|
+ list.add(data2);
|
|
|
+
|
|
|
+ int count = snap.putIntSnapshots(list);
|
|
|
+ System.out.println("成功了 " + count + " 条 id: ");
|
|
|
+ for (IntData intData : list) {
|
|
|
+ System.out.println(intData.getId() + " " + ErrorParse.getGoldenError(intData.getError()).getErrmsg());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获得double类型的快照
|
|
|
+ public static void getDoubleSnapshots() throws Exception {
|
|
|
+ int[] ids = { 10108 };
|
|
|
+ Entity<DoubleData> d = snap.getDoubleSnapshots(ids);
|
|
|
+ List<DoubleData> list = d.getList();
|
|
|
+ for (DoubleData db : list) {
|
|
|
+ System.out.println(db.getId() + "---" + db.getValue() + "---" + DateUtil.getGMTTime(db.getDateTime()));
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 写入浮点类型的快照
|
|
|
+ public static void putDoubleSnapshots() throws Exception {
|
|
|
+ List<DoubleData> doubleDataList = new ArrayList<DoubleData>();
|
|
|
+ DoubleData data = new DoubleData();
|
|
|
+ data.setId(248);
|
|
|
+ data.setValue(200.12);
|
|
|
+ data.setDateTime(new Date());
|
|
|
+ DoubleData data3 = new DoubleData();
|
|
|
+ data3.setId(250);
|
|
|
+ data3.setValue(200.12);
|
|
|
+ data3.setDateTime(new Date());
|
|
|
+ DoubleData data1= new DoubleData();
|
|
|
+ data1.setId(249);
|
|
|
+ data1.setValue(1000.30);
|
|
|
+ data1.setDateTime(new Date());
|
|
|
+ doubleDataList.add(data);
|
|
|
+ doubleDataList.add(data3);
|
|
|
+ doubleDataList.add(data1);
|
|
|
+ int count = snap.putDoubleSnapshots(doubleDataList);
|
|
|
+ System.out.println("成功 " + count + " 条 ");
|
|
|
+ for (DoubleData d : doubleDataList) {
|
|
|
+ System.out.println( "id:"+d.getId() + " " + ErrorParse.getGoldenError(d.getError()).getErrmsg() + "\r\t");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 批量修改int类型的快照
|
|
|
+ public static void fixIntSnapshot() throws Exception {
|
|
|
+ List<IntData> list = new ArrayList<IntData>();
|
|
|
+ IntData d = new IntData();
|
|
|
+ d.setId(10113);
|
|
|
+ d.setValue(666);
|
|
|
+ list.add(d);
|
|
|
+ int n = snap.fixIntSnapshot(list);
|
|
|
+ System.out.println(n);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 批量修改浮点类型的快照
|
|
|
+ public static void fixDoubleSnapshot() throws Exception {
|
|
|
+
|
|
|
+ List<DoubleData> list = new ArrayList<DoubleData>();
|
|
|
+ Random r = new Random();
|
|
|
+ DoubleData d = new DoubleData();
|
|
|
+ d.setId(1);
|
|
|
+ d.setValue((r.nextDouble()) * 100);
|
|
|
+ list.add(d);
|
|
|
+ DoubleData d2 = new DoubleData();
|
|
|
+ d2.setId(2);
|
|
|
+ d2.setValue((r.nextDouble()) * 100);
|
|
|
+ list.add(d2);
|
|
|
+ int n = snap.fixDoubleSnapshot(list);
|
|
|
+ System.out.println(n);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获得坐标类型的快照
|
|
|
+ public static void getCoorSnapshots() throws Exception {
|
|
|
+ int[] ids = new int[] { 10105, 10106 };
|
|
|
+ Entity<CoorData> ents = snap.getCoorSnapshots(ids);
|
|
|
+ List<CoorData> list = ents.getList();
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+
|
|
|
+ System.out.println(ents.getRetInfo() + " " + list.get(i).getX() + " " + list.get(i).getY());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 批量写入coor类型快照值
|
|
|
+ public static void putCoorSnapshots() throws Exception {
|
|
|
+ List<CoorData> list = new ArrayList<CoorData>();
|
|
|
+ CoorData data = new CoorData();
|
|
|
+ data.setId(251);
|
|
|
+ data.setX((float) 323.2);
|
|
|
+ data.setY((float) 333.3);
|
|
|
+ data.setDateTime(new Date());
|
|
|
+ list.add(data);
|
|
|
+ int count = snap.putCoorSnapshots(list);
|
|
|
+ System.out.print("成功 " + count + "条 id: ");
|
|
|
+ for (CoorData coorData : list) {
|
|
|
+ System.out.println(coorData.getId() + " " + ErrorParse.getGoldenError(coorData.getError()).getErrmsg());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 批量修改coor类型 的快照
|
|
|
+ public static void fixCoorSnapshots() throws Exception {
|
|
|
+ List<CoorData> list = new ArrayList<CoorData>();
|
|
|
+ CoorData d = new CoorData();
|
|
|
+ d.setId(10107);
|
|
|
+ d.setDateTime(new Date());
|
|
|
+ d.setX((float) 988.22);
|
|
|
+ d.setY((float) 466.23);
|
|
|
+ list.add(d);
|
|
|
+ CoorData d2 = new CoorData();
|
|
|
+ d2.setId(10108);
|
|
|
+ d2.setDateTime(new Date());
|
|
|
+ d2.setX((float) 989.22);
|
|
|
+ d2.setY((float) 277.23);
|
|
|
+ list.add(d2);
|
|
|
+ int n = snap.fixCoorSnapshots(list);
|
|
|
+ System.out.println(n);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 批量获得blob快照
|
|
|
+ public static void getBlobSnapshots() throws Exception {
|
|
|
+ int[] ids = new int[] { 10111 };
|
|
|
+ Entity<BlobData> ents = snap.getBlobSnapshots(ids);
|
|
|
+ // for(int i = 0; i < ents.getList().size(); i++)
|
|
|
+ for (BlobData data : ents.getList()) {
|
|
|
+ byte[] blob = data.getBlob();
|
|
|
+ for (int j = 0; j < blob.length; j++) {
|
|
|
+
|
|
|
+ System.out.print(blob[j] + " ");
|
|
|
+ }
|
|
|
+ System.out.println(data.getError());
|
|
|
+ System.out.println();
|
|
|
+ }
|
|
|
+ // System.out.println(new String(blob,"gbk"));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 写入blob类型的快照
|
|
|
+ public static void putBlobSnapshot() throws Exception {
|
|
|
+ BlobData data = new BlobData();
|
|
|
+ data.setId(252);
|
|
|
+ String s = "zhong'gu";
|
|
|
+ byte[] bytes = s.getBytes();
|
|
|
+ data.setBlob(bytes);
|
|
|
+ data.setDatetime(new Date());
|
|
|
+ data.setQuality(Quality.GOOD);
|
|
|
+ boolean b = snap.putBlobSnapshot(data);
|
|
|
+ System.out.println(b);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 写入批量blob类型的快照
|
|
|
+ public static void putBlobSnapshots() throws Exception {
|
|
|
+ List<BlobData> datas = new ArrayList<BlobData>();
|
|
|
+ BlobData data = new BlobData();
|
|
|
+
|
|
|
+ data.setId(242);
|
|
|
+ String s = "中";
|
|
|
+ byte[] bytes = s.getBytes();
|
|
|
+ data.setBlob(bytes);
|
|
|
+ data.setDatetime(new Date());
|
|
|
+ data.setQuality(Quality.GOOD);
|
|
|
+ datas.add(data);
|
|
|
+ int result = snap.putBlobSnapshots(datas);
|
|
|
+ System.out.println(result);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 批量标签点快照改变的通知订阅
|
|
|
+ public static void subscribeSnapshots() throws Exception {
|
|
|
+ int[] ids = { 1 };
|
|
|
+ String[] str ={"test.f"};
|
|
|
+ snap.subscribeSnapshots(str, new RSDataChange() {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void run(RtdbData[] rtdbDatas) {
|
|
|
+ System.out.print(rtdbDatas.length + "条数据 ");
|
|
|
+ for (int i = 0; i < rtdbDatas.length; i++) {
|
|
|
+ System.out.print(" "+rtdbDatas[i].getValue() + " , ");
|
|
|
+ }
|
|
|
+ System.out.println(" end");
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // 取消标签点快照更改通知订阅
|
|
|
+ public static void cancelSubscribeSnapshots() throws Exception {
|
|
|
+
|
|
|
+ subscribeSnapshots();
|
|
|
+
|
|
|
+ Thread.sleep(5000);
|
|
|
+ snap.cancelSubscribeSnapshots();
|
|
|
+
|
|
|
+ subscribsnapshotsEx();
|
|
|
+ Thread.sleep(20000);
|
|
|
+ snap.cancelSubscribeSnapshots();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+}
|