Ruptela Eco4+ Device Docs not available - gps

I am using Ruptela Device for GPS tracking. It is working fine and i am getting data from device to server in form of hexadecimal as follows:
03d30003106796f910bb01011659ae6f4100002e0f9f6711028ac208db00000500001307030500b0000200021d35bb160010
014d000000000059ae6f4200002e0f9f6711028ac208db00000500001305030501b0000200021d35c6160016014d000000000059ae6f4a00002e0f9f6711028ac208db0000050000130703
0501b0000200021d35b7160010014d000000000059ae6f5400002e0f9f6711028ac208db00000500001307030501b0000200021d35be160010014d000000000059ae6f5e00002e0f9f7811
028ac208de00000500001307030501b0000200021d3562160010014d000000000059ae6f6800002e0fa08211028a9008b5805c0500001307030501b0010200021d3603160010014d000000
020059ae6f7200002e0fa01e11028ad308d3805c0500001307030501b0000200021d35df16000f014d000000000059ae6f7c00002e0f9ffd11028bcd08d3805c0500001307030501b00002
00021d35e9160010014d000000000059ae6f8600002e0f9f6711028b5808ca600e0600000c07030501b0010200021d35a8160010014d000000000059ae6f9000002e0f9e8e11028a1c08bc
60c20600000c07030501b0000200021d35b1160010014d000000010059ae6f9a00002e0f9e3b110289ea08c4639c0600000c07030501b0000200021d3577160010014d000000010059ae6f
a400002e0f9dc6110289b808bc58ac0600021307030501b0000200021d3597160010014d000000000059ae6fae00002e0f9dd7110289fa08a9541a0700000b07030501b0000200021d35ba
160010014d000000000059ae6fb800002e0f9db611028a2c08a07ddc0700000b07030501b0000200021d35b1160010014d000000000059ae6fc200002e0f9d7311028a80089f533e070000
0b07030501b0000200021d35bd160010014d000000020059ae6fcc00002e0f9c9a11028986089162e80600001307030501b0000200021d35c0160010014d000000020059ae6fd600002e0f
9c791102888c088762e80700000b07030501b0000200021d35c5160010014d000000000059ae6fe000002e0f9cbc110288f0088d62e80700000b07030501b0000200021d353b16000e014d
000000000059ae6fea00002e0f9cee11028954088c62e80700000b07030501b0000200021d3591160010014d000000000059ae6ff400002e0f9cbc11028975088b62e80700000b07030501
b0000200021d35bc160010014d000000000059ae6ffe00002e0f9c4711028996088d62e80700000b07030501b0000200021d35ad16000d014d000000000059ae700800002e0f9cfe11028a
5e088d62e80800000b07030501b0000200021d35a4160010014d0000000000eb34
Now the main issue is How to decode this data,
Is there some docs to decode the Data into human readable form.

I hope I am not too late with the answer.
Recently, I've developed a Node.js module that will translate this data of yours into a readable JS object. You can install the package via npm, using the following command:
npm i --save ruptela
For more details, see the package: https://www.npmjs.com/package/ruptela
Here is your data as JS object:
{
data: {
packet_length: 979,
imei: 862462030713019,
command_id: 1,
payload: {
records_left: 1,
records_total: 22,
records: [{
timestamp: 1504603969,
timestamp_extension: 0,
priority: 0,
longitude: 772775783,
latitude: 285379266,
altitude: 2267,
angle: 0,
satellites: 5,
speed: 0,
hdop: 19,
event_id: 7,
io: {
'2': 0,
'5': 0,
'22': 16,
'29': 13755,
'77': 0,
'176': 0
}
},
{
timestamp: 1504603970,
timestamp_extension: 0,
priority: 0,
longitude: 772775783,
latitude: 285379266,
altitude: 2267,
angle: 0,
satellites: 5,
speed: 0,
hdop: 19,
event_id: 5,
io: {
'2': 0,
'5': 1,
'22': 22,
'29': 13766,
'77': 0,
'176': 0
}
},
{
timestamp: 1504603978,
timestamp_extension: 0,
priority: 0,
longitude: 772775783,
latitude: 285379266,
altitude: 2267,
angle: 0,
satellites: 5,
speed: 0,
hdop: 19,
event_id: 7,
io: {
'2': 0,
'5': 1,
'22': 16,
'29': 13751,
'77': 0,
'176': 0
}
},
{
timestamp: 1504603988,
timestamp_extension: 0,
priority: 0,
longitude: 772775783,
latitude: 285379266,
altitude: 2267,
angle: 0,
satellites: 5,
speed: 0,
hdop: 19,
event_id: 7,
io: {
'2': 0,
'5': 1,
'22': 16,
'29': 13758,
'77': 0,
'176': 0
}
},
{
timestamp: 1504603998,
timestamp_extension: 0,
priority: 0,
longitude: 772775800,
latitude: 285379266,
altitude: 2270,
angle: 0,
satellites: 5,
speed: 0,
hdop: 19,
event_id: 7,
io: {
'2': 0,
'5': 1,
'22': 16,
'29': 13666,
'77': 0,
'176': 0
}
},
{
timestamp: 1504604008,
timestamp_extension: 0,
priority: 0,
longitude: 772776066,
latitude: 285379216,
altitude: 2229,
angle: 32860,
satellites: 5,
speed: 0,
hdop: 19,
event_id: 7,
io: {
'2': 0,
'5': 1,
'22': 16,
'29': 13827,
'77': 2,
'176': 1
}
},
{
timestamp: 1504604018,
timestamp_extension: 0,
priority: 0,
longitude: 772775966,
latitude: 285379283,
altitude: 2259,
angle: 32860,
satellites: 5,
speed: 0,
hdop: 19,
event_id: 7,
io: {
'2': 0,
'5': 1,
'22': 15,
'29': 13791,
'77': 0,
'176': 0
}
},
{
timestamp: 1504604028,
timestamp_extension: 0,
priority: 0,
longitude: 772775933,
latitude: 285379533,
altitude: 2259,
angle: 32860,
satellites: 5,
speed: 0,
hdop: 19,
event_id: 7,
io: {
'2': 0,
'5': 1,
'22': 16,
'29': 13801,
'77': 0,
'176': 0
}
},
{
timestamp: 1504604038,
timestamp_extension: 0,
priority: 0,
longitude: 772775783,
latitude: 285379416,
altitude: 2250,
angle: 24590,
satellites: 6,
speed: 0,
hdop: 12,
event_id: 7,
io: {
'2': 0,
'5': 1,
'22': 16,
'29': 13736,
'77': 0,
'176': 1
}
},
{
timestamp: 1504604048,
timestamp_extension: 0,
priority: 0,
longitude: 772775566,
latitude: 285379100,
altitude: 2236,
angle: 24770,
satellites: 6,
speed: 0,
hdop: 12,
event_id: 7,
io: {
'2': 0,
'5': 1,
'22': 16,
'29': 13745,
'77': 1,
'176': 0
}
},
{
timestamp: 1504604058,
timestamp_extension: 0,
priority: 0,
longitude: 772775483,
latitude: 285379050,
altitude: 2244,
angle: 25500,
satellites: 6,
speed: 0,
hdop: 12,
event_id: 7,
io: {
'2': 0,
'5': 1,
'22': 16,
'29': 13687,
'77': 1,
'176': 0
}
},
{
timestamp: 1504604068,
timestamp_extension: 0,
priority: 0,
longitude: 772775366,
latitude: 285379000,
altitude: 2236,
angle: 22700,
satellites: 6,
speed: 2,
hdop: 19,
event_id: 7,
io: {
'2': 0,
'5': 1,
'22': 16,
'29': 13719,
'77': 0,
'176': 0
}
},
{
timestamp: 1504604078,
timestamp_extension: 0,
priority: 0,
longitude: 772775383,
latitude: 285379066,
altitude: 2217,
angle: 21530,
satellites: 7,
speed: 0,
hdop: 11,
event_id: 7,
io: {
'2': 0,
'5': 1,
'22': 16,
'29': 13754,
'77': 0,
'176': 0
}
},
{
timestamp: 1504604088,
timestamp_extension: 0,
priority: 0,
longitude: 772775350,
latitude: 285379116,
altitude: 2208,
angle: 32220,
satellites: 7,
speed: 0,
hdop: 11,
event_id: 7,
io: {
'2': 0,
'5': 1,
'22': 16,
'29': 13745,
'77': 0,
'176': 0
}
},
{
timestamp: 1504604098,
timestamp_extension: 0,
priority: 0,
longitude: 772775283,
latitude: 285379200,
altitude: 2207,
angle: 21310,
satellites: 7,
speed: 0,
hdop: 11,
event_id: 7,
io: {
'2': 0,
'5': 1,
'22': 16,
'29': 13757,
'77': 2,
'176': 0
}
},
{
timestamp: 1504604108,
timestamp_extension: 0,
priority: 0,
longitude: 772775066,
latitude: 285378950,
altitude: 2193,
angle: 25320,
satellites: 6,
speed: 0,
hdop: 19,
event_id: 7,
io: {
'2': 0,
'5': 1,
'22': 16,
'29': 13760,
'77': 2,
'176': 0
}
},
{
timestamp: 1504604118,
timestamp_extension: 0,
priority: 0,
longitude: 772775033,
latitude: 285378700,
altitude: 2183,
angle: 25320,
satellites: 7,
speed: 0,
hdop: 11,
event_id: 7,
io: {
'2': 0,
'5': 1,
'22': 16,
'29': 13765,
'77': 0,
'176': 0
}
},
{
timestamp: 1504604128,
timestamp_extension: 0,
priority: 0,
longitude: 772775100,
latitude: 285378800,
altitude: 2189,
angle: 25320,
satellites: 7,
speed: 0,
hdop: 11,
event_id: 7,
io: {
'2': 0,
'5': 1,
'22': 14,
'29': 13627,
'77': 0,
'176': 0
}
},
{
timestamp: 1504604138,
timestamp_extension: 0,
priority: 0,
longitude: 772775150,
latitude: 285378900,
altitude: 2188,
angle: 25320,
satellites: 7,
speed: 0,
hdop: 11,
event_id: 7,
io: {
'2': 0,
'5': 1,
'22': 16,
'29': 13713,
'77': 0,
'176': 0
}
},
{
timestamp: 1504604148,
timestamp_extension: 0,
priority: 0,
longitude: 772775100,
latitude: 285378933,
altitude: 2187,
angle: 25320,
satellites: 7,
speed: 0,
hdop: 11,
event_id: 7,
io: {
'2': 0,
'5': 1,
'22': 16,
'29': 13756,
'77': 0,
'176': 0
}
},
{
timestamp: 1504604158,
timestamp_extension: 0,
priority: 0,
longitude: 772774983,
latitude: 285378966,
altitude: 2189,
angle: 25320,
satellites: 7,
speed: 0,
hdop: 11,
event_id: 7,
io: {
'2': 0,
'5': 1,
'22': 13,
'29': 13741,
'77': 0,
'176': 0
}
},
{
timestamp: 1504604168,
timestamp_extension: 0,
priority: 0,
longitude: 772775166,
latitude: 285379166,
altitude: 2189,
angle: 25320,
satellites: 8,
speed: 0,
hdop: 11,
event_id: 7,
io: {
'2': 0,
'5': 1,
'22': 16,
'29': 13732,
'77': 0,
'176': 0
}
}
]
},
crc: 60212
},
ack: < Buffer 00 02 64 01 13 bc >
}

Related

Game marker in a data table - vue and vuetify

I have two objects with arrays where one assembles the headers of the data table and another where it brings the status information, managing to obtain the games of the teams of these objects in vue but in all cases I have failed
new Vue({
el: '#app',
data: {
headers: {
"1": { "7": [9, 21, 44, 45, 7], "9": [21, 44, 7, 45, 9], "21": [44, 45, 7, 9, 21], "44": [7, 45, 9, 21, 44], "45": [7, 9, 21, 44, 45], "JJ": true, "JG": true, "JP": true, "SF": true, "EQUIPO": true, "SC": true, "PF": true, "PC": true, "Pnts": true, "Sets": true, "Lugar": true },
"2": { "13": [17, 18, 20, 46, 13], "17": [20, 46, 13, 18, 17], "18": [17, 20, 13, 46, 18], "20": [13, 46, 17, 18, 20], "46": [13, 18, 17, 20, 46], "JJ": true, "JG": true, "JP": true, "SF": true, "EQUIPO": true, "SC": true, "PF": true, "PC": true, "Pnts": true, "Sets": true, "Lugar": true },
"3": { "8": [31, 40, 42, 49, 8], "31": [40, 49, 8, 42, 31], "40": [42, 49, 8, 31, 40], "42": [8, 31, 40, 49, 42], "49": [8, 42, 31, 40, 49], "JJ": true, "JG": true, "JP": true, "SF": true, "EQUIPO": true, "SC": true, "PF": true, "PC": true, "Pnts": true, "Sets": true, "Lugar": true }
},
games: {
"1": [{
"7": { "set2_1": 2, "set1_1": 25, "set2_2": 19, "set1_2": 25, "set2_3": 0, "set1_3": 0 },
"9": [],
"21": { "set1_1": 25, "set2_1": 17, "set1_2": 25, "set2_2": 15, "set1_3": 0, "set2_3": 0 },
"44": { "set1_1": 25, "set2_1": 2, "set1_2": 25, "set2_2": 19, "set1_3": 0, "set2_3": 0 },
"45": { "set2_1": 2, "set1_1": 25, "set2_2": 19, "set1_2": 25, "set2_3": 0, "set1_3": 0 },
"team_id": 9,
"g": 1,
"team": { "name": "Equipo 9", "id": 9, "game_id": 0 },
"favor": 100,
"contra": 75
},
{
"7": [],
"9": { "set1_1": 22, "set2_1": 25, "set1_2": 18, "set2_2": 25, "set1_3": 0, "set2_3": 0 },
"21": { "set1_1": 25, "set2_1": 15, "set1_2": 25, "set2_2": 14, "set1_3": 0, "set2_3": 0 },
"44": { "set2_1": 15, "set1_1": 25, "set2_2": 14, "set1_2": 25, "set2_3": 0, "set1_3": 0 },
"45": { "set2_1": 15, "set1_1": 25, "set2_2": 14, "set1_2": 25, "set2_3": 0, "set1_3": 0 },
"team_id": 7,
"g": 1,
"team": { "name": "Equipo 7", "id": 7, "game_id": 0 },
"favor": 85,
"contra": 92
},
{
"7": { "set2_1": 15, "set1_1": 25, "set2_2": 14, "set1_2": 25, "set2_3": 0, "set1_3": 0 },
"9": { "set2_1": 15, "set1_1": 25, "set2_2": 14, "set1_2": 25, "set2_3": 0, "set1_3": 0 },
"21": [],
"44": { "set1_1": 22, "set2_1": 25, "set1_2": 19, "set2_2": 25, "set1_3": 0, "set2_3": 0 },
"45": { "set1_1": 25, "set2_1": 15, "set1_2": 25, "set2_2": 14, "set1_3": 0, "set2_3": 0 },
"team_id": 21,
"g": 1,
"team": { "name": "Equipo 21", "id": 21, "game_id": 0 },
"favor": 61,
"contra": 100
},
{
"7": { "set1_1": 25, "set2_1": 15, "set1_2": 25, "set2_2": 20, "set1_3": 0, "set2_3": 0 },
"9": { "set1_1": 20, "set2_1": 25, "set1_2": 15, "set2_2": 25, "set1_3": 0, "set2_3": 0 },
"21": { "set2_1": 25, "set1_1": 20, "set2_2": 25, "set1_2": 15, "set2_3": 0, "set1_3": 0 },
"44": { "set2_1": 25, "set1_1": 20, "set2_2": 25, "set1_2": 15, "set2_3": 0, "set1_3": 0 },
"team_id": 45,
"g": 1,
"team": { "name": "Equipo 45", "id": 45, "game_id": 0 },
"favor": 79,
"contra": 90
},
{
"7": { "set1_1": 20, "set2_1": 25, "set1_2": 22, "set2_2": 25, "set1_3": 0, "set2_3": 0 },
"9": { "set2_1": 25, "set1_1": 22, "set2_2": 25, "set1_2": 18, "set2_3": 0, "set1_3": 0 },
"21": { "set2_1": 25, "set1_1": 22, "set2_2": 25, "set1_2": 18, "set2_3": 0, "set1_3": 0 },
"44": [],
"45": { "set1_1": 22, "set2_1": 25, "set1_2": 18, "set2_2": 25, "set1_3": 0, "set2_3": 0 },
"team_id": 44,
"g": 1,
"team": { "name": "Equipo 44", "id": 44, "game_id": 0 },
"favor": 71,
"contra": 91
}
],
"2": [
{
"13": { "set1_1": 25, "set2_1": 17, "set1_2": 25, "set2_2": 15, "set1_3": 0, "set2_3": 0 },
"17": { "set2_1": 0, "set1_1": 0, "set2_2": 0, "set1_2": 0, "set2_3": 0, "set1_3": 0 },
"18": { "set1_1": 0, "set2_1": 0, "set1_2": 0, "set2_2": 0, "set1_3": 0, "set2_3": 0 },
"20": { "set2_1": 0, "set1_1": 0, "set2_2": 0, "set1_2": 0, "set2_3": 0, "set1_3": 0 },
"team_id": 46,
"g": 2,
"team": { "name": "Equipo 46", "id": 46, "game_id": 0 },
"favor": 0,
"contra": 0
},
{
"13": { "set2_1": 25, "set1_1": 20, "set2_2": 25, "set1_2": 22, "set2_3": 0, "set1_3": 0 },
"17": { "set1_1": 0, "set2_1": 0, "set1_2": 0, "set2_2": 0, "set1_3": 0, "set2_3": 0 },
"18": [],
"20": { "set1_1": 20, "set2_1": 25, "set1_2": 22, "set2_2": 25, "set1_3": 0, "set2_3": 0 },
"46": { "set2_1": 25, "set1_1": 20, "set2_2": 25, "set1_2": 22, "set2_3": 0, "set1_3": 0 },
"team_id": 18,
"g": 2,
"team": { "name": "Equipo 18", "id": 18, "game_id": 0 },
"favor": 0,
"contra": 0
},
{
"13": [],
"17": { "set1_1": 0, "set2_1": 0, "set1_2": 0, "set2_2": 0, "set1_3": 0, "set2_3": 0 },
"18": { "set1_1": 0, "set2_1": 0, "set1_2": 0, "set2_2": 0, "set1_3": 0, "set2_3": 0 },
"20": { "set2_1": 0, "set1_1": 0, "set2_2": 0, "set1_2": 0, "set2_3": 0, "set1_3": 0 },
"46": { "set2_1": 0, "set1_1": 0, "set2_2": 0, "set1_2": 0, "set2_3": 0, "set1_3": 0 },
"team_id": 13,
"g": 2,
"team": { "name": "Equipo 13", "id": 13, "game_id": 0 },
"favor": 32,
"contra": 50
},
{
"13": {
"set2_1": 0, "set1_1": 0, "set2_2": 0, "set1_2": 0, "set2_3": 0, "set1_3": 0
},
"17": [],
"18": { "set2_1": 0, "set1_1": 0, "set2_2": 0, "set1_2": 0, "set2_3": 0, "set1_3": 0 },
"20": { "set1_1": 0, "set2_1": 0, "set1_2": 0, "set2_2": 0, "set1_3": 0, "set2_3": 0 },
"46": { "set1_1": 0, "set2_1": 0, "set1_2": 0, "set2_2": 0, "set1_3": 0, "set2_3": 0 },
"team_id": 17,
"g": 2,
"team": { "name": "Equipo 17", "id": 17, "game_id": 0 },
"favor": 0,
"contra": 0
},
{
"13": { "set1_1": 0, "set2_1": 0, "set1_2": 0, "set2_2": 0, "set1_3": 0, "set2_3": 0 },
"17": { "set2_1": 0, "set1_1": 0, "set2_2": 0, "set1_2": 0, "set2_3": 0, "set1_3": 0 },
"18": { "set2_1": 0, "set1_1": 0, "set2_2": 0, "set1_2": 0, "set2_3": 0, "set1_3": 0 },
"20": [],
"46": { "set1_1": 0, "set2_1": 0, "set1_2": 0, "set2_2": 0, "set1_3": 0, "set2_3": 0 },
"team_id": 20,
"g": 2,
"team": { "name": "Equipo 20", "id": 20, "game_id": 0 },
"favor": 50,
"contra": 42
}
],
"3": [
{
"8": { "set1_1": 0, "set2_1": 0, "set1_2": 0, "set2_2": 0, "set1_3": 0, "set2_3": 0 },
"31": { "set1_1": 25, "set2_1": 2, "set1_2": 25, "set2_2": 19, "set1_3": 0, "set2_3": 0 },
"40": { "set2_1": 2, "set1_1": 25, "set2_2": 19, "set1_2": 25, "set2_3": 0, "set1_3": 0 },
"42": [],
"49": { "set2_1": 2, "set1_1": 25, "set2_2": 19, "set1_2": 25, "set2_3": 0, "set1_3": 0 },
"team_id": 42,
"g": 3,
"team": { "name": "Equipo 42", "id": 42, "game_id": 0 },
"favor": 0,
"contra": 0
},
{
"8": { "set2_1": 15, "set1_1": 25, "set2_2": 20, "set1_2": 25, "set2_3": 0, "set1_3": 0 },
"31": { "set2_1": 15, "set1_1": 25, "set2_2": 20, "set1_2": 25, "set2_3": 0, "set1_3": 0 },
"40": [],
"42": { "set1_1": 0, "set2_1": 0, "set1_2": 0, "set2_2": 0, "set1_3": 0, "set2_3": 0 },
"49": { "set1_1": 25, "set2_1": 15, "set1_2": 25, "set2_2": 20, "set1_3": 0, "set2_3": 0 },
"team_id": 40,
"g": 3,
"team": { "name": "Equipo 40", "id": 40, "game_id": 0 },
"favor": 0,
"contra": 0
},
{
"8": { "set2_1": 0, "set1_1": 0, "set2_2": 0, "set1_2": 0, "set2_3": 0, "set1_3": 0 },
"31": [],
"40": { "set1_1": 0, "set2_1": 0, "set1_2": 0, "set2_2": 0, "set1_3": 0, "set2_3": 0 },
"42": { "set2_1": 0, "set1_1": 0, "set2_2": 0, "set1_2": 0, "set2_3": 0, "set1_3": 0 },
"49": { "set1_1": 0, "set2_1": 0, "set1_2": 0, "set2_2": 0, "set1_3": 0, "set2_3": 0 },
"team_id": 31,
"g": 3,
"team": { "name": "Equipo 31", "id": 31, "game_id": 0 },
"favor": 21,
"contra": 50
},
{
"8": [],
"31": { "set1_1": 0, "set2_1": 0, "set1_2": 0, "set2_2": 0, "set1_3": 0, "set2_3": 0 },
"40": { "set1_1": 0, "set2_1": 0, "set1_2": 0, "set2_2": 0, "set1_3": 0, "set2_3": 0 },
"42": { "set2_1": 0, "set1_1": 0, "set2_2": 0, "set1_2": 0, "set2_3": 0, "set1_3": 0 },
"49": { "set2_1": 0, "set1_1": 0, "set2_2": 0, "set1_2": 0, "set2_3": 0, "set1_3": 0 },
"team_id": 8,
"g": 3,
"team": { "name": "Equipo 8", "id": 8, "game_id": 0 },
"favor": 0,
"contra": 0
},
{
"8": { "set1_1": 0, "set2_1": 0, "set1_2": 0, "set2_2": 0, "set1_3": 0, "set2_3": 0 },
"31": { "set2_1": 0, "set1_1": 0, "set2_2": 0, "set1_2": 0, "set2_3": 0, "set1_3": 0 },
"40": { "set2_1": 0, "set1_1": 0, "set2_2": 0, "set1_2": 0, "set2_3": 0, "set1_3": 0 },
"42": { "set1_1": 0, "set2_1": 0, "set1_2": 0, "set2_2": 0, "set1_3": 0, "set2_3": 0 },
"team_id": 49,
"g": 3,
"team": { "name": "Equipo 49", "id": 49, "game_id": 0 },
"favor": 35,
"contra": 50
}
]
},
}
});
In the headers the keys 1,2,3 and then another key with an array with values โ€‹โ€‹of the id of each team with whom he is going to play including it example: "1":{"7":[9, 21, 44, 45 , 7] 1 is the group and 7 is the team within the teams with whom he is going to play
in games we have the same values โ€‹โ€‹1,2,3 same logic but note that when there is always an object that has an empty array example of team 7 within group 1
"7": [], but their vs who this team is going to play with come like this "9":{"set1_1":22,"set2_1":25,"set1_2":18,"set2_2":25,"set1_3 ":0,"set2_3":0},
9 is his opponent and the sets are the ones won in each example time
team 7 team 9
set1_1: 22 set1_2: 18
set2_1: 18 set2_2: 25
set1_3: 0 set2_3: 0
template:
<v-card class="mt-4" v-for="(header, keyGrupo) in headers" :key="keyGrupo">
<v-card-title> Grupo {{ keyGrupo }}</v-card-title>
<v-simple-table dense>
<template v-slot:default>
<thead>
<tr>
<th></th>
<th v-if="header.EQUIPO">Equipo</th>
<th v-for="(grupo, index) in games[keyGrupo]" :key="index">
{{ index + 1 }} {{ grupo["team"]["name"] }} | {{ grupo['team_id'] }}
</th>
</tr>
</thead>
<tbody>
<tr v-for="(grupo, index) in games[keyGrupo]" :key="index">
<td></td>
<td>
{{ index + 1 }} {{ grupo["team"]["name"] }} {{ grupo['team_id'] }}
</td>
<td v-for="team_ids in header[grupo['team_id']]" v-if="team_ids != grupo['team_id']">
<table>
<tr>
<td >{{ team_ids }}</td>
<td></td>
</tr>
</table>
</td>
</tr>
</tbody>
</template>
</v-simple-table>
</v-card>
In the following results marker the red marked are not the correct ones, since a team cannot play against itself. So the box must be filled with a color and be as a filled box without data, I leave an example of how it should be
In this image we see the same teams with their correct results for each team they play with, also note that in each game against themselves it is in blue, and the results are for each team they played with, I need help with this please
I'm sorry I spent like an hour trying to understand your code. It is unnecessarily too complicated.
Please use classes and proper names for readability and reduce the amount of unnecessary information you provide...
Either way, I think I found your problem. But please address your code before moving on as it will greatly impact debugging further on.
Let's take the first iteration in your for loop:
<td v-for="team_ids in header[grupo['team_id']]" v-if="team_ids != grupo['team_id']">
grupo['team_id']: 9
header[9]: [21, 44, 7, 45, *9*]
header[21]: [44, 45, 7, 9, *21*]
As we go through each member in the array, as you can see in all of your headers the last member is always the team itself. This reflects in what you get in the last column.
So when you check for v-if="team_ids != grupo['team_id']
you're checking v-if="9 != 21" - which is true and you render the data.
Which, by the way I have no idea how this:
<table>
<tr>
<td >{{ team_ids }}</td>
<td></td>
</tr>
</table>
Renders what you show on screenshots. As it should only render 21 for the first column.
To fix this, you should change the order of the team id inside header to match the order of the teams inside games groups. As the data you're rendering for each team is not correct.
Your Equipo 9 vs Equipo 9 first row first column is actually rendering Equipo 9 vs Equipo 21.
Overall I recommend rethinking your data structure and code logic as this is extremely confusing.

Seeking the minimal generating set of a AffineCrystGroup

Based on the data provided on page 21 of the book Computer Algebra and Materials Physics, I tried to do the following testing in GAP:
gap> M1Right:=[[0,0,1,0],[1,0,0,0],[0,-1,0,0],[1/4,1/4,1/4,1]];;
gap> M2Right:=[[0,0,-1,0],[0,-1,0,0],[1,0,0,0],[0,0,0,1]];;
gap> SGGenSetAK227Right:=[M1Right,M2Right];;
gap> SGAK227Right:=AffineCrystGroupOnRight(SGGenSetAK227Right);
<matrix group with 2 generators>
gap> SGGenSet227Right:=[
> [ [ 1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, 1, 0 ], [ 1/4, 1/4, -7/4, 1 ] ],
> [ [ 1, 0, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, -1, 0, 0 ], [ -1/4, 3/4, -3/4, 1 ] ],
> [ [ 0, 1, 0, 0 ], [ 0, 0, -1, 0 ], [ -1, 0, 0, 0 ], [ 1, -1/2, -1/2, 1 ] ],
> [ [ 1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, -1, 0 ], [ 0, 0, 0, 1 ] ],
> [ [ -1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 1/2, -1/2, 1 ] ],
> [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 1/2, 0, 1/2, 1 ] ],
> [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 1/2, 1/2, 1 ] ],
> [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 1, 1 ] ]];;
gap> SG227Right:=AffineCrystGroup(SGGenSet227Right);
<matrix group with 8 generators>
gap> SG227Right=SGAK227Right;
true
As you can see, I've created two AffineCrystGroups using 2 and 8 generators respectively, and they are exactly the same one. Therefore, are there any feasible methods to find the minimum generators set of a specific AffineCrystGroup? In short, starting with case 2 as the starting point and obtaining the generator of case 1.
Regards,
HZ
This is not the final solution, but it is an improvement in a way and a response to Olexandr Konovalov:
MinimalGeneratingSet doesn't work in this situation:
gap> MinimalGeneratingSet(h1);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 3rd choice method found for `MinimalGeneratingSet' on 1 arguments at /home/werner/Public/repo/github.com/gap-system/gap.git/lib/methsel2.g:249 called from
<function "HANDLE_METHOD_NOT_FOUND">( <arguments> )
called from read-eval loop at *stdin*:9
type 'quit;' to quit to outer loop
SmallGeneratingSet can only reduce to 4 generators. Based on your advice, I tried with the following trick, but only can reduce to 3 generators. In short, a set of less than three generators taken from the result given by SmallGeneratingSet cannot generate the same space group:
gap> SGGenSet227Right:=[
> [ [ 1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, 1, 0 ], [ 1/4, 1/4, -7/4, 1 ] ],
> [ [ 1, 0, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, -1, 0, 0 ], [ -1/4, 3/4, -3/4, 1 ] ],
> [ [ 0, 1, 0, 0 ], [ 0, 0, -1, 0 ], [ -1, 0, 0, 0 ], [ 1, -1/2, -1/2, 1 ] ],
> [ [ 1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, -1, 0 ], [ 0, 0, 0, 1 ] ],
> [ [ -1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 1/2, -1/2, 1 ] ],
> [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 1/2, 0, 1/2, 1 ] ],
> [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 1/2, 1/2, 1 ] ],
> [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 1, 1 ] ]];;
gap> SG227Right:=AffineCrystGroup(SGGenSet227Right);
<matrix group with 8 generators>
gap> SGSmallGenSet227Right:=SmallGeneratingSet(SG227Right);
[ [ [ 0, 1, 0, 0 ], [ 0, 0, -1, 0 ], [ -1, 0, 0, 0 ], [ 1, -1/2, -1/2, 1 ] ], [ [ 1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, 1, 0 ], [ 1/4, 1/4, -7/4, 1 ] ],
[ [ 1, 0, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, -1, 0, 0 ], [ -1/4, 3/4, -3/4, 1 ] ], [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 1/2, 0, 1/2, 1 ] ] ]
gap> List(Combinations(SGSmallGenSet227Right,2),x -> AffineCrystGroup(x)=SG227Right);
[ false, false, false, false, false, false ]
gap> List(Combinations(SGSmallGenSet227Right,3),x -> AffineCrystGroup(x)=SG227Right);
[ true, false, false, false ]

Draw vertical thresholds with chartjs-plugin-annotation and vue-chartjs

I try to position 2 vertical lines which are my thresholds for list of results for some tests.
My problem is that when I try to take value which is not part of the results, The lines are not shown.
With the following code I see the lines.
<script>
import BarChart from "#/components/TestsStatictics/BarChart.vue";
export default {
components: {
BarChart,
},
data() {
return {
chartData: {
labels: [24.35, 24, 24.2, 24.28],
datasets: [
{
label: "Bar Chart",
backgroundColor: [
"rgba(255, 99, 132, 0.2)",
"rgba(54, 162, 235, 0.2)",
"rgba(255, 206, 86, 0.2)",
"rgba(75, 192, 192, 0.2)",
"rgba(75, 192, 192, 0.2)",
],
borderColor: [
"rgba(255,99,132,1)",
"rgba(54, 162, 235, 1)",
"rgba(255, 206, 86, 1)",
"rgba(75, 192, 192, 1)",
"rgba(75, 192, 192, 0.2)",
],
pointBorderColor: "#2554FF",
data: [24.35, 24, 24.2, 24.28],
},
],
},
options: {
annotation: {
annotations: [
{
type: "line",
mode: "vertical",
scaleID: "x-axis-0",
value: 24.35,
borderColor: "green",
borderWidth: 1,
label: {
enabled: true,
position: "center",
content: "22.70",
},
},
{
type: "line",
mode: "vertical",
scaleID: "x-axis-0",
value: 24.28,
borderColor: "green",
borderWidth: 1,
label: {
enabled: true,
position: "center",
content: "25.70",
},
},
],
},
scales: {
yAxes: [
{
ticks: {
beginAtZero: true,
},
gridLines: {
display: true,
},
},
],
xAxes: [
{
gridLines: {
display: false,
},
barThickness: 30,
},
],
},
legend: {
display: true,
},
responsive: true,
maintainAspectRatio: false,
},
};
},
};
</script>
but if I change the part of the annotation to this (the value of the annotation is not within the data and labels values), It doesn`t work:
annotations: [
{
type: "line",
mode: "vertical",
scaleID: "x-axis-0",
value: 22,
borderColor: "green",
borderWidth: 1,
label: {
enabled: true,
position: "center",
content: "22",
},
},
{
type: "line",
mode: "vertical",
scaleID: "x-axis-0",
value: 26,
borderColor: "green",
borderWidth: 1,
label: {
enabled: true,
position: "center",
content: "26",
},
},
],
Try setting max an min values for the axes:
suggestedMax, suggestedMin
scales: {
xAxes: [
{
gridLines: {
display: false,
},
ticks: {
suggestedMax: 35,
suggestedMin: 20
},
barThickness: 30,
},
],

Difference between AFNetworking and Postman response with JSON request

Does anyone have any idea why I'm getting this when I POST with AFNetworking (wrong):
[ '0',
'1',
'7',
'0',
'2',
'94',
'0',
'3',
'41',
'0',
'4',
'5',
'0',
'5',
'51',
'0',
'6',
'3',
'0',
'7',
'40',
'0',
'8',
'18',
'0',
'9',
'12',
'0',
'10',
'10',
'1',
'11',
'9',
'2',
'12',
'4',
'2',
'13',
'17',
'2',
'14',
'25',
'2',
'15',
'16',
'2',
'16',
'15',
'2',
'17',
'21',
'2',
'18',
'35',
'2',
'19',
'37',
'2',
'20',
'34',
'2',
'21',
'32',
'3',
'22',
'96' ]
but I get this when I POST with postman (correct)?
[ { riderId: 7, placeId: 1, eventCategoryId: 0 },
{ riderId: 94, placeId: 2, eventCategoryId: 0 },
{ riderId: 41, placeId: 3, eventCategoryId: 0 },
{ riderId: 5, placeId: 4, eventCategoryId: 0 },
{ riderId: 51, placeId: 5, eventCategoryId: 0 },
{ riderId: 3, placeId: 6, eventCategoryId: 0 },
{ riderId: 40, placeId: 7, eventCategoryId: 0 },
{ riderId: 18, placeId: 8, eventCategoryId: 0 },
{ riderId: 12, placeId: 9, eventCategoryId: 0 },
{ riderId: 10, placeId: 10, eventCategoryId: 0 },
{ riderId: 9, placeId: 11, eventCategoryId: 1 },
{ riderId: 4, placeId: 12, eventCategoryId: 2 },
{ riderId: 17, placeId: 13, eventCategoryId: 2 },
{ riderId: 25, placeId: 14, eventCategoryId: 2 },
{ riderId: 16, placeId: 15, eventCategoryId: 2 },
{ riderId: 15, placeId: 16, eventCategoryId: 2 },
{ riderId: 21, placeId: 17, eventCategoryId: 2 },
{ riderId: 35, placeId: 18, eventCategoryId: 2 },
{ riderId: 37, placeId: 19, eventCategoryId: 2 },
{ riderId: 34, placeId: 20, eventCategoryId: 2 },
{ riderId: 32, placeId: 21, eventCategoryId: 2 },
{ riderId: 96, placeId: 22, eventCategoryId: 3 } ]
That's a node.js response btw. Same endpoint and json data being posted on both.
Thoughts?
It's just a simple NSMutableDictionary that I'm passing. Here is my AFNetworking submission code:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:#"http://192.168.20.230:3000/api/v1/test" parameters:submission success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(#"responseObject: %#", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(#"Error: %#", [error localizedDescription]);
}];
Figured it out. Apparently I needed to set the requestSerializer.
manager.requestSerializer = [AFJSONRequestSerializer serializer];
I thought that json was AFNetworking's default so setting that would be redundant. Ah well.
Full working code:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager POST:#"http://192.168.20.230:3000/api/v1/test" parameters:submission success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(#"responseObject: %#", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(#"Error: %#", [error localizedDescription]);
}];

Sencha Touch 2 pie chart has no labels

I am attempting to follow this example for creating a pie chart but my chart does not display labels for the sections. I copied and used the exact code from the example linked above.
The chart display complete with color sections but there are no labels like in the example.
My code is pasted below:
Ext.define('RevivalTimes.view.Chart', {
extend: 'Ext.chart.PolarChart',
xtype: 'chart',
requires: [
'Ext.chart.series.Pie',
'Ext.chart.interactions.Rotate'
],
config: {
title: 'Statistics',
iconCls: 'settings',
layout: 'fit',
animate: true,
interactions: ['rotate'],
colors: ['#115fa6', '#94ae0a', '#a61120', '#ff8809', '#ffd13e'],
store: {
fields: ['name', 'data1', 'data2', 'data3', 'data4', 'data5'],
data: [
{name: 'metric one', data1: 10, data2: 12, data3: 14, data4: 8, data5: 13},
{name: 'metric two', data1: 7, data2: 8, data3: 16, data4: 10, data5: 3},
{name: 'metric three', data1: 5, data2: 2, data3: 14, data4: 12, data5: 7},
{name: 'metric four', data1: 2, data2: 14, data3: 6, data4: 1, data5: 23},
{name: 'metric five', data1: 27, data2: 38, data3: 36, data4: 13, data5: 33}
]
},
series: [{
type: 'pie',
label: {
field: 'name',
display: 'rotate'
},
xField: 'data3',
donut: 30
}]
} //config
});
The labels show with the inclusion of labelField as shown in the code below:
series: [{
type: 'pie',
label: {
field: 'name',
display: 'rotate'
},
xField: 'data1',
donut: 30,
labelField: 'name',
showInLegend: true,
}],