nescc-mig - Trực tuyến trên đám mây

Đây là lệnh nescc-mig có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình mô phỏng trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


nescc-mig - trình tạo giao diện tin nhắn cho nesC

SYNOPSIS


nescc-mig [bất kỳ tùy chọn nescc nào] [tùy chọn dành riêng cho công cụ]
[-o tập tin đầu ra] [-nescc=trình điều khiển]
công cụ tập tin định dạng tin nhắn loại tin nhắn

MÔ TẢ


nescc-mig là một công cụ tạo mã để xử lý các tin nhắn nesC (được chỉ định bởi C
các loại). Các công cụ đối số xác định công cụ nào sẽ được tạo ra, loại tin nhắn
chỉ định loại C của tin nhắn bạn muốn xử lý và tập tin định dạng tin nhắn chỉ định một
nesC sử dụng loại đó. Loại tin nhắn phải được xác định bằng cấu trúc loại tin nhắn,
nx_struct loại tin nhắn, công đoàn loại tin nhắn, nx_union loại tin nhắn.

Khi được sử dụng với các loại có bố cục phụ thuộc vào nền tảng (nghĩa là không được xác định bằng nx_struct
or nx_union), điều quan trọng là phải xác định đúng nescc tùy chọn kiến ​​trúc mục tiêu
(-fnesc-target =...). Nếu bạn đang gọi nescc-mig gián tiếp thông qua mig, bạn có thể dùng NCC
-mục tiêu =... thay vào đó.

Nếu một hằng số enum có tên LÀ_loại tin nhắn (với loại tin nhắn viết hoa) được tìm thấy, sau đó
giá trị của hằng số đó được coi là loại thông báo hoạt động cho loại tin nhắn. Nếu
bạn cần quyền truy cập vào các hằng số khác từ ứng dụng nesC của mình, vui lòng tham khảo nescc-
ncg trang người đàn ông.

Các công cụ hiện nay là Java, csharp, mãng xàC, tạo ra java, C#, python và C
mã để mã hóa và giải mã tin nhắn.

LỰA CHỌN


Bạn có thể vượt qua bất kỳ nescc tùy chọn, cũng như

-o tập tin đầu ra
Chỉ định tệp để xuất mã được tạo.

-nescc=trình điều khiển
Sử dụng trình điều khiển thay vì nescc để trích xuất thông tin bố cục kiểu. Ví dụ, nếu
bạn chỉ định -nescc = ncc, Bạn có thể sử dụng nescc-mig để trích xuất thông tin loại từ
Các ứng dụng TinyOS (thường được biên dịch bằng NCC).

tùy chọn dành riêng cho công cụ
Xem bên dưới.

JAVA DỤNG CỤ


Công cụ này tạo ra một lớp java để mã hóa hoặc giải mã một thông điệp nesC, dựa trên
cơ sở hạ tầng net.tinyos.message. Nó chấp nhận các tùy chọn sau:

-java-classname=tên đầy đủ của lớp
Tùy chọn này là bắt buộc và chỉ định gói cũng như tên của lớp được tạo.
Nếu tên đầy đủ của lớp không có '.', thì không có lệnh gói nào được đưa vào
đầu ra.

-java-mở rộng=tên lớp
Chỉ định lớp mà lớp được tạo sẽ mở rộng. Mặc định là
net.tinyos.message.Message.

Đối với mỗi lĩnh vực biệt danh cấu trúc loại tin nhắn, có các phương pháp sau (bit
phương thức offset và size rất hữu ích cho các cấu trúc chứa bitfield):

* được_biệt danh: lấy giá trị của trường

* bộ_biệt danh: đặt giá trị của trường

* offsetBits_biệt danh: độ lệch bit trả về của trường trong loại tin nhắn

* bù lại_biệt danh: trả về độ lệch byte của trường trong loại tin nhắn

* kích thướcBits_biệt danh: kích thước trả về theo bit của trường (không dành cho mảng)

* kích cỡ_biệt danh: kích thước trả về tính bằng byte của trường (không dành cho mảng) (vắng mặt nếu biệt danh là một
bitfield)

* đã được ký_biệt danh: trả về đúng nếu biệt danh thuộc loại đã ký

* làArray_biệt danh: trả về đúng nếu biệt danh là một mảng

Cấu trúc nhúng trong loại tin nhắn được mở rộng, sử dụng _ để phân tách tên cấu trúc
và các lĩnh vực của nó.

Một số phương thức bổ sung có sẵn cho các trường là mảng:

* lấy phần tử_biệt danh: lấy một phần tử của mảng

* setElement_biệt danh: thiết lập một phần tử của mảng

* phần tửSize_biệt danh: kích thước trả về tính bằng byte của các phần tử mảng

* phần tửSizeBits_biệt danh: kích thước trả về tính bằng bit của các phần tử mảng

* num Kích thước_biệt danh: trả về số chiều của mảng

* numElements_biệt danh: trả về số phần tử của mảng với một thứ nguyên nhất định
(thứ nguyên ngoài cùng bên trái được đánh số 0) - thứ nguyên là tùy chọn cho 1 chiều
mảng

* tổng kích thước_biệt danh: kích thước trả về tính bằng byte của mảng (không có nếu mảng đó là
kích thước thay đổi)

* tổng kích thướcBits_biệt danh: kích thước trả về tính theo bit của mảng (không có nếu mảng đó
kích thước thay đổi)

Nếu mảng là 1 chiều và các phần tử là một byte thì các phương thức sau
hiện hữu:

* getString_biệt danh: xây dựng một chuỗi Java từ mảng giả sử nó chứa kiểu C
chuỗi kết thúc null

* setString_biệt danh: đặt mảng thành một chuỗi kết thúc null kiểu C cho một java
chuỗi

Sản phẩm getElement_..., setElement_..., bù lại_...offsetBits_... phương pháp lấy một
đối số trên mỗi kích thước mảng. Các phương thức này báo cáo lỗi nếu chỉ mục mảng nằm ngoài
giới hạn. Nếu một mảng có kích thước tối đa là 0, mig giả sử nó đại diện cho một mảng có kích thước thay đổi
array và không kiểm tra chỉ số mảng tương ứng.

Dữ liệu cho một tin nhắn được lưu trữ trong một mảng, với thông tin cơ sở và độ dài rõ ràng.
Các hàm tạo có thể phân bổ mảng này, nhận nó dưới dạng đối số rõ ràng hoặc
trích xuất nếu từ một tin nhắn khác. Cơ sở và chiều dài cũng có thể được tùy ý chuyển tới
những hàm tạo này.

Đối số độ dài tùy chọn sẽ ghi đè kích thước mặc định của sizeof(message-type); đây là
hữu ích cho các tin nhắn có kích thước thay đổi. Việc sử dụng cơ sở rõ ràng rất hữu ích cho các tin nhắn
được nhúng trong các tin nhắn khác.

Lớp được tạo cũng có phương thức amType() trả về thông báo hoạt động của tin nhắn
gõ hoặc -1 nếu không có AM_loại tin nhắn hằng số đã được tìm thấy.

C# DỤNG CỤ


Công cụ này tạo ra một lớp C# để mã hóa hoặc giải mã thông báo nesC. Nó chấp nhận
tùy chọn sau:

-csharp-classname=tên đầy đủ của lớp
Tùy chọn này là bắt buộc và chỉ định không gian tên cũng như tên của tệp được tạo
lớp học. Nếu tên đầy đủ của lớp không có '.', thì không có chỉ thị không gian tên nào được đưa vào
trong đầu ra.

-csharp-mở rộng=tên lớp
Chỉ định lớp mà lớp được tạo sẽ mở rộng. Mặc định là
tinos.message.Message.

Các phương thức trong lớp được tạo ra cũng giống như đối với công cụ Java.

TRĂN DỤNG CỤ


Công cụ này tạo một lớp Python để mã hóa hoặc giải mã thông báo nesC. Nó chấp nhận
tùy chọn sau:

-python-classname=tên đầy đủ của lớp
Tùy chọn này là bắt buộc và chỉ định tên của lớp được tạo.

-python-mở rộng=tên lớp
Chỉ định lớp mà lớp được tạo sẽ mở rộng. Mặc định là
tinos.message.Message.Message.

Các phương thức trong lớp được tạo ra cũng giống như đối với công cụ Java.

C DỤNG CỤ


Công cụ này tạo tệp tiêu đề C (.h) với các hằng số mô tả bố cục của kiểu và
một mô-đun C (.c) với các hàm lấy và đặt từng trường. Bạn phải vượt qua .h tên tập tin
đến nescc-mig sử dụng -o.

Công cụ C chấp nhận tùy chọn sau:

-c-tiền tố=tiếp đầu ngữ
Tùy chọn này chỉ định tiếp đầu ngữ để gắn vào các hằng số được tạo và
chức năng. Nếu bỏ qua, loại tin nhắn Được sử dụng.

Đối với mỗi trường không phải mảng biệt danh cấu trúc loại tin nhắn, các hàm sau và
hằng số được tạo ra:

* tiền tố_fname_được(): lấy giá trị của trường

* tiền tố_fname_bộ(): lấy giá trị của trường

* tiền tố_fname_OFFSETBITS: độ lệch bit của trường

* tiền tố_fname_BÙ LẠI: độ lệch byte của trường

* tiền tố_fname_KÍCH THƯỚC: kích thước tính bằng bit của trường

* tiền tố_fname_KÍCH CỠ: kích thước tính bằng byte của trường

Đối với mỗi trường mảng biệt danh cấu trúc loại tin nhắn, các hàm sau và
hằng số được tạo ra:

* tiền tố_fname_lấy(): lấy giá trị của trường

* tiền tố_fname_bộ(): lấy giá trị của trường

* tiền tố_fname_offsetbits(): độ lệch bit của phần tử mảng

* tiền tố_fname_bù lại(): độ lệch byte của phần tử mảng

* tiền tố_fname_ELEMENTSIZEBITS: kích thước tính bằng bit của phần tử mảng

* tiền tố_fname_ KÍCH THƯỚC: kích thước tính bằng byte của phần tử mảng

* tiền tố_fname_NUMELEMENTS: số phần tử trong mảng (không có đối với mảng có kích thước thay đổi)
mảng)

* tiền tố_fname_NUMELEMENTS_i: kích thước của ithứ nguyên mảng thứ

Cấu trúc nhúng trong loại tin nhắn được mở rộng, sử dụng _ để phân tách tên cấu trúc
và các lĩnh vực của nó. Một trường của một mảng các cấu trúc nhúng được coi là một mảng.

LRI


nescc-mig báo lỗi nếu nescc không thể biên dịch tập tin định dạng tin nhắn, Nếu loại tin nhắn không phải
được tìm thấy hoặc nếu nó chứa con trỏ.

Sử dụng nescc-mig trực tuyến bằng dịch vụ onworks.net



Các chương trình trực tuyến Linux & Windows mới nhất