Initial commit
This commit is contained in:
12
.gitignore
vendored
Executable file
12
.gitignore
vendored
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
# Node
|
||||||
|
node_modules
|
||||||
|
npm-debug.log
|
||||||
|
yarn-debug.log
|
||||||
|
yarn-error.log
|
||||||
|
pnpm-debug.log
|
||||||
|
coverage
|
||||||
|
dist
|
||||||
|
build
|
||||||
|
.env
|
||||||
|
.env.
|
||||||
|
.DS_Store
|
||||||
40
3DInput.js
Executable file
40
3DInput.js
Executable file
@@ -0,0 +1,40 @@
|
|||||||
|
const fs = require('fs');
|
||||||
|
const https = require('https');
|
||||||
|
const WebSocket = require('ws');
|
||||||
|
const url = require('url');
|
||||||
|
|
||||||
|
const httpsOptions = {
|
||||||
|
"enable": true,
|
||||||
|
'key': fs.readFileSync('https/localhost.key'),
|
||||||
|
'cert': fs.readFileSync('https/localhost.pem'),
|
||||||
|
"passphrase": "abcd"
|
||||||
|
}
|
||||||
|
|
||||||
|
server = https.createServer(httpsOptions, (req, res) => {
|
||||||
|
let parsedURL = url.parse(req.url, true);
|
||||||
|
let path = parsedURL.path.replace(/^\/+|\/+$/g,"");
|
||||||
|
if(path == ""){ path = "index.html"; }
|
||||||
|
|
||||||
|
|
||||||
|
let file = __dirname + "/public/" + path;
|
||||||
|
|
||||||
|
console.log("file : " + file);
|
||||||
|
fs.readFile(file, function(err, content){
|
||||||
|
if(err){
|
||||||
|
console.log("File Not found "+ file);
|
||||||
|
res.writeHead(404);
|
||||||
|
res.end();
|
||||||
|
} else {
|
||||||
|
res.setHeader('X-Content-Type-Option', 'nosniff');
|
||||||
|
//let mime = lookup(path);
|
||||||
|
let mime = "text/html"
|
||||||
|
res.writeHead(200,{'Content-type': mime});
|
||||||
|
res.end(content);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
server.listen(10010);
|
||||||
|
console.log("Connect to: https://localhost:10010")
|
||||||
|
|
||||||
2
CallCode.bat
Executable file
2
CallCode.bat
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
code .
|
||||||
|
exit
|
||||||
19
https/cert_abcd.cer
Executable file
19
https/cert_abcd.cer
Executable file
@@ -0,0 +1,19 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDGDCCAgCgAwIBAgIQIKm3TdMAErVIFuSUWmXD1TANBgkqhkiG9w0BAQsFADAU
|
||||||
|
MRIwEAYDVQQDDAlsb2NhbGhvc3QwHhcNMjIwNzI3MTMwMDUzWhcNMjMwNzI3MTMy
|
||||||
|
MDUzWjAUMRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IB
|
||||||
|
DwAwggEKAoIBAQC97MG8XIuUGoAskplE0qhMv5VyZ2Sgkp4vv8yLVP63VBvYPpg9
|
||||||
|
hi6w8HTCwhBIy2ZmUrztqQ7Ye8fFaWlowDnrTp10ewAiAWvpjxSyeJE7dfP1AQcb
|
||||||
|
x3/YgrOCvQfy/5Xtcnm1SC/9VtxutcePJMwvD6S/5dpkVeCUhVpPuagEGvzStMhk
|
||||||
|
ovMxxaTcEG++N+2CiEtBpe4xxmDs0mmZhhJgO5t6roYLZzy2Q3BSJ3FNHArOOD3R
|
||||||
|
hxh0aV9c4RHQUGSZVVUfwUORGDp5XMqlJjfSsnNncBDBex4byV9SBOkQ4mxKQa/c
|
||||||
|
LG2MQ1RjLSVXSZ3QFMDgWdw+FWIapiOCoMXJAgMBAAGjZjBkMA4GA1UdDwEB/wQE
|
||||||
|
AwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwFAYDVR0RBA0wC4IJ
|
||||||
|
bG9jYWxob3N0MB0GA1UdDgQWBBSju5UGtw9Kz49/xVHoT0XnTlKtkDANBgkqhkiG
|
||||||
|
9w0BAQsFAAOCAQEAlEqbYXNgVTBLedFNOZz97IxrlAckG+4FMzcXIWhY55GvqwtL
|
||||||
|
gwWGrjKqGkXLhMVDzWHPSKWYxDdU6WJcBux9yuOz//s1Pro59jRIJvcOivbpXLPI
|
||||||
|
SaFPnc/29UeEDoh22AGr/9sAhOX2CrVMmrbaaDcZ8UN/YnT1bwufKFQipK1sGSR+
|
||||||
|
U5ISZ+pUXJ75aJFEZujucpFT1Sl6GWRWiL7u1Zacmm8jGIdZwpDIynSYK821fJMR
|
||||||
|
lVDQ9kPBBmU+Ummei/8vc+tqm2/3voekgLxIwxdpykn3L4JMtOn83+sZ2HVoS3Bz
|
||||||
|
/5+6Gc6u5+d3wLeO23q/sOARprC3ytzGc5bQRw==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
BIN
https/cert_abcd.pfx
Executable file
BIN
https/cert_abcd.pfx
Executable file
Binary file not shown.
4
https/info.txt
Executable file
4
https/info.txt
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
abcd
|
||||||
|
|
||||||
|
|
||||||
|
SET OPENSSL_CONF="C:\Program Files (x86)\OpenSSL-Win32\bin\openssl.cfg"
|
||||||
27
https/key.pem
Executable file
27
https/key.pem
Executable file
@@ -0,0 +1,27 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEpAIBAAKCAQEArGn6Cbl+aqN8Fv0fW8IkDIHI3eF4mY6RdVIlJf9XD6amrUA4
|
||||||
|
fh3cyjriGKwT/KxB8B5czluo0kJ4ZDZvEDnfUkSdCXo2oCg6hBUfvcIA0X15rrn2
|
||||||
|
RdMZH8vtQ4P2ICrldpQS+A8ZnnnVnaGWql27sxygq6splqtXqhDBkuaA1x79mFlZ
|
||||||
|
6BRpELihDHpz0j67MgbRpQgauQSo5axPVYH4l7ZMhBX/u7USyfJyU+1aedNZ7Gtd
|
||||||
|
x5Hy4VytVYYO8y1/SaOAM6v/jo9C3rw8uEOvcs3+bK4+BrJBRGUzTRiQiBrx2mHx
|
||||||
|
BimZ0ZGtuLPVaU0EkFnXnBJnRtY/HaAMJghEQQIDAQABAoIBAQCptEpbZgxrdG2A
|
||||||
|
xzclfysycFDBLNwi8TR1cRyFkRYlnpgysaKpaEVZfKntNPsbWoYwjgI1T/0UsD6G
|
||||||
|
DRo2s3AALu8PVA8Oh2pJde1fPuTFTqcF957TTZxOMtBgAzSwpuhjVg5xwZMq7Kr5
|
||||||
|
VALTwB0viH8RWhE+b3qDN6kBKgcpNYc3/KEgW2Ernxt+UBY/iN5j80Q+cI87kr5U
|
||||||
|
uQ+bmGpDh0+uNpevinnfD06Dwle+eI1nDh+GjAfrdS7GU/PPFB78PTu5G1GOh6LB
|
||||||
|
debifPkBNs08890McHRspd3q59FPTyLcyetqhaBV1rrydkVwm1deN2uF0EImsxTX
|
||||||
|
E99mISYtAoGBANP1J8HB+iVAkJWtEA5z846oHkBbvFKSKuLugt2APa/Ma6ZP3TCA
|
||||||
|
aBomY7vXG0F+x7bnMQLOhsir18i4VCd0FXhqysjUowRGj241NwuTVEvttw5yjfSZ
|
||||||
|
aZuoGakEXRTbQytBxFtUdndY6FjgYnlD4qsZMXyCszx7punLbabdni/nAoGBANA9
|
||||||
|
V1jIai1/dWYwB1eokJekmTEJt2sgzoDChXZe2UbQY5Ai/00taPnKp7BN5qURUNth
|
||||||
|
KFf+ZiJloSwM0t9gbNKlkkdIJfIKAG/QDm5v6ekBdAOmctdBD2KUw/vYbFFAMJhw
|
||||||
|
KC2RuZF5YCLZKYkrgxLe11OpPawyXde6NcRbkYWXAoGBAJ8TZU0z6is/M8RB6MUQ
|
||||||
|
HQE6B8pBjythbDJ401quPp3MDBb75YPbO0Y0/bEileAn6HfLN6tlmR7OadrJDM+3
|
||||||
|
fc2sSJlFjTtOQaNy6OcVIbUCqdp7+zJSWUJrfSaukbVvgg/bAiWRVH/qCCd78CwW
|
||||||
|
2O2UsOFDroV8QB9Df/42YdyNAoGALYEKAkOhOBn/HHpoUFZsaka0lwupggZkOazI
|
||||||
|
H0qwrhHBf/C12zaOFu+a3yLWwMFc6uN7PmdACEovAwI2Xkui3BEEOwFgEVjwKX7M
|
||||||
|
eIOKGLmRkW6g77qu0vrxLKppWQPu2pC/pt2OMGTWhibwNaJFfS0m3ohACs3ixc5S
|
||||||
|
C3t6/DcCgYB7I6BfANEwd+KVEUYZXhjVvlXdQvyr+ZEQpxpwYFmC2WTxFjGuB5k0
|
||||||
|
IzGOAxfTnE4LdLYk/qLu51w64zLGqEdxETE8wLbnWxHO1tXDBmjqxMC+9C4onQ0V
|
||||||
|
OSN22zpjLTCv5TVRks2JfM3j5onBS1SqrHVd50DvV9E35CDl0/sUTg==
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
30
https/localhost.key
Executable file
30
https/localhost.key
Executable file
@@ -0,0 +1,30 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
Proc-Type: 4,ENCRYPTED
|
||||||
|
DEK-Info: AES-256-CBC,9FB898B8D313CB3A043B4F4E2F62C6D8
|
||||||
|
|
||||||
|
cg368RyYjMGTo9L8CtbSDMvzUisFai7fsWtrzegoGMrgYEsmkqI/NPDHO893tf7n
|
||||||
|
X4kXDqpWlYT9awry0yYDgYOyOVffBbh7+TfHEH2ZHC8dCNf7uF8OJlGbV3fVKZ92
|
||||||
|
yrNaHrrnHgVwb78SYrFpkKJLL42O7OAIC9yKfKv9TFJF+g5bntAqe/TNv1vL1Zmm
|
||||||
|
Y2Hlm9SaDgZhrn8dhUQ6uWq0pNVZ8NBcjzerAyEw8CSIa8y4pXU8dQHz0aMGqmW3
|
||||||
|
P9hgo8g9jI1U/V9WmacLuh6DDyWuT2qEqw+Qcp6WgXBV9eTVUMN+rmWxfFmL+hOn
|
||||||
|
fgSwFrQwNpI1V/WZlp5qL9UvzthJs7H5fK62pSfSN8ZRAWN2Yi4pOPQTOPY//h8t
|
||||||
|
q2x9f5YXrV+GOfDFeLAoUElENNh0zakjjNv5n/q1Pnw8RPouB9TWkJMEjGWbwxYb
|
||||||
|
vNt5z8QJXF9oB0wZgX6kcMpZST9Mi1+7AoWUrFWTeHmP55s2gv9lx+M1XvRkqtv1
|
||||||
|
Ddg5ANkCYf4chv2GLsn5nEae4aALIMq8XOa1BF7LkHQxuNTBNamfJwm4/U45+f1W
|
||||||
|
NaG+xHroPkgRRW8fklvpF8mJ0q8IbvrtapSWZQcxPnxmknJtZynJjqeiO22tbtmc
|
||||||
|
n1okJzNI6FvertxGDNY+QZfx6NZJ4sIXEhTw6dQce2x9vJPpA6VbMI+A39RJS4VO
|
||||||
|
LxWU+Zv2H1YTR0QjrT0of/sFOdMhUldyyTDdqTZd7Z1NIUDX1GW9pFua+29ntK04
|
||||||
|
QTwCis5feu/egSWctbCNAIf/YXi9IM5su1njY7H6G4wwcRFGU11O6I8TqM/8l3gm
|
||||||
|
5mYkTGJiBmEqbz3q+99XGbr+0K8YfB6x8eUlWZgmdw3cvKYRly+km1+kyJGB+pTc
|
||||||
|
2wNMN9oLHntcQV9NBgKtebuQQygfd4ZSVdheijIJQfpPFW0aDiKrnvvhcEixSTqn
|
||||||
|
6WTaEJhhA67GOWmtXLjLN3r0+nndvtL6N2UXP9FSZg6tCpn0k5jvJidKfGucBL7K
|
||||||
|
aoKP1yJ19ho4WjpJcAF1TyKgEbLb0rNHMr6AObLFQsVynbyPgA5FY5zTvUH5PZDd
|
||||||
|
oVyL8yYD2fQC2ghLdBxNLanlIh6gbintHCO2DEx8LY7itvjGthR5WdVCPbxK6L74
|
||||||
|
4FgXRBW9NXNh53O+6SBUT6dn064qVVBOsxqGhur15Bna5X8ULkRSHw3QMsv4e+9Q
|
||||||
|
kWyJ3r5jfHGMhdvNlU/gc6S4qaPFEBRAB3QUE7xDHjU9rrzXZzd+gcy7+pqFtRJz
|
||||||
|
pFQeVNuKYpwVqx1V+nAN+ZlIJim67JOuY9qGMeKwT4kVtujESgLG4eNmXyoxsT4Y
|
||||||
|
hwCmxzLr9eu0HpmcHVULTg1NhflaLSK1ThauawEhght2JmGgxsn3xTElx4adWUBI
|
||||||
|
4hb5MTCHy0NY6T3sDNOXeRSJoRb31rMA099CVTrF7xui9Bbzoj7q9DImh43S1h4d
|
||||||
|
nwQ/optM7GiMZlGqgHdEob6hBxXMfA1EfSnyN3KPxwsa0z9OoMio7Uu6+MZt+we7
|
||||||
|
Z9myzP2XSg/YsmtCvtvKKHuxdOun2byScwtagtGty/IXBkRsRz/E7sXNxOnJJVSS
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
22
https/localhost.pem
Executable file
22
https/localhost.pem
Executable file
@@ -0,0 +1,22 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDuzCCAqOgAwIBAgIJAOtJAMcSg7G5MA0GCSqGSIb3DQEBCwUAMHQxCzAJBgNV
|
||||||
|
BAYTAkNIMQswCQYDVQQIDAJaSDEPMA0GA1UEBwwGWnVyaWNoMQwwCgYDVQQKDAND
|
||||||
|
aEsxDzANBgNVBAsMBkRldkNoSzEMMAoGA1UEAwwDQ2hLMRowGAYJKoZIhvcNAQkB
|
||||||
|
FgtjaGtAYWJjZC5lZjAeFw0yMjA3MjcxNDI2MjNaFw0zMjA3MjQxNDI2MjNaMHQx
|
||||||
|
CzAJBgNVBAYTAkNIMQswCQYDVQQIDAJaSDEPMA0GA1UEBwwGWnVyaWNoMQwwCgYD
|
||||||
|
VQQKDANDaEsxDzANBgNVBAsMBkRldkNoSzEMMAoGA1UEAwwDQ2hLMRowGAYJKoZI
|
||||||
|
hvcNAQkBFgtjaGtAYWJjZC5lZjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
||||||
|
ggEBAOZS5yfFHiPN4AvGoAhTrJ+MqcuNdwr8a1oug3yjgfLUdpCSzYsHMyDwNkD1
|
||||||
|
acGX4csalo5qnqEzsG9Aj3v5zBPXbCDUb5AfCzEo+C5QkHsEEVFlLcAgh0haSiFo
|
||||||
|
J2ossXPIwptosv2jNUBAp25tk7CoI0yNgYk/WT0ZxwYlAPI1oOVlIdGSHoQfVLVr
|
||||||
|
1+xudxP4H2F/2ZoGvYE1FU3vHNDWumrIjpVC1YdKiB7TiMxL72etbhNIWj6ZMrgQ
|
||||||
|
h+ZhqUbN/crzoQT3gd5TK5gAWTEY34Hxhl9W/IDFxGrwyIct/YVdLOvPbqyWo+W/
|
||||||
|
1gGQzFlN85DUYCe2kPZfvIP15vcCAwEAAaNQME4wHQYDVR0OBBYEFMl+Cq5lqeN2
|
||||||
|
lf3mp7mPDk7AXT10MB8GA1UdIwQYMBaAFMl+Cq5lqeN2lf3mp7mPDk7AXT10MAwG
|
||||||
|
A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBADc8KDpE4zXb0Gag82Iueux+
|
||||||
|
RCOLNb6Rbt3Ltoi8TzlbHpBb9LMsplpuQt+RHUDBDKh+vs73y53Sne5Ro9jd3JV7
|
||||||
|
0eY+V3SJYk3sSzSkqPgxeJFHsXFkQz9Y9UqloW9jpULGJTBPavXa0P4QcZ/2dnys
|
||||||
|
LGmV+cZhg3i8wOeM+3Ny8ZJGRJi7xj2Zb7EjGfuDwwc9wrXxGA2l9bJHuqxnzdyi
|
||||||
|
L4ApXrZ8t6lABOD+XwgbY5DepO2av8KUcBnhA91Jc2DD/gZrHZyxHG2/vT662+Mc
|
||||||
|
VdCS92IIPjOTe3TxJZ+5NgRjlU0JlYHe+aRG2RZ+AmmWBc+5DB+58PaImpcwkt8=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
30
https/localhost2.key
Executable file
30
https/localhost2.key
Executable file
@@ -0,0 +1,30 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
Proc-Type: 4,ENCRYPTED
|
||||||
|
DEK-Info: AES-256-CBC,FD72C71993563663BEF543276EED15FD
|
||||||
|
|
||||||
|
wEVQsIkYWEzxiVHCKMN3W5XHtlLQS/bNioPUtNoc/CkECmh82pR7NYphEMBB2ZQj
|
||||||
|
yZSVd+nFKQ70nP8qMhLzOBHG6pYRS3/DqQ4kON4/VtF33VUzC8R5dnBf+VydCUCp
|
||||||
|
1CjS71BJbAr3kQZLFFNPeMesr9iy4hBpxmVcfBC+rZjWoxPCiUxgwf7C/Aq53MJl
|
||||||
|
MuvY1EZ5NhvFpqvj2ncbIrjRhrg6NBN2hhICEfiwAoVOlSNJ+cDaNsGy86I82+Yd
|
||||||
|
n8t02mZcCMn8OWQvT5u7OhhUGbsKlRtbDdsFmGzuWapaWhLB145IvDIP/K6AuR35
|
||||||
|
GTGBVcODdk+APtGYvhw0XqLV5tJXo1CfrKcFdsZtMzPT3VLCsvUTWJ0d+NcPqRpa
|
||||||
|
nON/89sULZfeTlsoWWrn6sZRCeGrP8diqqnrVKfPdH06zcty3gWnmRZM1ZYnRjuC
|
||||||
|
JKchULbSvMM0G9cY80+/PVydoIkXyrwl6hMGPmDFD3kosJbePrUoWZXH0yv0AVx+
|
||||||
|
tobGiWiFycYRlW0V5SVU8eBwmBAN+r7L3USLYsd7As9sulYvUsGrUpbWjImN/ADm
|
||||||
|
nHbwX7aclFLZblpnVWI9GBXm7NmWQcnD3U37+kzPDAK0BpqSCkYI8orEyTtRoMpL
|
||||||
|
4WE6D738uBjnKOVX5Zlx9RTyiFF5tO7EXOVD2YymtpsyzGNk00c6YR6qevWM7/Ga
|
||||||
|
tAHqbv3ER18XZjmWz0A2JjvDaDvFKHH5uXoNwTt/EIdObkguOc3YOPJWQbDz6WaQ
|
||||||
|
SpYvM+0Xm8wkjN+gfn93ZsNokHut2k54Zy1tjQcAxtqjy/qdNMRhH8SstJP5xLj4
|
||||||
|
DkI/UpNTs+ePw5tuvJoWvelTXhxnHnXvsIa7SuavL1mUmFcWvuOVsCKzij5H8xIt
|
||||||
|
htEmOL4GXT7oJ80Udj7t9Fu0V7GxFSvxiYJyFD/djJY0WTsPpZbp6HLOCuFTc/p6
|
||||||
|
IQFsyGaYiTbg4+ShFWeSQ5bJ7KlTMUcJfO4rFC/GQjtp1odaJO7e7P26RYCZoo5k
|
||||||
|
amBWXdP7FQL1cIEtdHp12jCUCbiStRNjE9yW1hQFxBFj4b9FoGvP32MWyHv2nZx8
|
||||||
|
xluy0sTHG6r/0Ir1kdSPZCd/1tE3mRikWt0rg/fT21tAYtxXIxUARCUS7utu+JfK
|
||||||
|
2/1uyNK+S4/LLsr1cxsJBbjScs+JLIMwB+OCDJE0J2x1X73W/37gEQ94MbQZD9cC
|
||||||
|
xyi/0nrJIfRoNmLWT4Xo/rbXnGWZkVubZDBPUaxHQzYrbdt+bQJyOjeWQs3snQsw
|
||||||
|
gr5rSvMaGaSikt000sCMFSzS8bqRpd0iDIw/m7t4qzax7DOUPqem9DWgr+2FfjrC
|
||||||
|
gtUD1A+jUm8iUeuCSio6Vyn+nPTWCTfKXTnsJPg3gjvMF3SrOFo4v2UB/ti/vhCy
|
||||||
|
0XEc81RZxvPE0cA8O+4k3hriBIk89Fza+RW5TntOmAV3gnwf5h5KHeA50D9Z1OOl
|
||||||
|
OfMPc/ie31H4BjrpwPs6cI3vZOtEJnw1FWaI6a/LE/dlcFj61A+6HkbBUtCBC4hN
|
||||||
|
YlFMKLfQJd6RSsR7RRwo1fFqIECNWbC5zr7ozNatDwK9ln6zGLQ2vFOd3k83g/P0
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
6
install.bat
Executable file
6
install.bat
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
npm install config
|
||||||
|
npm install os
|
||||||
|
npm install --save express
|
||||||
|
npm install wss
|
||||||
|
npm init
|
||||||
|
|
||||||
1132
package-lock.json
generated
Executable file
1132
package-lock.json
generated
Executable file
File diff suppressed because it is too large
Load Diff
15
package.json
Executable file
15
package.json
Executable file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"name": "roboticsdriver_webservicetest",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "WebService is provieded here",
|
||||||
|
"main": "3DInput.js",
|
||||||
|
"scripts": {
|
||||||
|
"start": "node 3DInput.js"
|
||||||
|
},
|
||||||
|
"author": "Ch Kendel",
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"express": "^4.18.2",
|
||||||
|
"wss": "^3.3.4"
|
||||||
|
}
|
||||||
|
}
|
||||||
110
public/GamePad.js
Executable file
110
public/GamePad.js
Executable file
@@ -0,0 +1,110 @@
|
|||||||
|
var isRunning = false;
|
||||||
|
var gamePadId = 0;
|
||||||
|
var gamepad = {};
|
||||||
|
|
||||||
|
let lastCheckTime = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function checkGamePad() {
|
||||||
|
if(isRunning == false){return;}
|
||||||
|
|
||||||
|
const stepSize = "0.01";
|
||||||
|
const stepSizeXYZ = "0.5"; // 3 ist auch ok
|
||||||
|
const stepSizeE = "0.01";
|
||||||
|
var gp = navigator.getGamepads()[gamePadId]
|
||||||
|
var buttons = gp.buttons
|
||||||
|
|
||||||
|
var xyzSpeed = 10; // 100 geht auch
|
||||||
|
|
||||||
|
var psi = gp.axes[0];
|
||||||
|
var z = gp.axes[1];
|
||||||
|
var x = gp.axes[2];
|
||||||
|
var y = gp.axes[3];
|
||||||
|
|
||||||
|
|
||||||
|
// Dreieck zum Dreieck-Setzen
|
||||||
|
if (buttons[3].pressed) {
|
||||||
|
socket.send(`G90 G1 X0 Y300 Z0 A${Math.PI/2} B${-1.0*Math.PI/2} C0 F${xyzSpeed}`);
|
||||||
|
}
|
||||||
|
if (buttons[4].pressed) {
|
||||||
|
//console.log("x=" + robot.x + " y=" + robot.y + " z=" + robot.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// X Button setzt eine Marke
|
||||||
|
if(buttons[0].pressed && (Date.now() - lastCheckTime > 500)){
|
||||||
|
lastCheckTime = Date.now()
|
||||||
|
console.log('FPoint!');
|
||||||
|
socket.send('FPoint');
|
||||||
|
socket.send('FShow');
|
||||||
|
}
|
||||||
|
|
||||||
|
// L1 und R1 Button to forward-backward in Point-List
|
||||||
|
if(gp.buttons[4].pressed && (Date.now() - lastCheckTime > 500)){
|
||||||
|
lastCheckTime = Date.now()
|
||||||
|
socket.send('FMinus');
|
||||||
|
socket.send('FShow');
|
||||||
|
}
|
||||||
|
if(gp.buttons[5].pressed && (Date.now() - lastCheckTime > 500)){
|
||||||
|
lastCheckTime = Date.now()
|
||||||
|
socket.send('FPlus');
|
||||||
|
socket.send('FShow');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (x < -0.2) { socket.send(`G91 G1 X+${stepSizeXYZ} F${xyzSpeed}`);}
|
||||||
|
if (x > 0.2) { socket.send(`G91 G1 X-${stepSizeXYZ} F${xyzSpeed}`);}
|
||||||
|
|
||||||
|
if (y < -0.2) { socket.send(`G91 G1 Y${stepSizeXYZ} F${xyzSpeed}`); }
|
||||||
|
if (y > 0.2) { socket.send(`G91 G1 Y-${stepSizeXYZ} F${xyzSpeed}`);}
|
||||||
|
|
||||||
|
if (z < -0.2) { socket.send(`G91 G1 Z${stepSizeXYZ} F${xyzSpeed}`); }
|
||||||
|
if (z > 0.2) { socket.send(`G91 G1 Z-${stepSizeXYZ} F${xyzSpeed}`); }
|
||||||
|
|
||||||
|
|
||||||
|
// Greif-Richtung
|
||||||
|
// LeftRight
|
||||||
|
if(buttons[14].pressed){ socket.send(`G91 G1 A${stepSize} F${xyzSpeed}`);}
|
||||||
|
if(buttons[15].pressed){ socket.send(`G91 G1 A-${stepSize} F${xyzSpeed}`);}
|
||||||
|
// Up - Down
|
||||||
|
if(buttons[12].pressed){ socket.send(`G91 G1 B${stepSize} F${xyzSpeed}`);}
|
||||||
|
if(buttons[13].pressed){ socket.send(`G91 G1 B-${stepSize} F${xyzSpeed}`);}
|
||||||
|
// Drehung
|
||||||
|
if (psi < -0.2) { socket.send(`G91 G1 C${stepSize} F${xyzSpeed}`); }
|
||||||
|
if (psi > 0.2) { socket.send(`G91 G1 C-${stepSize} F${xyzSpeed}`); }
|
||||||
|
|
||||||
|
// Trigger-Buttons für Öffnen und Schliessen
|
||||||
|
if(buttons[6].pressed){socket.send(`G91 G1 E-${stepSizeE} F${xyzSpeed}`);}
|
||||||
|
if(buttons[7].pressed){socket.send(`G91 G1 E${stepSizeE} F${xyzSpeed}`);}
|
||||||
|
|
||||||
|
if (isRunning) { setTimeout(checkGamePad, 15);}
|
||||||
|
}
|
||||||
|
|
||||||
|
function gamepadHandler(event, connecting) {
|
||||||
|
|
||||||
|
gamepad = event.gamepad;
|
||||||
|
if (typeof gamepad === `undefined`) {
|
||||||
|
isRunning = false;
|
||||||
|
gamePadId = 0;
|
||||||
|
console.warn("GamePad kann nicht gefunden werden");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (connecting) {
|
||||||
|
console.log("GamePad " + event.gamepad.index + " connected");
|
||||||
|
gamePadId = gamepad.index;
|
||||||
|
isRunning = true;
|
||||||
|
setTimeout(checkGamePad, 20);
|
||||||
|
} else {
|
||||||
|
console.log("GamePad " +gamePadId +" disconnected");
|
||||||
|
isRunning = false;
|
||||||
|
gamePadId = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
window.addEventListener("gamepadconnected", function (e) { gamepadHandler(e, true); }, false);
|
||||||
|
window.addEventListener("gamepaddisconnected", function (e) { gamepadHandler(e, false); }, false);
|
||||||
|
|
||||||
|
document.addEventListener("touchstart", e => { console.log("TouchStart"); })
|
||||||
66
public/KeyboardInput.js
Executable file
66
public/KeyboardInput.js
Executable file
@@ -0,0 +1,66 @@
|
|||||||
|
document.onkeydown = checkKey;
|
||||||
|
|
||||||
|
function checkKey(e) {
|
||||||
|
|
||||||
|
e = e || window.event;
|
||||||
|
|
||||||
|
if(e.key == 'a' || e.key == 'A')
|
||||||
|
{
|
||||||
|
console.log("back to A position");
|
||||||
|
socket.send(`G90 G1 X0 Y300 Z0 A${Math.PI/2} B-${Math.PI/2} C0 F100`);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hand-Winkel (Eulerwinkel)
|
||||||
|
else if(e.key == 'i' || e.key == 'I'){
|
||||||
|
socket.send('G91 G1 B+0.1 F100');
|
||||||
|
}
|
||||||
|
else if(e.key == 'k' || e.key == 'K'){
|
||||||
|
socket.send('G91 G1 B-0.1 F100');
|
||||||
|
}
|
||||||
|
else if(e.key == 'l' || e.key == 'L'){
|
||||||
|
socket.send('G91 G1 A+0.1 F100');
|
||||||
|
}
|
||||||
|
else if(e.key == 'j' || e.key == 'J'){
|
||||||
|
socket.send('G91 G1 A-0.1 F100');
|
||||||
|
}
|
||||||
|
else if(e.key == 'o' || e.key == 'O'){
|
||||||
|
socket.send('G91 G1 C+0.1 F100');
|
||||||
|
}
|
||||||
|
else if(e.key == 'u' || e.key == 'U'){
|
||||||
|
socket.send('G91 G1 C-0.1 F100');
|
||||||
|
}
|
||||||
|
|
||||||
|
// XYZ Koordinaten
|
||||||
|
else if(e.key == 'e' || e.key == 'E'){
|
||||||
|
socket.send('G91 G1 Z+5 F100');
|
||||||
|
}
|
||||||
|
else if(e.key == 'd' || e.key == 'D'){
|
||||||
|
socket.send('G91 G1 Z-5 F100');
|
||||||
|
}
|
||||||
|
else if(e.key == 's' || e.key == 'S'){
|
||||||
|
socket.send('G91 G1 X5 F100');
|
||||||
|
}
|
||||||
|
else if(e.key == 'f' || e.key == 'S'){
|
||||||
|
socket.send('G91 G1 X-5 F100');
|
||||||
|
}
|
||||||
|
else if(e.key == 'r' || e.key == 'R'){
|
||||||
|
socket.send('G91 G1 Y5 F100');
|
||||||
|
}
|
||||||
|
else if(e.key == 'w' || e.key == 'W'){
|
||||||
|
socket.send('G91 G1 Y-5 F100');
|
||||||
|
}
|
||||||
|
|
||||||
|
// File & Log-Operations
|
||||||
|
else if(e.key == ' '){
|
||||||
|
console.log('FPoint!')
|
||||||
|
socket.send('FPoint');
|
||||||
|
}
|
||||||
|
else if(e.key == 'b'){
|
||||||
|
socket.send('FMinus');
|
||||||
|
}
|
||||||
|
else if(e.key == 'n'){
|
||||||
|
socket.send('FPlus');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
34
public/WebService.js
Executable file
34
public/WebService.js
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
var startTime = Date.now() ;
|
||||||
|
console.log("Meine Document-Location: " + document.location);
|
||||||
|
var lastPingRequest;
|
||||||
|
|
||||||
|
//var socket = new WebSocket(String(document.location).replace("https://","wss://").replace("10010","2095").replace("index.html","") + "echo");
|
||||||
|
var socket = new WebSocket("wss://thinkcentre.local:2095/echo");
|
||||||
|
socket.onopen = () => console.log('Connected') || setInterval(() => { lastPingRequest = Date.now();
|
||||||
|
socket.send("Ping");
|
||||||
|
}, 5000);
|
||||||
|
socket.onclose = (event) => console.log((event.wasClean) ? 'Disconnected' : 'Connection break: ' + (event.reason || event.code));
|
||||||
|
|
||||||
|
socket.onmessage = (event) => {
|
||||||
|
if(event.data == "Ping"){
|
||||||
|
console.log("Ping: " + (Date.now() - lastPingRequest).toString() + " ms");
|
||||||
|
}
|
||||||
|
else if(event.data.toString().includes("position")){
|
||||||
|
console.log("Position: " + event.data);
|
||||||
|
}
|
||||||
|
else if(event.data.toString().includes("XYZ__FShow__XYZ")){
|
||||||
|
const content = event.data.toString().split("XYZ__FShow__XYZ")[1];
|
||||||
|
console.log("File Content: " + content);
|
||||||
|
console.log(document.getElementById("GCodeWindow"))
|
||||||
|
|
||||||
|
console.log(document.querySelectorAll("textarea#GCodeWindow.editor-look")[0]);
|
||||||
|
|
||||||
|
document.querySelectorAll("textarea#GCodeWindow.editor-look")[0].value = content;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
console.log('DATA SinceStartup: ' + (Date.now() - startTime).toString() +': ', event.data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
socket.onerror = (err) => console.error(err.message);
|
||||||
|
|
||||||
|
|
||||||
BIN
public/favicon.ico
Executable file
BIN
public/favicon.ico
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
73
public/index.html
Executable file
73
public/index.html
Executable file
@@ -0,0 +1,73 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||||
|
<script src="WebService.js" defer></script>
|
||||||
|
<script src="KeyboardInput.js" defer></script>
|
||||||
|
<script src="GamePad.js" defer></script>
|
||||||
|
<script defer>
|
||||||
|
setTimeout(() => {
|
||||||
|
socket.send('FShow');
|
||||||
|
}, 100);
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
#GCodeWindow{
|
||||||
|
width: 100%;
|
||||||
|
height: 220px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="topMain">
|
||||||
|
<h1>Send Keyboard <br/> & Gamepad Data</h1>
|
||||||
|
<button onclick="socket.send('G91 G1 Z10 F100');">Up</button>
|
||||||
|
<button onclick="socket.send('G91 G1 Z-10 F100');">Down</button>
|
||||||
|
</br/>
|
||||||
|
<button onclick="socket.send('G91 G1 X10 F100');">Right</button>
|
||||||
|
<button onclick="socket.send('G91 G1 X-10 F100');">Left</button>
|
||||||
|
<br/>
|
||||||
|
<button onclick="socket.send('G91 G1 Y10 F100');">Forward</button>
|
||||||
|
<button onclick="socket.send('G91 G1 Y-10 F100');">Backward</button>
|
||||||
|
<br/>
|
||||||
|
<button onclick="socket.send('M114');">Info</button>
|
||||||
|
<button onclick="socket.send('G28');">Null</button>
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
<button onclick="socket.send('G91 G1 A0.1 F100');">a+</button>
|
||||||
|
<button onclick="socket.send('G91 G1 A-0.1 F100');">a-</button>
|
||||||
|
<br/>
|
||||||
|
<button onclick="socket.send('G91 G1 B0.1 F100');">B+</button>
|
||||||
|
<button onclick="socket.send('G91 G1 B-0.1 F100');">B-</button>
|
||||||
|
<br/>
|
||||||
|
<button onclick="socket.send('G91 G1 C0.1 F100');">C+</button>
|
||||||
|
<button onclick="socket.send('G91 G1 C-0.1 F100');">C-</button>
|
||||||
|
</div>
|
||||||
|
<br/>
|
||||||
|
<button onclick="socket.send('G91 G1 E0.1 F100');">E+</button>
|
||||||
|
<button onclick="socket.send('G91 G1 E-0.1 F100');">E-</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
<div id="GCode">
|
||||||
|
<form><a>Motor Koordinaten (GCode) </a><input id="GMotor"/></form><button onclick="socket.send(GMotor.value.replace('G1','M1'));">Send</button>
|
||||||
|
<br/>
|
||||||
|
<form><a>Karthesische Koordinaten (GCode) </a><input id="GKarth"/></form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="divGCodeWindow">
|
||||||
|
<button onclick="socket.send('FShow');">ListFile</button>
|
||||||
|
<br/>
|
||||||
|
<textarea id="GCodeWindow" class="editor-look" readonly>
|
||||||
|
|
||||||
|
</textarea>
|
||||||
|
<br/>
|
||||||
|
<button onclick="console.log('FPoint!'); socket.send('FPoint');socket.send('FShow');">Point</button>
|
||||||
|
<button onclick="console.log('⇩'); socket.send('FPlus');socket.send('FShow');">⇩</button>
|
||||||
|
<button onclick="console.log('⇧'); socket.send('FMinus');socket.send('FShow');">⇧</button>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
4
public/style.css
Executable file
4
public/style.css
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#GCodeWindow{
|
||||||
|
width: 100%;
|
||||||
|
height: 220px;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user