JP2012516515A - 通信システム及びプロトコル - Google Patents
通信システム及びプロトコル Download PDFInfo
- Publication number
- JP2012516515A JP2012516515A JP2011548292A JP2011548292A JP2012516515A JP 2012516515 A JP2012516515 A JP 2012516515A JP 2011548292 A JP2011548292 A JP 2011548292A JP 2011548292 A JP2011548292 A JP 2011548292A JP 2012516515 A JP2012516515 A JP 2012516515A
- Authority
- JP
- Japan
- Prior art keywords
- message
- messages
- user
- memory
- storing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/42—Mailbox-related aspects, e.g. synchronisation of mailboxes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/226—Delivery according to priorities
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Operations Research (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- Economics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Digital Computer Display Output (AREA)
- Information Transfer Between Computers (AREA)
- Mobile Radio Communication Systems (AREA)
- Communication Control (AREA)
- Stored Programmes (AREA)
Abstract
【選択図】図3
Description
下記に、本発明のフレキシブルメッセージングを実行するための、Cプログラミング言語で記述されたアルゴリズムの典型例が示される。本アルゴリズムは特に、各行20文字の、2行のディスプレイスクリーンに使用される。このアルゴリズムでは、2行のメッセージが同時に提示され、現行のディスプレイスクリーン、1つ前のディスプレイスクリーン、次のディスプレイスクリーンを格納する記憶アレイが設けられ、各々の記憶アレイは2行のメッセージを持つことができる。このアルゴリズムは最小限のメモリを使用し、あらゆるプロセッサで効率的に実行することができる。例えば、8ビットのST72F321プロセッサにおいて、このアルゴリズムが要求するメモリの量は134バイトのみで、各42ビットの3つ(現行のメッセージ、次のメッセージ及び1つ前のメッセージ)の表示情報を格納し、適切な変数及びポインタを維持し、両方向の移動を可能とするためのものである。この典型的なアルゴリズムには、一方向(例えば下方または順方向)のみの動作を行う機能性も含まれており、その場合、2つのみの表示情報が格納される。以下、典型的なアルゴリズムに定義される様々な関数の概要を説明する。
この関数は、ユーザが順方向または下方に移動する際に、物理メモリの正しい領域の位置にポインタを操作するものである。より詳しくは、この関数はポインタを操作し、1つ前の表示を示すポインタ(pPrevScrn)を、以前「現行の提示情報」を格納していたメモリ位置とし、現行の表示を示すポインタ(pCurrScrn)は、以前「次の表示情報」を格納しているメモリ位置の位置を示し、次の提示を示すポインタ(pCurrLine)は、以前「1つ前の表示情報」のメモリ領域の1番目のメッセージラインを示す。
この関数は、FlxScrnCircleとは正反対の振る舞いをし、ユーザが逆方向または上方に移動する際に、物理メモリの正しい領域の位置にポインタを操作するものである。より詳しくは、この関数はポインタを操作し、1つ前の表示を示すポインタ(pPrevScrn)を、以前「現行の提示情報」を格納していたメモリ位置とし、現行の表示を示すポインタ(pCurrScrn)は、以前「次の表示情報」を格納しているメモリ位置の位置を示し、次の提示を示すポインタ(pCurrLine)は、以前「1つ前の表示情報」のメモリ領域の2番目のメッセージラインを示す。
この関数は、「次の表示情報」を格納するメモリ位置を示すポインタ(pCurrLine)を操作し、移動の方向(順方向または逆方向)に基づき、正しい行(メッセージ)を指すようにする。従って、順方向に移動している場合には、ポインタは第1の行(メッセージ)sTextを指し、一方、逆方向に移動している場合には、ポインタは第2の行(メッセージ)sText2を指す。ポインタを操作した後、この関数は、フレキシブルメッセージのターミネータを、受け取っているかをチェックする。フレキシブルメッセージのターミネータを受け取ると、関数FlxEndLoopProcessが呼び出され、ポインタをNULL状態に設定する。
この関数は、ルーチンが最初のフレキシブルメッセージから開始された場合に、メッセージ提供システムから、最初のフレキシブルメッセージ(フレキシブルメッセージ1)を取得する。すなわち、静的メッセージのブロックを順方向に抜け出ることにより、このルーチンが開始された場合である。
この関数は、ルーチンが最後のフレキシブルメッセージNから開始された場合に、メッセージ提供システムから、最後のフレキシブルメッセージ(フレキシブルメッセージN)を取得する。すなわち、静的メッセージのブロックを逆方向に抜け出ることにより、このルーチンが開始された場合である。
この関数は、ユーザが静的メッセージングに移行する際に、静的メッセージを扱うために従来のレガシーコードを使用できるようにする。この関数は、関数InitialTheLastFlexibleMessageによってシステムの電源投入後一度だけ呼び出されて、フレキシブルメッセージングに使用される変数を初期化する。従って、静的メッセージを扱うために従来のレガシーコードが使用され、一方、フレキシブルメッセージに対してはフレキシブルメッセージングのアルゴリズムが用いられる。
この関数の目的は、システムの起動を円滑にすることである。システムの電源投入後、
この関数は予め設定された期間待ち、それから、変数の初期化を開始し、その後関数DefaultStatusPrevFlexibleを呼び出し、フレキシブルメッセージの提示が、最初のフレキシブルメッセージと最後のフレキシブルメッセージのいずれから開始されているかを判断する。
この関数は、関数FlexibleStringlnnerLoopによって呼び出され、標準的な内部ループの条件をプロセスし、すなわち、ユーザがフレキシブルメッセージループの中間にいる場合に、順方向に移動している場合及び逆方向に移動している場合に関わらずフレキシブルメッセージループから抜け出し、静的メッセージループに入る。この関数は、移動の方向に基づき、INC_RIGHT_CMDコマンドまたはDEC_LEFT_CMDコマンドを送信し、メッセージ提供システムに次のメッセージを要求する。またこの関数は、関数FlexibleStringlnnerLoopによって呼び出される。
この関数は、必要に応じて他のすべてのコードセグメントを呼び出す、主要なコードセグメントである。この関数は、ユーザが「上」ボタンを押した場合にはIncFxnPtr、「下」ボタンを押し場合にはDecFxnPtrが呼び出す別セクションのコードによって、呼び出される。
//=============================================================
#define FLEXIBLE_BUFFERS 1 // フレキシブル表示機能
// フレキシブル表示機能の無効時には
//0とする
#if FLEXIBLE_BUFFERS
#define FULL_LINE_SIZE_BUFF 21 // ディスプレイの物理的サイズに1を加えて
//決定される
#define BOTH_UPDOWN_DIRECTION 1 // 両方向の移動を可能とする
// 下方/右方のみの移動を行う場合は0を設定する
// 構造体内のバッファsText_nの数は、提示されるメッセージラインの数で決定される。
// FULL_LINE_SIZE_BUFFは、1つのメッセーシ゛の最大サイズに1を加えた値とすべきである。
//
// 下記の構造体は、ディスプレイに2行提示する構造体FLEXBUFFの定義の典型例である。
typedef struct FLEX_BUFF {
char sText[FULL_LINE_SIZE_BUFF]; // 第1の表示メッセージラインを格納する
char sText2[FULL_LINE_SIZE_BUFF]; // 第2の表示メッセージラインを格納する
} FLEXBUFF;
// 構造体FLEXSCNを定義する
typedef struct FLEXIBLE_SCREEN {
char *pCurrLine; // 次に来るメッセージを格納するバッファのポインタ
FLEXBUFF *pCurrScrn; // 現行のディスプレイ表示のポインタ
FLEXBUFF *pPrevScrn; // 1つ前のディスプレイ表示のポインタ
FLEXBUFF sLine[3]; // 本機能を扱うためには3つのFLEXBUFFが必要となる。
char bScreenIndex; // 表示制御パラメータ
// 0、1、2のいずれかの値を持つ、配列sLine[]のインデックスである
// メッセージ制御用の、メッセージ及び表示の状態変数
UBYTE bLoopCnt;
UBYTE bStatus;
// メッセージ要求のトラッキングの記録
UBYTE bIncMsgReq; // メッセージのインクリメント要求をカウントする
#if BOTH_UPDOWN_DIRECTION
UBYTE bDecMsgReq; // メッセージのデクリメント要求をカウントする
#endif
} FLEXSCN;
// ************ bStatus用の定義 ***************
#define fBackEndLoop 0x80 // 第7ビット 1: セットされている場合、逆方向に移動してループの端部に到達したことを示す
#define fAcknowledged 0x40 //第6ビット 1: ACKキャラクタの受信、0:未受信
#define fNotInitialState 0x20 //第5ビット 1: 初期状態でない, 0: 初期状態
#define fEndLoop 0x10 //第4ビット 1: フレキシブル内部ループの端部 (EOMSG)
#define fScrnReady 0x08 //第3ビット 1: 次のメッセージを表示する準備ができている
#define f1stLine 0x04 //第2ビット 1: 1行目, 0: 2行目; 下記の備考を参照
#define fDefaultScrn 0x02 //第1ビット 1: 負/デクリメント/逆方向
#define fIncfunc 0x01 //第0ビット 1: IncFxn, 0: DecFxn;
// 備考:1ビットの代わりに1バイトが使用された場合、256行を収容できる。
FLEXSCN FlxScn; // 物理メモリをここに割り当てる
//=============================================================
//
// 関数: FlxScrnCircle ( )
//
// 説明: 表示のインクリメント/右回りの移動
//
// 入力:
// char bScrnIndex - 表示インデックス番号 ( 0, 1, 2 )
//
//=============================================================
//
void FlxScrnCircle ( char bScrnIndex )
{
FlxScn.pCurrScrn = &(FlxScn.sLine[ bScrnIndex ]);
FlxScn.pPrevScrn = FlxScn.pCurrScrn++;
if ( bScrnIndex == 2 ) // この条件が満たされたときのみ、次の命令文を実行する
FlxScn.pCurrScrn = &(FlxScn.sLine[0]);
// 新しいメッセージを受け取るバッファのポインタ
FlxScn.pCurrLine =
FlxScn.pCurrScrn->sText;
}
//=============================================================
//
// 関数: FlxScrnCounterCircle ( )
//
// 説明: 表示のデクリメント/左回りの移動
//
// 入力:
// char bScrnIndex - 表示インデックス番号 ( 0, 1, 2 )
//
//=============================================================
//
void FlxScrnCounterCircle ( char bScrnIndex )
{
FlxScn.pCurrScrn = &( FlxScn.sLine[ (2 - bScrnIndex) ] );
FlxScn.pPrevScrn = FlxScn.pCurrScrn--;
if ( bScrnIndex >= 2 ) // この条件が満たされたときのみ、次の命令文を実行する
FlxScn.pCurrScrn = &(FlxScn.sLine[2]);
//新しいメッセージを受け取るバッファのポインタ
FlxScn.pCurrLine = FlxScn.pCurrScrn->sText2;
}
//=============================================================
//
// 関数: Flx_IsItEndLoop ( )
//
// 説明: フレキシブルメッセージループの端部かどうか確かめる
//
// 入力:
// char bScrnIndex - 表示インデックス番号 ( 0, 1, 2 )
// UBYTE fIncFxn - 0の場合は上(左)に移動し、その他の場合は下(右)に動かす
//
//=============================================================
//
void Flx_IsItEndLoop ( char bScrnIndex, UBYTE fIncFxn )
{
FLEXBUFF *pScrn; // 適切な表示ポインタ
char *pStr;
if ( !fIncFxn ) //上(左)に移動している場合
{
pScrn = &( FlxScn.sLine[ (2 - bScrnIndex) ] );
pStr = pScrn->sText2; }
else //下(右)に移動している場合
{
pScrn = &( FlxScn.sLine[ bScrnIndex ] );
pStr = pScrn->sText;
}
if ( !*pStr || !strcmp( pStr, "APC" ) )
FlxEndLoopProcess ( );
}
//====================================================
//
// 関数: FlxEndLoopProcess ( )
//
// 説明: フレキシブルメッセージループの端部のプロセス
//
// 入力:なし
//
//====================================================
//
void FlxEndLoopProcess ( void )
{
if ( ValTheBit(FlxScn.bStatus, f1stLine) )
{
if ( FlxScn.pCurrLine == FlxScn.pCurrScrn->sText )
FlxScn.pCurrScrn->sText2[0] = 0;
else
FlxScn.pCurrScrn->sText[0] = 0;
}
#if NO_TERMINATER_DISPLAY
*FlxScn.pCurrLine = 0;
#endif
// 端部を表す文字列を受け取る
SetTheBit( FlxScn.bStatus, (fEndLoop | fScrnReady) );
}
//=============================================================
//
// 関数: FlexStartFirstLine ( )
//
// 説明: 最初のフレキシブルメッセージラインの要求を設定する
//
// 入力: なし
//
//=============================================================
//
void FlexStartFirstLine ( void )
{
ClrTheBit( FlxScn.bStatus, fScrnReady );
FlxScrnCircle ( FlxScn.bScreenIndex );
#if BOTH_UPDOWN_DIRECTION
SetTheBit(FlxScn.bStatus, (fIncfunc | f1stLine | fBackEndLoop) );
#else
SetTheBit(FlxScn.bStatus, f1stLine );
#endif
SendInsertCmd ( INC_MSG_1_CMD );
}
//=============================================================
//
// 関数: FlexStartFromLastLine ( )
//
// 説明: 最後のフレキシブルメッセージラインの要求を設定する
//
// 入力: なし
//
//=============================================================
//
void FlexStartFromLastLine ( void )
{
FlxScrnCounterCircle ( FlxScn.bScreenIndex );
#if BOTH_UPDOWN_DIRECTION
SetTheBit( FlxScn.bStatus, (f1stLine | fBackEndLoop) );
ClrTheBit(FlxScn.bStatus, fIncfunc);
#else
SetTheBit( FlxScn.bStatus, f1stLine );
#endif
SendInsertCmd ( DEC_MSG_N_CMD );
}
//=============================================================
//
// 関数: DefaultStatusPrevFlexible ( )
//
// 説明: 最後のフレキシブルメッセージラインを、既定状態に設定する
//
// 入力:なし
//
//=============================================================
//
void DefaultStatusPrevFlexible ( void )
{
if ( !ValTheBit( FlxScn.bStatus, fDefaultScrn ) )
{
if ( !ValTheBit( bbmCommFlags, fUI_uLinkMode ) ) // レガシーコードの条件
//が満たされる場合、
//付加的な作業を行う
{
#if BOTH_UPDOWN_DIRECTION
if ( EE_default_screen < 4 )
FlexStartFromLastLine ( );
else
#endif
FlexStartFirstLine ( );
}
SetTheBit( FlxScn.bStatus, fDefaultScrn );
}
}
//=============================================================
//
// 関数: InitialTheLastFlexibleMessage ( )
//
// 説明: 最後のフレキシブルメッセージ用の初期化
//
// 入力:なし
//
//=============================================================
// void InitialTheLastFlexibleMessage ( void )
{
if ( !ValTheBit( FlxScn.bStatus, fNotInitialState ) )
{
if ( FlxScn.bLoopCnt++ >= 126 ) // 下記のプロセスを遅延させ、最小化させる
//タイミング制御文
{
SetTheBit( FlxScn.bStatus, fNotInitialState );
ClrTheBit( FlxScn.bStatus, fDefaultScrn ); DefaultStatusPrevFlexible ( );
}
}
}
//=============================================================
//
// 関数: FlexibleInnerLoopNormal ( )
//
// 説明: 標準の内部ループの条件プロセス
//
// 入力:
// UBYTE max_funcs - 関数メニューの項目数
// UBYTE fIncFxn -1の場合、IncFxnPtr( )から呼び出されている
// その他の場合、DecFxnPtr( )から呼び出されている
// char bScrnIndex - 表示インデックス番号( 0, 1, 2 )
//
//=============================================================
//
void FlexibleInnerLoopNormal ( UBYTE max_funcs,
UBYTE fIncFxn,
char bScrnIndex )
{
SetTheBit( FlxScn.bStatus, f1stLine ); // 第一の表示ラインを満たす処理の開始
#if BOTH_UPDOWN_DIRECTION
if ( fIncFxn )
{
SetTheBit( FlxScn.bStatus, fIncfunc );
FlxScrnCircle ( bScrnIndex );
bFuncIndex = (max_funcs-4) + (bScrnIndex << 1);
SendInsertCmd ( INC_RIGHT_CMD );
}
else
{
ClrTheBit( FlxScn.bStatus, fIncfunc );
FlxScrnCounterCircle ( bScrnIndex );
bFuncIndex = max_funcs - (bScrnIndex << 1);
SendInsertCmd ( DEC_LEFT_CMD );
}
// 即座に静的メッセージの状況を返答するように制御する
if ( ValTheBit( FlxScn.bStatus, fDefaultScrn ) )
ClrTheBit( FlxScn.bStatus, fDefaultScrn );
#else
FlxScrnCircle ( bScrnIndex );
bFuncIndex = (max_funcs-4) + (bScrnIndex << 1);
SendInsertCmd ( INC_RIGHT_CMD );
#endif // BOTH_UPDOWN_DIRECTIONのブロック
}
//=============================================================
//
// 関数: FlexibleStringInnerLoop ( )
//
// 説明: インクリメントまたはデクリメントのファンクションキーが押された場合に、
// 終了シグナルまで、ループ中のフレキシブルメッセージをプロセスする
//
// Input:
// UBYTE max_funcs - 機能メニューの項目数
// UBYTE fIncFxn - 1の場合、IncFxnPtr( )から呼び出されている
// その他の場合、DecFxnPtr( )から呼び出されている
//
//=============================================================
void FlexibleStringInnerLoop ( UBYTE max_funcs, UBYTE fIncFxn )
{
char bScrnIndex; // より柔軟にするため、ローカル変数を使用する
// 新しいスクリーンメッセージを更新するため、フラグをクリアする
ClrTheBit( FlxScn.bStatus, fScrnReady );
bScrnIndex = FlxScn.bScreenIndex + 1;
if ( bScrnIndex > 2 )
bScrnIndex = 0;
#if BOTH_UPDOWN_DIRECTION
// 内部ループの中にいる場合、方向転換のプロセスを行う
if ( fIncFxn != ValTheBit( FlxScn.bStatus, fIncfunc ) )
{
if ( bScrnIndex < 2 )
bScrnIndex {circumflex over ( )}= 0x01; // 高速に切り替える技術を使用している
// ここでは、押されるキーの方向が変更されたかチェックし、
// 現在の表示にはターミネータが含まれるかをチェックする
if ( ValTheBit( FlxScn.bStatus, fBackEndLoop ) )
{
SetTheBit( FlxScn.bStatus, fEndLoop );
}
else
{
// 方向が変更されたため、以前のEndLoopはもはや有効でない
if ( ValTheBit( FlxScn.bStatus, fEndLoop ) )
{
ClrTheBit( FlxScn.bStatus, fEndLoop );
}
if ( ( !fIncFxn && (FlxScn.bIncMsgReq == 5) )
|| ( fIncFxn && (FlxScn.bDecMsgReq == 5) ) )
Flx_IsItEndLoop ( bScrnIndex, fIncFxn );
}
}
#endif // BOTH_UPDOWN_DIRECTIONのブロック
FlxScn.bScreenIndex = bScrnIndex; // 現行の表示を更新する
if ( !ValTheBit( FlxScn.bStatus, fEndLoop ) )
{
FlexibleInnerLoopNormal ( max_funcs, fIncFxn, bScrnIndex );
}
else // if ( ValTheBit( FlxScn.bStatus, fEndLoop ) )
{
// フレキシブルメッセージループから静的メッセージに移動した場合、
// フレキシブルメッセージを開始する準備をする必要はなく、
// 固定メニューからフレキシブルメニューに移動するキーが押されたときに、
//表示の準備はできている
ClrTheBit( FlxScn.bStatus, fEndLoop );
#if BOTH_UPDOWN_DIRECTION
if ( !fIncFxn )
{
bFuncIndex = max_funcs - 6;
ClrTheBit( FlxScn.bStatus, fIncfunc );
}
else
{
bFuncIndex = 0;
SetTheBit( FlxScn.bStatus, fIncfunc );
}
#else
bFuncIndex = 0;
#endif // BOTH_UPDOWN_DIRECTIONのブロック
if ( FlxScn.bIncMsgReq & 1 )
SetTheBit( FlxScn.bStatus, fScrnReady );
}
}
#endif // FLEXIBLE_BUFFERSのブロック
#if BOTH_UPDOWN_DIRECTION
if ( ValTheBit(FlxScn.bStatus, fIncfunc) )
{
FlxScn.pCurrLine = FlxScn.pCurrScrn->sText2;
SendInsertCmd ( INC_RIGHT_CMD ); // メッセージ提供システムからの
// フレキシブル文字列の更新要求
else
{
FlxScn.pCurrLine = FlxScn.pCurrScrn->sText;
SendInsertCmd ( DEC_LEFT_CMD ); // メッセージ提供システムからの
// フレキシブル文字列の更新要求
}
#else
FlxScn.pCurrLine = FlxScn.pCurrScrn->sText2;
SendInsertCmd ( INC_RIGHT_CMD ); // メッセージ提供システムからの
// フレキシブル文字列の更新要求
#endif
case DEC_LEFT_CMD:
case INC_RIGHT_CMD:
case DEC_MSG_N_CMD:
case INC_MSG_1_CMD:
Process_FlexibleStringUpdate ( bRxChar );
break;
#endif
Claims (25)
- 決まった順序で配列された複数のメッセージを、第1のデバイスのユーザに伝える方法であって、前記複数のメッセージは、最初のメッセージ、2番目のメッセージ、最後から2番目のメッセージ及び最後のメッセージを前記決まった順序で含み、前記方法は、
前記第1のデバイスに、前記複数のメッセージのうちの、最初のメッセージと最後のメッセージを格納する行為と、
前記第1のデバイスのユーザに3番目のメッセージを伝える行為と、
前記第1のデバイスのユーザから受け取ったナビゲーションコマンドの方向に応答して、
前記ナビゲーションコマンドが第1の方向を示す場合に、前記第1のデバイスのユーザに前記最初のメッセージを伝え、第2のデバイスに前記2番目のメッセージを要求するとともに、該2番目のメッセージを前記第1のデバイスに格納する行為と、
前記ナビゲーションコマンドが前記第1の方向とは反対の第2の方向を示す場合には、前記最後のメッセージを前記第1のデバイスのユーザに伝え、第2のデバイスに前記最後から2番目のメッセージを要求するとともに、前記最後から2番目のメッセージを前記第1のデバイスに格納する行為とを含む通信方法。 - 前記複数のメッセージの各々は、これら複数のメッセージの各々が前記第1のデバイスに格納されるまでは、前記第1のデバイスにではなく、前記第2のデバイスに対して前もって同定される、請求項1に記載の方法。
- 前記第2のデバイスに前記最初のメッセージ及び前記最後のメッセージを要求する行為をさらに含む、請求項2に記載の方法。
- 前記2番目のメッセージを格納する行為は、前記最後のメッセージを以前に格納した前記第1のデバイスのメモリ位置に2番目のメッセージを格納する行為を含む、請求項3に記載の方法。
- 前記最後から2番目のメッセージを格納する行為は、前記最初のメッセージを以前に格納した前記第1のデバイスのメモリ位置に、前記最後から2番目のメッセージを格納する行為を含む、請求項4に記載の方法。
- 前記2番目のメッセージを格納する行為は、前記最後のメッセージを以前に格納した前記第1のデバイスのメモリ位置に2番目のメッセージを格納する行為を含む、請求項1に記載の方法。
- 前記第1のデバイスと前記第2のデバイスとが物理的に別個のものである、請求項1に記載の方法。
- いずれの時点においても、前記第1のデバイスのメモリに、前記複数のメッセージのうち、わずか3つのメッセージを格納する行為をさらに含む、請求項1に記載の方法。
- 前記第1のデバイスに、前記複数のメッセージの各々を格納するために所定量を越えないメモリを割り当てる行為であって、前記所定量のメモリは、前記複数のメッセージのうち、わずか3つのメッセージを格納するのに十分である、メモリ割り当て行為をさらに含む請求項1に記載の方法。
- 複数のメッセージが格納されている第1のデバイスであって、前記複数のメッセージは、決められた順序を有し、且つ最初のメッセージ、2番目のメッセージ、最後から2番目のメッセージ、及び最後のメッセージを前記決められた順序で含んでいる、第1のデバイスと、
前記複数のメッセージを、第2のデバイスのユーザに、前記決められた順序で提示する第2のデバイスであって、該第2のデバイスは、バスによって相互接続されたプロセッサ、メモリ及びディスプレイを含み、前記プロセッサは、一連の命令を実行するようにプログラムされている第2のデバイスで、
前記命令によって前記プロセッサは、
前記第2のデバイスのメモリに、前記複数のメッセージのうち、前記最初のメッセージと前記最後のメッセージを格納させ、
3番目のメッセージを、前記第2のデバイスのユーザに提示させ、且つ
前記第2のデバイスのユーザから受け取ったナビゲーションコマンドの方向に応答して、
前記ナビゲーションコマンドが、第1の方向を示す場合に、前記第2のデバイスのユーザに、前記最初のメッセージを提示し、前記第1のデバイスから前記2番目のメッセージを要求し、前記第2のデバイスのメモリに、前記2番目のメッセージを格納し、
前記ナビゲーションコマンドが、前記第1の方向とは反対の第2の方向を示す場合には、前記第2のデバイスのユーザに、前記最後のメッセージを提示し、前記第1のデバイスに、前記最後から2番目のメッセージを要求し、前記第2のデバイスのメモリに、前記最後から2番目のメッセージを格納する、第2のデバイスとを備えている通信システム。 - 前記複数のメッセージのいずれも、前記第2のデバイスのメモリに格納されるまでは、前記第2のデバイスに対して同定されない、請求項10に記載の通信システム。
- 前記一連の命令は前記プロセッサをして、前記第1のデバイスに、前記最初のメッセージと、前記最後のメッセージを要求する命令をさらに含んでいる、請求項11に記載の通信システム。
- 前記一連の命令は、前記プロセッサをして、以前に前記最後のメッセージを格納した前記第2のデバイスのメモリの第1の部分に、前記2番目のメッセージを格納させる命令をさらに含んでいる、請求項12に記載の通信システム。
- 前記一連の命令は前記プロセッサをして、以前に前記最初のメッセージが格納した前記第2のデバイスのメモリの第2の部分に、前記最後から2番目のメッセージを格納させる命令を含んでいる、請求項13に記載の通信システム。
- 前記一連の命令は前記プロセッサをして、以前に前記最後のメッセージを格納した前記第2のデバイスのメモリの一部に、前記2番目のメッセージを格納させる命令をさらに含んでいる、請求項10に記載の通信システム。
- 前記第1のデバイスは、前記第2のデバイスとは物理的に別個のものである、請求項10に記載の通信システム。
- 前記第2のデバイスのメモリは、いずれの時点にも、前記複数のメッセージのわずか3つのメッセージのみを格納する、請求項10に記載の通信システム。
- 前記一連の命令は、前記プロセッサをして、前記第2のデバイスに、前記複数のメッセージの各々を格納するために、前記第2のデバイスに所定量を超えないメモリを割り当てる命令をさらに含み、前記第2のデバイスのメモリの所定量は、前記複数のメッセージのうちの、わずか3つのメッセージを格納するのに十分である、
請求項10に記載の通信システム。 - 第1のデバイスのユーザに複数のメッセージを伝える方法であって、
前記第1のデバイスに、前記複数のメッセージのうち最初のメッセージと2番目のメッセージを格納する行為と、
前記第1のデバイスのユーザに、3番目のメッセージを伝える行為と、
前記第1のデバイスのユーザから受け取ったナビゲーションコマンドの方向に応答して、
前記ナビゲーションコマンドが第1の方向を示す場合に、前記第1のデバイスのユーザに前記最初のメッセージを伝え、第2のデバイスに4番目のメッセージを要求し、前記第1のデバイスに前記4番目のメッセージを格納する行為と、
前記ナビゲーションコマンドが第2の方向を示す場合には、前記2番目のメッセージを前記第1のデバイスのユーザに伝え、前記第2のデバイスに5番目のメッセージを要求し、前記第1のデバイスに前記5番目のメッセージを格納する行為とを含む方法。 - 前記複数のメッセージの各々は、これら前記複数のメッセージの各々が前記第1のデバイスに格納されるまでは、前記第1のデバイスにではなく、前記第2のデバイスに対して同定される、請求項19に記載の方法。
- 前記最初のメッセージと前記2番目のメッセージを前記第2のデバイスに要求する行為をさらに含む、請求項20に記載の方法。
- 前記4番目のメッセージを格納する行為は、前記第2のメッセージを以前に格納したメモリ位置に前記4番目のメッセージを格納する行為を含む、請求項21に記載の方法。
- 前記5番目のメッセージを格納する行為は、前記最初のメッセージを以前に格納したメモリ位置に前記5番目のメッセージを格納する行為を含む、請求項22に記載の方法。
- いずれの時点にも、前記第1のデバイスのメモリ内に、前記複数のメッセージのわずか3つのメッセージを格納する行為をさらに含む、請求項19に記載の方法。
- 前記第1のデバイスに、前記複数のメッセージの各々を格納するために、所定量を越えないメモリを割り当てる行為であって、前記所定量のメモリは、前記複数のメッセージのうち、わずか3つのメッセージだけを格納するのに十分である、メモリ割り当て行為をさらに含む請求項24に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/361,591 US7865643B2 (en) | 2009-01-29 | 2009-01-29 | Communication system and protocol |
US12/361,591 | 2009-01-29 | ||
PCT/US2010/022396 WO2010088380A1 (en) | 2009-01-29 | 2010-01-28 | Communication system and protocol |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2012516515A true JP2012516515A (ja) | 2012-07-19 |
JP2012516515A5 JP2012516515A5 (ja) | 2013-03-14 |
JP5667083B2 JP5667083B2 (ja) | 2015-02-12 |
Family
ID=42060516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011548292A Expired - Fee Related JP5667083B2 (ja) | 2009-01-29 | 2010-01-28 | 通信システム及びプロトコル |
Country Status (7)
Country | Link |
---|---|
US (1) | US7865643B2 (ja) |
EP (1) | EP2391992B1 (ja) |
JP (1) | JP5667083B2 (ja) |
CN (2) | CN102365662A (ja) |
AU (1) | AU2010208235B8 (ja) |
CA (1) | CA2751249A1 (ja) |
WO (1) | WO2010088380A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9826027B2 (en) * | 2014-08-19 | 2017-11-21 | Bank Of America Corporation | User interfaces generated by a workflow engine |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0448326A (ja) * | 1990-06-18 | 1992-02-18 | Ricoh Co Ltd | 端末装置のテキスト情報表示方式 |
JPH04257127A (ja) * | 1991-02-08 | 1992-09-11 | Nec Corp | 選択呼出受信機 |
JPH10322739A (ja) * | 1997-05-16 | 1998-12-04 | Oi Denki Kk | 無線式個別受信装置 |
JP2000029448A (ja) * | 1998-07-13 | 2000-01-28 | Toshiba Corp | 画像情報提供システム、画像情報表示端末およびサーバ装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3166943B2 (ja) * | 1992-12-31 | 2001-05-14 | ソニー株式会社 | データベースアクセス処理方法 |
JPH1175233A (ja) * | 1997-08-29 | 1999-03-16 | Matsushita Electric Ind Co Ltd | 無線呼出装置と着信呼出方法およびメッセージ読出方法 |
JP2978907B1 (ja) * | 1998-08-28 | 1999-11-15 | 静岡日本電気株式会社 | 表示機能付き個別選択呼出受信機 |
US6609138B1 (en) * | 1999-03-08 | 2003-08-19 | Sun Microsystems, Inc. | E-mail list archiving and management |
CN1658656A (zh) * | 2004-02-20 | 2005-08-24 | 亚洲光学股份有限公司 | 图像摄取装置之图像管理之方法 |
-
2009
- 2009-01-29 US US12/361,591 patent/US7865643B2/en active Active
-
2010
- 2010-01-28 CN CN2010800155125A patent/CN102365662A/zh active Pending
- 2010-01-28 CA CA2751249A patent/CA2751249A1/en not_active Abandoned
- 2010-01-28 JP JP2011548292A patent/JP5667083B2/ja not_active Expired - Fee Related
- 2010-01-28 WO PCT/US2010/022396 patent/WO2010088380A1/en active Application Filing
- 2010-01-28 AU AU2010208235A patent/AU2010208235B8/en active Active
- 2010-01-28 EP EP10701999.4A patent/EP2391992B1/en active Active
- 2010-01-28 CN CN201610144706.4A patent/CN105704011B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0448326A (ja) * | 1990-06-18 | 1992-02-18 | Ricoh Co Ltd | 端末装置のテキスト情報表示方式 |
JPH04257127A (ja) * | 1991-02-08 | 1992-09-11 | Nec Corp | 選択呼出受信機 |
JPH10322739A (ja) * | 1997-05-16 | 1998-12-04 | Oi Denki Kk | 無線式個別受信装置 |
JP2000029448A (ja) * | 1998-07-13 | 2000-01-28 | Toshiba Corp | 画像情報提供システム、画像情報表示端末およびサーバ装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2391992B1 (en) | 2016-07-20 |
AU2010208235B2 (en) | 2014-10-16 |
CA2751249A1 (en) | 2010-08-05 |
CN102365662A (zh) | 2012-02-29 |
JP5667083B2 (ja) | 2015-02-12 |
WO2010088380A1 (en) | 2010-08-05 |
US20100191882A1 (en) | 2010-07-29 |
EP2391992A1 (en) | 2011-12-07 |
CN105704011A (zh) | 2016-06-22 |
US7865643B2 (en) | 2011-01-04 |
WO2010088380A8 (en) | 2011-03-17 |
CN105704011B (zh) | 2018-06-01 |
AU2010208235B8 (en) | 2014-10-23 |
AU2010208235A1 (en) | 2011-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8887080B2 (en) | Indicating status of application program with icons | |
CN100440126C (zh) | 虚拟存储器远程控制 | |
CN112073994A (zh) | 用于空中升级的方法、装置、电子设备及可读存储介质 | |
US8972857B2 (en) | Generating user help information for customized user interfaces | |
JPH087661B2 (ja) | 従属ワークステーションのマウスサポート | |
CN112346612B (zh) | 页面显示方法和装置 | |
US6980882B2 (en) | Display apparatus of injection molding machine | |
JP5667083B2 (ja) | 通信システム及びプロトコル | |
US20130293590A1 (en) | Mobile terminal comprising a graphical user interface | |
JP2001014155A (ja) | ソフト部品実行制御装置 | |
CN114020741A (zh) | 车辆里程信息的存储方法、装置、车辆电子系统及车辆 | |
CN113377473A (zh) | 任务创建方法、装置、电子设备及计算机可读存储介质 | |
CN112306413A (zh) | 用于访问内存的方法、装置、设备以及存储介质 | |
CN111176776A (zh) | 一种信息处理方法和电子设备 | |
JP5835218B2 (ja) | 表示制御装置、方法、及び、プログラム | |
KR20020061958A (ko) | 복수의 개인정보단말기를 이용한 멀티 비전 표시방법 | |
CN110310471B (zh) | 一种家电遥控方法及系统 | |
JP2000020112A (ja) | 表示器 | |
CN112347400A (zh) | 多语种页面数据的缺失检测方法、装置、设备及存储介质 | |
KR20100123600A (ko) | 정보 처리 장치, 실행 방법 및 실행용 프로그램 | |
CN114764388A (zh) | 用户界面控件的标签生成方法、装置、设备及存储介质 | |
CN113282313A (zh) | 固件更新方法、装置及存储介质 | |
CN115373930A (zh) | 视图的管理方法、装置、电子设备及存储介质 | |
CN112181237A (zh) | 显示方法、装置和电子设备 | |
CN111880875A (zh) | 多媒体播放的控制方法、装置、设备、存储介质和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130122 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130122 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140124 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140128 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20140203 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140428 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20141118 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141211 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5667083 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |