Skip to content

Commit 4270457

Browse files
committed
Initial commit for updating vsomeip transport to 1.5.8 release
1 parent db101d4 commit 4270457

13 files changed

Lines changed: 997 additions & 406 deletions

README.adoc

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,20 +66,19 @@ $ python setup.py bdist_wheel
6666

6767
=== Usage
6868

69-
$ pip install uprotocol_vsomeip_python-0.1.0.dev0-py3-none-any.whl
69+
$ pip install uprotocol_vsomeip_python-0.2.0.dev0-py3-none-any.whl
7070

7171
uPClient vsomeip Transport
7272

7373
[source]
7474
----
75-
from uprotocol_vsomeip.vsomeip_utransport import VsomeipTransport
76-
from uprotocol_vsomeip.vsomeip_utransport import VsomeipHelper
75+
from uprotocol_vsomeip.vsomeip_utransport import VsomeipHelper, VsomeipTransport
7776
7877
# Create a helper class and override the services_info method to start the mock services by Vsomeip
7978
class Helper(VsomeipHelper):
8079
8180
def services_info(self) -> List[VsomeipHelper.UEntityInfo]:
82-
return [VsomeipHelper.UEntityInfo(Name="entity", Id=1, Events=[0, 1, 2, 3, 4, 5, 6, 7, 8, 10], Port=30509, MajorVersion=1)]
81+
return [VsomeipHelper.UEntityInfo(Name="entity", Id=1, Events=[0x8000], Port=30509, MajorVersion=1)]
8382
8483
# Create an object of Vsomeip transport to use and pass on the above helper class created
8584
someip = VsomeipTransport(helper=Helper())

requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
up-python==0.1.2-dev
2-
vsomeip_py @git+https://github.com/COVESA/vsomeip_py.git@16f3e4c
1+
vsomeip_py @git+https://github.com/COVESA/vsomeip_py.git@825061d
2+
up-python==0.2.0.dev0

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434

3535
setup(
3636
name=project_name,
37-
version="0.1.0-dev",
37+
version="0.2.0-dev",
3838
python_requires=">=3.8",
3939
description="",
4040
author="",
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
"""
2+
SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation
3+
4+
See the NOTICE file(s) distributed with this work for additional
5+
information regarding copyright ownership.
6+
7+
This program and the accompanying materials are made available under the
8+
terms of the Apache License Version 2.0 which is available at
9+
10+
http://www.apache.org/licenses/LICENSE-2.0
11+
12+
SPDX-License-Identifier: Apache-2.0
13+
"""
14+
15+
import asyncio
16+
import logging
17+
from typing import List
18+
19+
from uprotocol.communication.upayload import UPayload
20+
from uprotocol.transport.builder.umessagebuilder import UMessageBuilder
21+
from uprotocol.v1.uattributes_pb2 import UPayloadFormat
22+
from uprotocol.v1.uri_pb2 import UUri
23+
24+
from uprotocol_vsomeip.vsomeip_utransport import VsomeipHelper, VsomeipTransport
25+
26+
logger = logging.getLogger()
27+
LOG_FORMAT = "%(asctime)s [%(levelname)s] @ %(filename)s.%(module)s.%(funcName)s:%(lineno)d \n %(message)s"
28+
logging.basicConfig(format=LOG_FORMAT, level=logging.getLevelName("DEBUG"))
29+
30+
31+
class Helper(VsomeipHelper):
32+
"""
33+
Helper class to provide list of services to be offered
34+
"""
35+
36+
def services_info(self) -> List[VsomeipHelper.UEntityInfo]:
37+
return [
38+
VsomeipHelper.UEntityInfo(
39+
service_id=1,
40+
events=[0x8000],
41+
port=30509,
42+
major_version=1,
43+
)
44+
]
45+
46+
47+
someip = VsomeipTransport(helper=Helper(), source=UUri(ue_id=1, ue_version_major=1, resource_id=0))
48+
uuri = UUri(ue_id=1, ue_version_major=1, resource_id=0x8000)
49+
50+
51+
async def publish():
52+
"""
53+
Publish data to a topic
54+
"""
55+
data = "Hello World!"
56+
payload = UPayload.pack_from_data_and_format(data.encode("utf-8"), UPayloadFormat.UPAYLOAD_FORMAT_TEXT)
57+
message = UMessageBuilder.publish(uuri).build_from_upayload(payload)
58+
logger.debug("Sending %s to %s...", data, uuri)
59+
await someip.send(message)
60+
61+
62+
async def main() -> None:
63+
"""
64+
Main function to demonstrate publish and subscribe
65+
"""
66+
while True:
67+
await publish()
68+
await asyncio.sleep(1)
69+
70+
71+
if __name__ == "__main__":
72+
asyncio.run(main())

uprotocol_vsomeip/examples/publish_subscribe.py renamed to uprotocol_vsomeip/examples/publish_subscribe_unsubscribe.py

Lines changed: 37 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -12,28 +12,25 @@
1212
SPDX-License-Identifier: Apache-2.0
1313
"""
1414

15+
import asyncio
1516
import logging
1617
import time
1718
from typing import List
1819

19-
from uprotocol.proto.uattributes_pb2 import UPriority
20-
from uprotocol.proto.umessage_pb2 import UMessage
21-
from uprotocol.proto.upayload_pb2 import UPayload, UPayloadFormat
22-
from uprotocol.proto.uri_pb2 import UEntity, UResource, UUri
23-
from uprotocol.proto.ustatus_pb2 import UStatus
24-
from uprotocol.transport.builder.uattributesbuilder import UAttributesBuilder
20+
from uprotocol.communication.upayload import UPayload
21+
from uprotocol.transport.builder.umessagebuilder import UMessageBuilder
2522
from uprotocol.transport.ulistener import UListener
23+
from uprotocol.v1.uattributes_pb2 import UPayloadFormat
24+
from uprotocol.v1.umessage_pb2 import UMessage
25+
from uprotocol.v1.uri_pb2 import UUri
26+
from uprotocol.v1.ustatus_pb2 import UStatus
2627

2728
from uprotocol_vsomeip.vsomeip_utransport import VsomeipHelper, VsomeipTransport
2829

2930
logger = logging.getLogger()
3031
LOG_FORMAT = "%(asctime)s [%(levelname)s] @ %(filename)s.%(module)s.%(funcName)s:%(lineno)d \n %(message)s"
3132
logging.basicConfig(format=LOG_FORMAT, level=logging.getLevelName("DEBUG"))
3233

33-
"""
34-
Publish Subscribe Example
35-
"""
36-
3734

3835
class Helper(VsomeipHelper):
3936
"""
@@ -43,76 +40,78 @@ class Helper(VsomeipHelper):
4340
def services_info(self) -> List[VsomeipHelper.UEntityInfo]:
4441
return [
4542
VsomeipHelper.UEntityInfo(
46-
Name="publisher",
47-
Id=1,
48-
Events=[0, 1, 2, 3, 4, 5, 6, 7, 8, 10],
49-
Port=30509,
50-
MajorVersion=1,
43+
service_id=1,
44+
events=[0x8000],
45+
port=30509,
46+
major_version=1,
5147
)
5248
]
5349

5450

55-
someip = VsomeipTransport(helper=Helper())
56-
uuri = UUri(
57-
entity=UEntity(name="publisher", id=1, version_major=1, version_minor=1),
58-
resource=UResource(name="door", instance="front_left", message="Door", id=5),
59-
)
51+
someip = VsomeipTransport(helper=Helper(), source=UUri(ue_id=1, ue_version_major=1, resource_id=0))
52+
uuri = UUri(ue_id=1, ue_version_major=1, resource_id=0x8000)
6053

6154

62-
def publish():
55+
async def publish():
6356
"""
6457
Publish data to a topic
6558
"""
6659
data = "Hello World!"
67-
attributes = UAttributesBuilder.publish(uuri, UPriority.UPRIORITY_CS4).build()
68-
payload = UPayload(value=data.encode("utf-8"), format=UPayloadFormat.UPAYLOAD_FORMAT_TEXT)
69-
message = UMessage(attributes=attributes, payload=payload)
70-
logger.debug(f"Sending {data} to {uuri}...")
71-
someip.send(message)
60+
payload = UPayload.pack_from_data_and_format(data.encode("utf-8"), UPayloadFormat.UPAYLOAD_FORMAT_TEXT)
61+
message = UMessageBuilder.publish(uuri).build_from_upayload(payload)
62+
logger.debug("Sending %s to %s...", data, uuri)
63+
await someip.send(message)
7264

7365

7466
class MyListener(UListener):
7567
"""
7668
Listener class to define callback
7769
"""
7870

79-
def on_receive(self, message: UMessage) -> UStatus:
71+
async def on_receive(self, message: UMessage) -> UStatus:
8072
"""
8173
on_receive call back method
8274
:param message:
8375
:return: UStatus
8476
"""
8577
logger.debug(
8678
"listener -> id: %s, data: %s",
87-
message.attributes.source.resource.id,
88-
message.payload.value,
79+
message.attributes.source.resource_id,
80+
message.payload,
8981
)
9082
return UStatus(message="Received event")
9183

9284

9385
listener = MyListener()
9486

9587

96-
def subscribe():
88+
async def subscribe():
9789
"""
9890
Subscribe to a topic
9991
"""
100-
someip.register_listener(uuri, listener)
92+
await someip.register_listener(source_filter=uuri, listener=listener)
10193

10294

103-
def unsubscribe():
95+
async def unsubscribe():
10496
"""
10597
Unsubscribe to a topic
10698
"""
107-
someip.unregister_listener(uuri, listener)
99+
await someip.unregister_listener(source_filter=uuri, listener=listener)
108100

109101

110-
if __name__ == "__main__":
111-
subscribe()
102+
async def main() -> None:
103+
"""
104+
Main function to demonstrate publish and subscribe
105+
"""
106+
await subscribe()
112107
time.sleep(1)
113-
publish()
108+
await publish()
114109
time.sleep(5)
115-
unsubscribe()
110+
await unsubscribe()
116111
time.sleep(1)
117-
publish()
112+
await publish()
118113
time.sleep(5)
114+
115+
116+
if __name__ == "__main__":
117+
asyncio.run(main())

uprotocol_vsomeip/examples/rpc.py

Lines changed: 0 additions & 117 deletions
This file was deleted.

0 commit comments

Comments
 (0)