def run_script(self, script_id, params=None):
        """
        Runs a stored script.

        script_id:= id of stored script.
         params:= up to 10 parameters required by the script.

        ...
        s = pi.run_script(sid, [par1, par2])

        s = pi.run_script(sid)

        s = pi.run_script(sid, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
        ...
        """
        # I p1 script id
        # I p2 0
        # I p3 params * 4 (0-10 params)
        # (optional) extension
        # I[] params
        if params is not None:
            ext = bytearray()
            for p in params:
                ext.extend(struct.pack("I", p))
            nump = len(params)
            extents = [ext]
        else:
            nump = 0
            extents = []
        res = yield from self._pigpio_aio_command_ext(_PI_CMD_PROCR, script_id,
                                                      0, nump * 4, extents)
        return _u2i(res)