Skip to content

Commit 40a8d51

Browse files
[Remove MalformedReply] fixup! core: frontend: Adapt to the new Zenoh API
1 parent 4d0d578 commit 40a8d51

3 files changed

Lines changed: 78 additions & 96 deletions

File tree

core/frontend/src/components/cloud/CloudTrayMenu.vue

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -458,17 +458,13 @@ export default Vue.extend({
458458
459459
let reply = await receiveQueryReply(receiver)
460460
while (reply !== RecvErr.Disconnected) {
461-
if (reply === RecvErr.MalformedReply) {
462-
console.warn(`[CloudTrayMenu] Malformed reply while querying ${topic}.`)
463-
} else {
464-
const response = reply.result()
465-
if (response instanceof Sample) {
466-
const payload = response.payload().toString()
467-
return this.parseFileSyncQueue(payload)
468-
}
469-
const errorResponse: ReplyError = response
470-
console.warn(`[CloudTrayMenu] Query error for ${topic}:`, errorResponse.payload().toString())
461+
const response = reply.result()
462+
if (response instanceof Sample) {
463+
const payload = response.payload().toString()
464+
return this.parseFileSyncQueue(payload)
471465
}
466+
const errorResponse: ReplyError = response
467+
console.warn(`[CloudTrayMenu] Query error for ${topic}:`, errorResponse.payload().toString())
472468
473469
reply = await receiveQueryReply(receiver)
474470
}

core/frontend/src/components/zenoh-inspector/ZenohNetwork.vue

Lines changed: 72 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -308,69 +308,65 @@ export default Vue.extend({
308308
let responseCount = 0
309309
310310
while (reply !== RecvErr.Disconnected && responseCount < 10) { // Limit responses to prevent infinite loops
311-
if (reply === RecvErr.MalformedReply) {
312-
console.warn('[Zenoh Network] MalformedReply from router query')
313-
} else {
314-
const resp = reply.result()
315-
if (resp instanceof Sample) {
316-
const sample: Sample = resp
317-
responseCount += 1
318-
319-
try {
320-
const payload = sample.payload().toString()
321-
console.debug('[Zenoh Network] Router payload:', payload)
322-
323-
const data = JSON.parse(payload)
324-
325-
// Add router node
326-
const zid = data.zid || 'unknown-router'
327-
const metadata = data.metadata || {}
328-
this.networkData.nodes.push({
329-
id: zid,
330-
whatami: 'router',
331-
metadata,
332-
})
333-
334-
// Add connected sessions
335-
if (data.sessions && Array.isArray(data.sessions)) {
336-
for (const sess of data.sessions) {
337-
const peer = sess.peer || 'unknown-peer'
338-
const whatami = sess.whatami || 'unknown'
339-
340-
let linkProtocols = 'unknown'
341-
try {
342-
if (sess.links && Array.isArray(sess.links)) {
343-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
344-
linkProtocols = sess.links.map((link: any) => {
345-
if (typeof link === 'string') {
346-
return link.split('/')[0]
347-
}
348-
return link.src?.split('/')[0] || 'unknown'
349-
}).join(',')
350-
}
351-
} catch (error) {
352-
console.warn('Error parsing link protocols:', error)
311+
const resp = reply.result()
312+
if (resp instanceof Sample) {
313+
const sample: Sample = resp
314+
responseCount += 1
315+
316+
try {
317+
const payload = sample.payload().toString()
318+
console.debug('[Zenoh Network] Router payload:', payload)
319+
320+
const data = JSON.parse(payload)
321+
322+
// Add router node
323+
const zid = data.zid || 'unknown-router'
324+
const metadata = data.metadata || {}
325+
this.networkData.nodes.push({
326+
id: zid,
327+
whatami: 'router',
328+
metadata,
329+
})
330+
331+
// Add connected sessions
332+
if (data.sessions && Array.isArray(data.sessions)) {
333+
for (const sess of data.sessions) {
334+
const peer = sess.peer || 'unknown-peer'
335+
const whatami = sess.whatami || 'unknown'
336+
337+
let linkProtocols = 'unknown'
338+
try {
339+
if (sess.links && Array.isArray(sess.links)) {
340+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
341+
linkProtocols = sess.links.map((link: any) => {
342+
if (typeof link === 'string') {
343+
return link.split('/')[0]
344+
}
345+
return link.src?.split('/')[0] || 'unknown'
346+
}).join(',')
353347
}
348+
} catch (error) {
349+
console.warn('Error parsing link protocols:', error)
350+
}
354351
355-
this.networkData.nodes.push({
356-
id: peer,
357-
whatami,
358-
})
352+
this.networkData.nodes.push({
353+
id: peer,
354+
whatami,
355+
})
359356
360-
this.networkData.edges.push({
361-
source: zid,
362-
target: peer,
363-
protocol: linkProtocols,
364-
})
365-
}
357+
this.networkData.edges.push({
358+
source: zid,
359+
target: peer,
360+
protocol: linkProtocols,
361+
})
366362
}
367-
} catch (parseError) {
368-
console.error('[Zenoh Network] Error parsing router response:', parseError)
369363
}
370-
} else {
371-
const replyError: ReplyError = resp
372-
console.error('[Zenoh Network] Router query error:', replyError.payload().toString())
364+
} catch (parseError) {
365+
console.error('[Zenoh Network] Error parsing router response:', parseError)
373366
}
367+
} else {
368+
const replyError: ReplyError = resp
369+
console.error('[Zenoh Network] Router query error:', replyError.payload().toString())
374370
}
375371
reply = await receiveQueryReply(receiver)
376372
}
@@ -393,31 +389,27 @@ export default Vue.extend({
393389
let responseCount = 0
394390
395391
while (reply !== RecvErr.Disconnected && responseCount < 10) { // Limit responses
396-
if (reply === RecvErr.MalformedReply) {
397-
console.warn('[Zenoh Network] MalformedReply from peer query')
398-
} else {
399-
const resp = reply.result()
400-
if (resp instanceof Sample) {
401-
const sample: Sample = resp
402-
responseCount += 1
403-
404-
try {
405-
const payload = sample.payload().toString()
406-
const data = JSON.parse(payload)
407-
const peerId = data.zid || data.id || 'unknown-peer'
408-
if (!this.networkData.nodes.find((n) => n.id === peerId)) {
409-
this.networkData.nodes.push({
410-
id: peerId,
411-
whatami: 'peer',
412-
})
413-
}
414-
} catch (parseError) {
415-
console.error('[Zenoh Network] Error parsing peer response:', parseError)
392+
const resp = reply.result()
393+
if (resp instanceof Sample) {
394+
const sample: Sample = resp
395+
responseCount += 1
396+
397+
try {
398+
const payload = sample.payload().toString()
399+
const data = JSON.parse(payload)
400+
const peerId = data.zid || data.id || 'unknown-peer'
401+
if (!this.networkData.nodes.find((n) => n.id === peerId)) {
402+
this.networkData.nodes.push({
403+
id: peerId,
404+
whatami: 'peer',
405+
})
416406
}
417-
} else {
418-
const replyError: ReplyError = resp
419-
console.error('[Zenoh Network] Peer query error:', replyError.payload().toString())
407+
} catch (parseError) {
408+
console.error('[Zenoh Network] Error parsing peer response:', parseError)
420409
}
410+
} else {
411+
const replyError: ReplyError = resp
412+
console.error('[Zenoh Network] Peer query error:', replyError.payload().toString())
421413
}
422414
reply = await receiveQueryReply(receiver)
423415
}
@@ -445,11 +437,6 @@ export default Vue.extend({
445437
return null
446438
}
447439
448-
if (reply === RecvErr.MalformedReply) {
449-
console.warn(`[Zenoh Network] MalformedReply from ${keyexpr}`)
450-
return null
451-
}
452-
453440
const resp = reply.result()
454441
if (resp instanceof Sample) {
455442
const sample: Sample = resp

core/frontend/src/libs/zenoh/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { ChannelReceiver, Config, QueryTarget, Reply, Sample, Session, Subscribe
44
// (and the query has its own timeout), so we just map that rejection to Disconnected.
55
export enum RecvErr {
66
Disconnected,
7-
MalformedReply,
87
}
98

109
export type Receiver = ChannelReceiver<Reply>

0 commit comments

Comments
 (0)