예제 #1
0
        /// <summary>
        /// get board description
        /// </summary>
        /// <param name="board_id"></param>
        /// <returns>board description</returns>
        /// <exception cref="BrainFlowException">If board id is not valid exit code is UNSUPPORTED_BOARD_ERROR</exception>
        public static T get_board_descr <T> (int board_id) where T : class
        {
            int[]  len = new int[1];
            byte[] str = new byte[16000];
            int    res = BoardControllerLibrary.get_board_descr(board_id, str, len);

            if (res != (int)CustomExitCodes.STATUS_OK)
            {
                throw new BrainFlowException(res);
            }
            string descr_str  = System.Text.Encoding.UTF8.GetString(str, 0, len[0]);
            var    ms         = new MemoryStream(Encoding.UTF8.GetBytes(descr_str));
            var    serializer = new DataContractJsonSerializer(typeof(T));
            var    obj        = serializer.ReadObject(ms) as T;

            ms.Close();
            return(obj);
        }