123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- %
- % KTNEVComments
- %
- % This is a class that deals with comments saved in a NEV file. The user
- % can read the comments, get their timestamp information and even add
- % comments to the NEV file and then save it as a new file.
- %
- %
- % addComment: Allows the user to add a new comment to the
- % file at a given timestamp.
- %
- % displayComments: Displays all the comments in the NEV with their
- % corresponding timestamps.
- %
- % 'report': Will show a summary report if user passes this
- % argument.
- % DEFAULT: will not show report.
- %
- % getCommentText: Displays the text of comments.
- %
- % getCommentTimestamps: Displays the timestamp of comments, in samples.
- %
- % getCommentTimestampsSec: Displays the timestamp of comments, in seconds.
- %
- % EXAMPLE:
- %
- % To run, use "myVariable = KTNEVComments;". Then use
- % "myVariable.METHODNAME" to call the various differnet methods. Type
- % "myVariable." and then hit enter to see the available methods.
- %
- % myComments = KTNEVComments;
- % myComments.DisplayComments;
- %
- % Kian Torab
- % ktorab@blackrockmicro.com
- % Blackrock Microsystems
- % Version 1.0.1.0
- %
- classdef KTNEVComments
-
- properties (Hidden)
- NEV
- end
- methods (Hidden)
- function obj = KTNEVComments
- %% Open the NEV file
- obj.NEV = openNEV('read', 'nomat');
- end
- function rawNEV = getRawNEV(obj)
- FIDr = fopen([obj.NEV.MetaTags.FilePath '/' obj.NEV.MetaTags.Filename '.NEV'], 'r+', 'ieee-le');
-
- % Loading the NEV file
- rawNEV = fread(FIDr)';
- fclose(FIDr);
- end
- function rawData = getRawData(obj)
- FID = fopen([obj.NEV.MetaTags.FilePath '/' obj.NEV.MetaTags.Filename '.NEV'], 'r+', 'ieee-le');
- fseek(FID, obj.NEV.MetaTags.HeaderOffset, 'bof');
- rawData = fread(FID, [obj.NEV.MetaTags.PacketBytes obj.NEV.MetaTags.PacketCount], '104*uint8=>uint8', 0);
-
- end
- function packetIndices = getPacketIDIndices(obj)
- rawData = obj.getRawData;
- PacketID = rawData(5:6,:);
- packetIndices = typecast(PacketID(:), 'uint16').';
- end
- function packetIndices = getPacketIDIndicesForPacketID(obj, packetID)
- PacketIDs = obj.getPacketIDIndices;
- packetIndices = find(PacketIDs==packetID);
- end
- function timestampIndices = getTimestampIndices(obj)
- rawData = obj.getRawData;
- Timestamp = rawData(1:4,:);
- timestampIndices = typecast(Timestamp(:), 'uint32').';
- end
- end
- methods
- function displayComments(obj)
- fprintf('\n\n Timestamp Timestamp Seconds Text\n');
- for commentIDX = 1:length(obj.NEV.Data.Comments.TimeStamp)
- fprintf('%11d %17.4f %s\n', obj.NEV.Data.Comments.TimeStamp(commentIDX), ...
- obj.NEV.Data.Comments.TimeStampSec(commentIDX), ...
- obj.NEV.Data.Comments.Text(commentIDX,:));
- end
- end
- function output = getCommentTimestamps(obj)
- output = obj.NEV.Data.Comments.TimeStamp;
- end
- function output = getCommentTimestampsSec(obj)
- output = obj.NEV.Data.Comments.TimeStampSec;
- end
- function output = getCommentText(obj)
- output = obj.NEV.Data.Comments.Text;
- end
- function addComment(obj)
- FIDw = fopen([obj.NEV.MetaTags.FilePath '/' obj.NEV.MetaTags.Filename '-commented.nev'], 'w+', 'ieee-le');
-
- % Getting the comment info
- timestamp = input('What timestamp? ');
- color = input('What is the color code (hit enter if not sure)? ');
- if isempty(color)
- color = 0;
- end
- charSet = input('What is the character set (hit enter if not sure)? ');
- if isempty(charSet)
- charSet = 0;
- end
- text = input('Comment: ','s');
-
- text(end+1:92) = zeros(1,obj.NEV.MetaTags.PacketBytes-12-length(text));
-
- % Reading the RawNEV
- rawData = obj.getRawNEV;
- rawData = [rawData typecast(uint32(timestamp), 'uint8')...
- typecast(uint16(65535), 'uint8')...
- typecast(uint8(charSet), 'uint8')...
- typecast(uint8(0), 'uint8')...
- typecast(uint32(color), 'uint8')...
- typecast(uint8(text), 'uint8')];
-
-
- % Writing file
- fwrite(FIDw, rawData, 'uint8');
- fclose(FIDw);
- clear rawData;
- end
- end
- end
|