我是Node的新手,我正在尝试使用Clover提供的API通过websocket连接到Clover Mini设备.
我已经尝试修改下面的示例代码以仅使用节点工作,但是当我在节点中打开它时没有任何反应.(没有错误,根本没有任何事情发生)
它在Chrome中工作得很好,所以缺少什么?
https://github.com/clover/remote-pay-cloud
var $ = require('jQuery');
var clover = require("remote-pay-cloud");
var log = clover.Logger.create();
var connector = new clover.CloverConnectorFactory().createICloverConnector({
"oauthToken": "1e7a9007-141a-293d-f41d-f603f0842139",
"merchantId": "BBFF8NBCXEMDV",
"clientId": "3RPTN642FHXTX",
"remoteApplicationId": "com.yourname.yourapplication:1.0.0-beta1",
"deviceSerialId": "C031UQ52340015",
"domain": "https://sandbox.dev.clover.com/"
});
var ExampleCloverConnectorListener = function(cloverConnector) {
clover.remotepay.ICloverConnectorListener.call(this);
this.cloverConnector = cloverConnector;
};
ExampleCloverConnectorListener.prototype = Object.create(clover.remotepay.ICloverConnectorListener.prototype);
ExampleCloverConnectorListener.prototype.constructor = ExampleCloverConnectorListener;
ExampleCloverConnectorListener.prototype.onReady = function (merchantInfo) {
var saleRequest = new clover.remotepay.SaleRequest();
saleRequest.setExternalId(clover.CloverID.getNewId());
saleRequest.setAmount(10000);
this.cloverConnector.sale(saleRequest);
};
ExampleCloverConnectorListener.prototype.onVerifySignatureRequest = function (request) {
log.info(request);
this.cloverConnector.acceptSignature(request);
};
ExampleCloverConnectorListener.prototype.onConfirmPaymentRequest = function (request) {
this.cloverConnector.acceptPayment(request.payment);
}; …Run Code Online (Sandbox Code Playgroud) 我正在开发一个程序,该程序从图表中读取数据并以特定频率播放值,该频率已被标准化以显示数据点之间的差异。
在测试中,我发现“可接受”的声音范围介于 200 到 ~3800 之间,因为频率范围不会太高或太低而无法使用。这意味着我需要将所有数据转换为该数字范围。鉴于这些指导方针,这里有一个解决方案。
function normalize(enteredValue, minEntry, maxEntry, normalizedMin, normalizedMax) {
var mx = (enteredValue-minEntry)/(maxEntry-minEntry);
var preshiftNormalized = mx*(normalizedMax-normalizedMin);
var shiftedNormalized = preshiftNormalized + normalizedMin;
return shiftedNormalized;
}
Run Code Online (Sandbox Code Playgroud)
这有效,但在某些情况下会带来一个小问题。如果用户在同一个数据集中有一个非常小的值和一个非常大的值。
简单示例:A 公司的利润为 1 美元,B 公司的利润为 10 亿美元,如果公司 C 和 D 等的利润与边缘情况相距甚远,就不会有问题。但是,假设 C 公司的利润为 5000 万美元。这大大超过 1 美元,远低于 10 亿美元,不会有太大问题。但是,如果 D 的利润为 2 万美元,那么我们可能会遇到问题。
归一化后的数字是这样的(使用 3800 作为最大值,使用 200 作为最小值):
1 = 200.0000036
20000 = 200.072
5000 万 = 380
10 亿 = 3800
在这里,我们可以看到明显的问题。如果我们使用上面的函数将声音归一化到所需的频率范围,那么具有巨大数据差异的大型数据集可能会扭曲对图形上所表示内容的感知。由于归一化如何将较大的数据压缩到较小的数字范围内,因此只有当最大和最小数字相距很远时才会出现问题。
两种可能的解决方案:
设置用户可以在数据集中拥有的最大数量。这是一个简单的解决方法,但在自动解析 csv 文件中的数据时,它会限制程序的功能,因为任何超过上限的内容只会播放最高频率。
第二个解决方案很复杂,我还不确定如何去做,这就是我希望从您或其他人那里得到的启发,为我指明正确的方向。我认为使用某种对数缩放使较大的数据不那么重要将是一个很好的解决方案。我的意思是类似于这里的图表:
原谅我糟糕的绘画技巧,但你能明白我的意思。随着数字变大,它们变得越来越不重要。这不是数字之间的关系,但我认为人类对大数字的感知已经很模糊,所以让大数字听起来比小数字更接近更好。(例如 …
假设我有一个System.currentTimeMillis()值作为long数字.
如何修改它以匹配最后一分钟开始的瞬间?即,零秒和毫秒.
我宁愿不使用魔法常量.使用java.time很好.
我正试图找到一种方法来根据从excel导入的自定义用户数据调整音调的音高.
self.changePitch(30 + (parseInt(self.infoCollection.collection[j].array[i])-200/(3600)));
Run Code Online (Sandbox Code Playgroud)
上述代码适用于"正常值",最高可达5,000.但是,我想将它们标准化,使其始终介于最小和最大频率之间.(200和3800)
我已经尝试使用这里找到的公式:https:
//stats.stackexchange.com/questions/70801/how-to-normalize-data-to-0-1-range
说哪个使用(x-minval)/(maxval-minval)
但是,这不起作用对于所有情况.使用非常大的数字时.IE 5000万还会超过最高频率.
我试图找到一种方法,这将使任何有理数的数字正常化到数亿.
编辑:抱歉混乱.我正在创建一个基于图表上的数据播放声音的应用程序.目的是允许具有视觉障碍的用户使用声音更好地理解数据以获得彼此相对的值.我的问题是人类无法听到超过一定数量的频率,所以如果有超过5000左右的值,应用程序将不会播放该数字的任何声音.
示例:A公司的利润为200美元,B公司的利润为5000万美元.用户会听到公司A的声音,但不能听到公司B的声音,因为频率超出人类听觉范围.
我正在制作一个运行一些 cmd 命令(USMT 和文件传输)的程序
它工作正常,但我只在文本框中从 cmd 中获取最后一行,并且只有在它完成操作后才获取。我希望它实时打印 cmd 输出的内容。
public void load() throws IOException {
ProcessBuilder builder = new ProcessBuilder(
"cmd.exe", "/c", "cd \"C:\\usmt\" && loadstate.bat");
builder.redirectErrorStream(true);
Process p = builder.start();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while (true) {
line = r.readLine();
if (line == null) { break; }
cOut.setText(line);
System.out.println(line);
}
}
Run Code Online (Sandbox Code Playgroud) 我生成1000和11000之间的随机整数.但它们必须具有6000的平均值.我昨天在我的程序中使用了这段代码并且它运行得很好,但现在它给了我很大的数字,好像我的间隔没有物.
编辑:将代码删除一点以便于阅读.
srand(time(NULL));
int k = 5;
int cTotal = 0;
int cAverage = 0;
struct process {
int pid; // process id
int cycles; // number of cycles required to complete the process
int mSize; // size of the memory footprint
};
for (int i = 0; i < k; i++) {
processes[i].pid = i; // set the unique identifier of the process.
// If statements for determining the number cycles in each process
if (k == 0) { …Run Code Online (Sandbox Code Playgroud)