# SoftBank Robotics documentation What's new in NAOqi 2.8?

# ALNotificationManager

NAOqi Core - Overview | API | NotificationInfo

## What it does

The ALNotificationManager module provides methods to manage notifications on the robot.

### What is a notification

A notification is a short message sent to the end-user by the robot system or by an application.
For further details, see: ALValue NotificationInfo.

## How it works

When an application sends a notification:

- It is appended to the list of pending notifications.
- The End user is informed that there is a pending notification and can ask the robot to read it. For further details, see:
  - Event and state notifications or
  - Event and state notifications.

The notification is removed from the list of pending notifications either when:

- it is read or
- it is removed by the application, for example if it is not valid anymore.

For further details about the objects supporting ALNotificationManager, see: NotificationInfo.

## Getting Started

Add a notification

`add-notif.py`

    #! /usr/bin/env python
    # -*- encoding: UTF-8 -*-

    """Example: Use add Method"""

    import qi
    import argparse
    import sys

    def main(session):
        """
        This example uses the add method.
        """
        # Get the service ALNotificationManager.

        notif_mng_service = session.service("ALNotificationManager")

        # Add a notification.
        notificationId = notif_mng_service.add({"message": "Hello World!", "severity": "info", "removeOnRead": True})
        print "Notification ID: " + str(notificationId)

    if __name__ == "__main__":
        parser = argparse.ArgumentParser()
        parser.add_argument("--ip", type=str, default="127.0.0.1",
                            help="Robot IP address. On robot or Local Naoqi: use '127.0.0.1'.")
        parser.add_argument("--port", type=int, default=9559,
                            help="Naoqi port number")

        args = parser.parse_args()
        session = qi.Session()
        try:
            session.connect("tcp://" + args.ip + ":" + str(args.port))
        except RuntimeError:
            print ("Can't connect to Naoqi at ip \"" + args.ip + "\" on port " + str(args.port) +".\n"
                   "Please check your script arguments. Run with -h option for help.")
            sys.exit(1)
        main(session)

Print all NotificationInfos

`print-notif.py`

    #! /usr/bin/env python
    # -*- encoding: UTF-8 -*-

    """Example: Use notifications Method"""

    import qi
    import argparse
    import sys

    def main(session):
        """
        This example uses the notifications method.
        """
        # Get the service ALNotificationManager.

        notif_mng_service = session.service("ALNotificationManager")

        # Get the notifications.
        notifications = notif_mng_service.notifications()
        for notification in notifications:
            notifDict = dict(notification)
            print "Notification ID: " + str(notifDict["id"])
            print "\tMessage: " + notifDict["message"]
            print "\tSeverity: " + notifDict["severity"]
            print "\tRemove On Read: " + str(notifDict["removeOnRead"])
            print "-----------\n"

    if __name__ == "__main__":
        parser = argparse.ArgumentParser()
        parser.add_argument("--ip", type=str, default="127.0.0.1",
                            help="Robot IP address. On robot or Local Naoqi: use '127.0.0.1'.")
        parser.add_argument("--port", type=int, default=9559,
                            help="Naoqi port number")

        args = parser.parse_args()
        session = qi.Session()
        try:
            session.connect("tcp://" + args.ip + ":" + str(args.port))
        except RuntimeError:
            print ("Can't connect to Naoqi at ip \"" + args.ip + "\" on port " + str(args.port) +".\n"
                   "Please check your script arguments. Run with -h option for help.")
            sys.exit(1)
        main(session)

Glossary Site map Index Support Contact Legal Notices