Grup tanda peristiwa:layanan utilitas dan struktur data
Lihat seri Terungkap RTOS
Artikel ini melanjutkan tampilan grup bendera acara.
Layanan Utilitas Grup Bendera Acara
Nucleus RTOS memiliki tiga panggilan API yang menyediakan fungsi utilitas yang terkait dengan grup flag event:mengembalikan informasi tentang grup, mengembalikan jumlah grup flag event dalam aplikasi dan mengembalikan pointer ke semua grup dalam aplikasi. Dua yang pertama diimplementasikan di Nucleus SE.
Informasi Grup Bendera Acara
Panggilan layanan ini memperoleh pilihan informasi tentang grup bendera peristiwa. Implementasi Nucleus SE berbeda dari Nucleus RTOS dalam hal mengembalikan lebih sedikit informasi, karena penamaan objek dan penangguhan pemesanan tidak didukung dan penangguhan tugas mungkin tidak diaktifkan.
Panggilan Nucleus RTOS API untuk Informasi Grup Acara
grup – penunjuk ke blok kontrol grup bendera peristiwa yang disediakan pengguna
nama – penunjuk ke area tujuan 8 karakter untuk nama grup bendera acara; ini termasuk ruang untuk terminator nol
event_flags – penunjuk ke variabel, yang akan menerima nilai saat ini dari grup bendera peristiwa yang ditentukan
tugas_menunggu – penunjuk ke variabel yang akan menerima jumlah tugas yang ditangguhkan pada grup bendera acara ini
tugas_pertama – penunjuk ke variabel bertipe NU_TASK yang akan menerima penunjuk ke tugas pertama yang ditangguhkan
Pengembalian:
NU_SUCCESS – panggilan berhasil diselesaikan
NU_INVALID_GROUP – penunjuk grup bendera acara tidak valid
Panggilan API Nucleus SE untuk Informasi Grup Acara
Panggilan API ini mendukung fungsionalitas utama dari Nucleus RTOS API.
Prototipe panggilan layanan:
STATUS NUSE_Event_Group_Information(Grup NUSE_EVENT_GROUP, U8 *event_flags, U8 *tasks_waiting, NUSE_TASK *first_task);
Parameter:
grup – indeks grup bendera acara tentang informasi mana yang diminta
event_flags – penunjuk ke variabel, yang akan menerima nilai saat ini dari grup bendera peristiwa yang ditentukan
tugas_menunggu – penunjuk ke variabel yang akan menerima jumlah tugas yang ditangguhkan pada grup bendera peristiwa ini (tidak ada yang dikembalikan jika penangguhan tugas dinonaktifkan)
tugas_pertama – penunjuk ke variabel bertipe NUSE_TASK yang akan menerima indeks tugas yang ditangguhkan pertama (tidak ada yang dikembalikan jika penangguhan tugas dinonaktifkan)
Pengembalian:
NUSE_SUCCESS – panggilan berhasil diselesaikan
NUSE_INVALID_GROUP – indeks grup bendera acara tidak valid
Inti SE Implementasi Informasi Grup Acara
Implementasi panggilan API ini cukup mudah:
*event_flags =NUSE_Event_Group_Data[grup]; #jika NUSE_BLOCKING_ENABLE *tasks_waiting =NUSE_Event_Group_Blocking_Count[grup]; if (NUSE_Event_Group_Blocking_Count[group] !=0) { indeks U8; for (indeks=0; indeks
Fungsi mengembalikan nilai grup bendera peristiwa. Kemudian, jika pemblokiran panggilan API diaktifkan, jumlah tugas menunggu dan indeks yang pertama akan dikembalikan (jika tidak, kedua parameter ini disetel ke 0).
Mendapatkan Jumlah Grup Bendera Acara
Panggilan layanan ini mengembalikan jumlah grup bendera peristiwa yang dikonfigurasi dalam aplikasi. Sementara di Nucleus RTOS ini akan bervariasi dari waktu ke waktu dan nilai yang dikembalikan akan mewakili jumlah grup saat ini, di Nucleus SE nilai yang dikembalikan diatur pada waktu pembuatan dan tidak dapat diubah.
Panggilan API Nucleus RTOS untuk Jumlah Grup Bendera Acara
Prototipe panggilan layanan:
UNSIGNED NU_Established_Event_Groups(VOID);
Parameter:
Tidak ada
Pengembalian:
Jumlah grup bendera peristiwa yang dibuat saat ini dalam aplikasi
Panggilan Nucleus SE API untuk Jumlah Grup Bendera Acara
Panggilan API ini mendukung fungsionalitas utama dari Nucleus RTOS API.
Prototipe panggilan layanan:
U8 NUSE_Event_Group_Count(void);
Parameter:
Tidak ada
Pengembalian:
Jumlah grup bendera peristiwa yang dikonfigurasi dalam aplikasi
Inti SE Implementasi Jumlah Grup Bendera Acara
Implementasi panggilan API ini hampir sederhana:nilai #define simbol NUSE_EVENT_GROUP_NUMBER dikembalikan.